Eines der am weitesten verbreiteten Tools zur Überwachung von Computer-Systemen ist Nagios. Ein entscheidender Grund hierfür ist sicher, dass es dafür unzählige Plugins gibt, mit denen man so gut wie alles überwachen kann.
Kürzlich stand ich mal wieder vor dem Problem, dass ich mit Nagios etwas überwachen wollte, was unter Linux problemlos möglich ist, sich aber nicht so einfach auf ein Windows-System übertragen ließ. Es ging dabei um das RAID-Array eines 3ware-Controllers. Für Linux gibt es dafür gleich ein paar Plugins, für Windows war kein einziges zu finden. Schließlich konnte ich dies jedoch trotzdem lösen.
Montag, 22. Juni 2009
3ware-RAID unter Windows mit Nagios überwachen
Ich habe das Plugin für Linux ein wenig modifiziert, so dass es nun auch unter Windows funktioniert. Es steht frei zum Download bereit.
Es handelt sich dabei um ein Python-Script. Daher muss ein entsprechender Interpreter verfügbar sein. Ich empfehle dafür Portable Python, da dieser nicht installiert werden muss. Man kann den Inhallt des Archivs einfach irgendwo auf der Festplatte ablegen.
Außerdem wird das Tool tw_cli benötigt. Dies ist ein von 3ware zur Verfügung gestelltes Kommandozeilen-Programm zur Administration des RAID-Crontrollers. Es kann von der Hersteller-Website kostenlos heruntergeladen werden.
Die Datei tw_cli.exe muss sich in dem Verzeichnis befinden, in dem sich auch das Nagios-Plugin befindet. Andernfalls muss die Pfadangabe in Zeile 93 des Plugins entsprechend angepasst werden.
Als Letztes muss die Überprüfung des RAIDs nun noch für Nagios verfügbar gemacht werden. Dazu wird das Kommando zum NRPE folgendermaßen hinzugefügt:
Es handelt sich dabei um ein Python-Script. Daher muss ein entsprechender Interpreter verfügbar sein. Ich empfehle dafür Portable Python, da dieser nicht installiert werden muss. Man kann den Inhallt des Archivs einfach irgendwo auf der Festplatte ablegen.
Außerdem wird das Tool tw_cli benötigt. Dies ist ein von 3ware zur Verfügung gestelltes Kommandozeilen-Programm zur Administration des RAID-Crontrollers. Es kann von der Hersteller-Website kostenlos heruntergeladen werden.
Die Datei tw_cli.exe muss sich in dem Verzeichnis befinden, in dem sich auch das Nagios-Plugin befindet. Andernfalls muss die Pfadangabe in Zeile 93 des Plugins entsprechend angepasst werden.
Als Letztes muss die Überprüfung des RAIDs nun noch für Nagios verfügbar gemacht werden. Dazu wird das Kommando zum NRPE folgendermaßen hinzugefügt:
Die Pfadangaben sind selbstverständlich nur ein Beispiel und müssen gegebenenfalls individuell angepasst werden. Da das Plugin trotz der Anpassungen auch weiterhin unter Linux verwendet werden kann, gilt dies hierbei natürlich besonders.#C:\Programme\NRPE\bin\nrpe.cfg
command[check_raid]=C:\Programme\PortablePython\App\python.exe C:\Programme\NRPE\bin\check_3ware_raid.py
wäre es möglich, dass du bitte die Service Definition und das Check Kommando auch postest?
Die Webseite zum Plugin ist leider down und ich würde gerne dein Plugin mal in meinem Nagios Testen
Danke!
Philipp
Das Check-Kommando für NRPE ist bereits im Artikel angegeben. Es müssen gegebenenfalls lediglich die verwendeten Pfadangaben angepasst werden.
Mit Version 3 kommt es zu angeblichen Syntax Fehlern
Beste Grüße,
Philipp
Wenn aber dann Nagios kommt und checken will, dann kriegt Nagios nur: "UNKNOWN: No output from 3ware utility" zurückgeliefert.
Hat das auch schon jemand gehabt und einen Rat?
Danke für das Script, funktioniert auf einem Server auch Problemlos.
Auf dem 2. Server bekomme ich aber folgende Fehlermeldung:
Traceback (most recent call last):
File "..\scripts\check_3ware_raid.py", line 465, in
main()
File "..\scripts\check_3ware_raid.py", line 458, in main
result, output = test_all(verbosity, warn_true, no_summary, show_drives)
File "..\scripts\check_3ware_raid.py", line 153, in test_all
drive_result, drive_message = test_drives(verbosity, no_summary)
File "..\scripts\check_3ware_raid.py", line 253, in test_drives
controllers = [ line.split()[0] for line in lines ]
IndexError: list index out of range
Die Ausgabe von tw_cli:
Fehlerhafter Server:
http://imageshack.us/photo/my-images/7/fehlerur.jpg/
Funktionierender Server:
http://imageshack.us/photo/my-images/194/funktioniertr.jpg/
Irgend ein Rat?
Vielen Dank
Da sich der Output jedoch deutlich unterscheidet, würde ich an deiner Stelle aber mal die Versionsnummern der tw_cli vergleichen. Zudem könntest du auch mal prüfen, ob der Output vom Controller-Modell abhängt, indem du den 9750-4i einfach mal in den anderen Server einbaust.
Du Benutzt als Befehl zur Abfrage des Controllers "show".
dieser Befehl bringt jedoch auch noch "Gehäuse" (Enclosure) auf den Plan, was wiederum Probleme bereitet (siehe oben)
Lösung: info
einfach den "show" (und wirklich nur den show alleine) durch "info" ersetzen.
Die "ausgebesserte" Version:
http://pastebin.com/fiGtQwui
Zeile 252 ist die entscheidende
Die Ausgabe ist im übrigen unabhängig von der tw_cli Version(ist in beiden Fällen _die Selbe_.
Vielen Dank
Alex
tw_cli.exe ist nicht installiert, sondern die Portable Version im Verzeichnis C:\tw_cli gespeichert.
Wie kann man den Pfad zu tw_cli.exe in dem Script anpassen?
Danke im Voraus