Windows Updates prüfen mit Nagios

closeDieser Beitrag wurde vor über 3 Monaten veröffentlicht. Die darin beschriebenen Informationen sind mit Vorsicht zu geniessen, da sie bereits veraltet oder nicht mehr gültig sein könnten. Solltest du von Neuerungen oder Verbesserungen wissen, so freue ich mich über einen klärenden Kommentar.

Um unserer Server optimal überwachen zu können, habe ich eine Lösung implementiert, wie die benötigten Updates durch Nagios überwacht werden können.
Leider ist dies nicht eine Standardfunktion von NSClient++ und auch per SNMP habe ich nichts schlaues gefunden, also habe ich eine Lösung mittels Scripts und NRPE implementiert.

Damit das klappt, muss zuerst dieses Script auf der zu überwachenden Maschine abgelegt werden. Ich habe dazu den Ordner C:\Program Files\NSClient++\scripts verwendet.

Nun kann es an die Konfiguration gehen. Dazu müssen einige Einstellungen in der NSC.ini-Datei angepasst werden. Natürlich ist NRPE bereits aktiviert und deshalb auch einkommentiert:

NRPEListener.dll

Aber es wird auch die folgende DLL gebraucht:

; Script to check external scripts and/or internal aliases.
CheckExternalScripts.dll

Dann wird noch der passende Port festgelegt:

[NRPE]
;# NRPE PORT NUMBER
;  This is the port the NRPEListener.dll will listen to.
port=5666

Ganz praktisch ist es auch, das Timeout hochzusetzen:

;# COMMAND TIMEOUT
;  This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
command_timeout=60

;# SOCKET TIMEOUT
;  Timeout when reading packets on incoming sockets. If the data has not arrived withint this time we will bail out.
socket_timeout=30

Um es sicherer zu machen, verbieten wir noch Argumente zu übergeben.

;# COMMAND ARGUMENT PROCESSING
;  This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.
allow_arguments=0

Natürlich wollen wir auch SSL verwenden:

;# USE SSL SOCKET
;  This option controls if SSL should be used on the socket.
use_ssl=1

Nun können wir auch schon unser Script angeben:

[External Scripts]
check_updates=cscript.exe //T:40 //NoLogo scripts\check_windows_updates.wsf /w:1 /C:10

Nun noch alles speichern und den NSClient++ neustarten:

net stop nsclientpp
net start nsclientpp

Wer noch eine Firewall aktiviert hat, der muss natürlich noch für Port 5666 eine Ausnahme anlegen.

So, nun gehts weiter auf der Seite von Nagios!

Hier prüfen wir als erstes mal die Verbindung:

root@encodingit:/usr/local/nagios/libexec# ./check_nrpe -H 192.168.1.20 -p 5666

Eine Ausgabe wie die folgende bestätigt, dass NRPE prinzipiell funktioniert:

I (0.3.8.76 2010-05-27) seem to be doing fine...

Nun prüfen wir noch das von uns definierte Kommando:

root@encodingit:/usr/local/nagios/libexec# ./check_nrpe -H 192.168.1.20 -p 5666 -c check_updates

Hier zeugt eine Ausgabe wie die folgende von Erfolg:

No updates waiting or installing.

Bekommt ihr einen Fehler wie

"UNKNOWN: No handler for that command"

oder

Request contained arguments (not currently allowed, check the allow_arguments option).

so geht die Schritte zu Beginn nochmals sorgfältig durch!

Nun also können wir das ganze in Nagios integrieren. Dazu definieren wir zuerst ein neues Kommando (unter nagios/etc/objects/commands.cfg)

#check windows updates
define command {
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c $ARG1$
        }

Und dann einen neuen Service:

define service{
        use                     generic-service
        host_name               SERVER1, SERVER2, SERVER3
        service_description     Windows Updates
        check_command           check_nrpe!check_updates
}

Nun alles neuladen und los geht das überwachen:

/etc/init.d/nagios reload

Kommt dabei nicht die folgende Ausgabe, so prüft euren Syntax:

Running configuration check...done.
Reloading nagios configuration...done
close
Immer informiert sein dank meines RSS Feeds.Oder folge mir via Twitter!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <b> <blockquote cite=""> <cite> <del datetime=""> <em> <i> <pre lang="" line="" escaped=""> <strong>