Nagios -> S.M.A.R.T-Werte von HDDs an 3ware RAID-Controler

Das meiste steht bereits in der Ueberschrift. Ich wollte mit Nagios einige Festplatten im RAID 5 im Auge behalten. Den RAID-Controler selber ueberwache ich bereits mit dem Plugin check_3ware, das mal von Matthias veraendert wurde, aber nen Diff kann ich leider nicht bieten. Funktioniert jedoch wunderbar!

Um an die S.M.A.R.T-Werte der Festplatten zu kommen kann man nicht einfach ein smartctl -a /dev/hdaX machen, da sie ueber den RAID-Controler angesteuert werden und nicht als eigenes Device existieren. Der Befehl dafuer lautet jeh nach RAID-Controler entweder smartctl -a -d 3ware,0 /dev/twa0, oder evtl. auch /dev/twe0. Die Plugins die z.B. bei MonitoringExchange existieren koennen aber alle nicht mit einem zusaetzlichen Deviceparamter umgehen, oder akzeptieren nur „ata“ bzw. „scsi“ als Devicetyp fuer smartctl. Ueber diesen Blogeintrag bei ostlogd und das erste Kommentar dort mit dem Diff fuer das check_smart-Plugin waren dann alle Probleme geloest. Works like a charm :-D

Statusmeldungen verbreiten

Sobald man mehr als nur ein paar Rechner betreut steht man bei Wartungsarbeiten an Servern oder der Netzinfrastruktur vor dem Problem viele Leute verlaesslich zu informieren. Seiner eigenen Informationspflicht nachkommen zu muessen, aber gleichzeitig das ganze fuer sich selber so einfach wie moeglich zu gestalten ist ein schwieriger Spagat. Ich wusste nicht, wie ich diesen loesen soll.

Ich habe mir dann einige Gedanken dazu gemacht. Am besten ist es natuerlich die Informationspflicht umzudrehen. Nicht mehr ICH muss mich darum kuemmern, dass die Leute alle die Informationen erhalten, sondern DIE LEUTE muessen sich darum kuemmern die von mir bereitgestellten Informationen immer zu erhalten. Ich glaube, dass das machbar ist. Dazu gehoert natuerlich einiges an Planung, uebergangszeit usw.
Dann habe ich mich hingesetzt und mir ueberlegt, wie ich solche Informationen gerne praesentiert haette und schnell war raus: ein RSS-Feed sollte her. Am einfachsten erschien es mir eine kleine Homepage zu haben, wo man Meldungen schreiben kann und diese dann als RSS-Feed exportiert werden. Simpel sollte es vor allem sein. Eine Netzsuche nach geeigneten Loesungen brachte mich schnell zu den bekannten Projekten: WordPress incl. Plugins, Dokuwiki + Plugins, Laconica… In meinen Augen alle oversized..

Nach kurzem ueberlegen hab ich es einfach selber geschrieben. Herausgekommen sind eine MySQL Datenbank mit einer Tabelle, einige wenige Zeilen PHP-Code und ein bisschen XHTML mit CSS. Man kann in einem passwortgeschuetzen Bereich eine neue Meldung verfassen und diese dann Abspeichern. Die Meldungen der letzten sieben Tage werden dann auf der Startseite angezeigt. Des Weiteren werden sie als RSS-Feed exportiert. Das die Ueberschriften bei Twitter gepostet werden war ein Zeitvertreib, aber die Emailverteilerfunktion bei der die Meldungen auch automatisch per Mail versendet werden an einen Verteiler, in den man sich sehr einfach ein- oder austragen kann war dann doch noch notwendig.

Hier zwei Bilder von dem System, wer interesse am Quelltext hat einfach melden.

statusseite

neuemeldung

/usr/bin/mail

Es ist immer mal wieder sinnvoll von der Bash aus Skripten Emails zu verschicken. Ich vergesse immer wieder einige nuetzliche Schalter deswegen zum festhalten:

  • mail -s „Betreff“ empfaenger@example.net (EMail mit Betreff)
  • mail -s „Betreff“ empfaenger@example.net < /tmp/meinbrief (Email mit Betreff und meinbrief als Text)
  • cat /tmp/meinbrief | mail -e -s „Betreff“ empfaenger@example.net (Email wird nur verschickt wenn der body nicht leer ist)
  • mail -a „From: Sender <sender@example.net>“ -s „Betreff“ empfaenger@example.net (Schreibt den From-Header um)
  • uuencode /tmp/meinbild.png /tmp/meinbild.png | mail -s „Betreff“ empfaenger@example.net (Versendet meinbild.png als Anlage)

Windows Maschinen mit Nagios NRPE ueberwachen

Auch wenn man es gerne wuerde, man kommt um Microsoft Produkte im Leben einfach nicht herum.  Die von mir betreuten Linux-Server ueberwache ich alle mit Nagios und sammel die Daten via NRPE. Das gleiche wollte ich auch fuer eine neue Windows-Maschine machen. Der Weg ist recht simpel wenn man sich mit Nagios bereits auskennt. Hier nun der Weg in kuerze festgehalten:

  • Download des aktuellen NRPE-NT Dienstes von http://www.miwi-dv.com/nrpent/
  • Entpacken der Datei, verschieben und umbenennen des Unterordners bin nach C:\NRPE
  • Download der Basic NRPE-NT Plugins
  • Entpacken der Datei, verschieben des Unterordners bin nach C:\NRPE\bin

Nun muss der Dienst installiert, konfiguriert und gestartet werden. Dafuer in der Windows Eingabeaufforderung in das Verzeichnis C:\NRPE wechseln und den Dienst installieren

 nrpe_nt -i

Nun die C:\NRPE\nrpe.cfg mit WordPad oeffnen und unter allowed hosts= die IP-Adresse des Nagios-Servers angeben der darauf zugreifen darf. Wenn die Windows Firewall aktiv ist, diese ebenfalls entsprechend Konfigurieren. Am einfachsten fuegt man eine Ausnahme fuer den Port hinzu.

  • Name: Nagios NRPE-NT
  • Port: 5666
  • Bereich aendern -> Benutzerdefinierte Liste: -> Gleiche IP-Adresse eingeben wie unter allowed_hosts

Das war es auch schon fast.  Die checks werden genauso definiert wie unter Linux. Fuer mich ist interessant ob der Lizenzmanager-Dienst laeuft und ob es Windows-Updates gibt die ich installieren muss. Deswegen habe ich z.B. die folgenden beiden Checks definiert:

command[nt_service_sentinel]=C:\NRPE\bin\service_nrpe_nt.exe "Sentinel RMS Developer Kit License Manager"
command[windows_updates]=C:\Windows\System32\cscript.exe //NoLogo //T:120 C:\NRPE\bin\check_windows_updates.wsf /w:0 /c:1

Das Skript fuer die Windows-Updates checks habe ich von da.

Zum Schluss muss der Dienst natuerlich noch gestartet werden. Das geht entweder ueber GUI, in den Windows Diensten taucht er auf unter dem Namen „Nagios Remote Plugin Executor for NT/W2K„, oder auch einfacher ueber die Eingabeaufforderung mit dem Befehl:

net start nrpe_nt

Viel Spass und Erfolg beim Monitoren von Windows-Hosts! :-)