Mit Munin ein Windows-System überwachen

Langzeitüberwachung von Windows-Rechnern funktioniert via Munin sehr gut. Hierfür werden hier 2 Möglichkeiten beschrieben, wie diese Konfiguriert werden und was ihr Vor- bzw. Nachteil ist.

Allgemeines

Der Name des Windowsrechners muss vom Linux System immer auflösbar sein. Wichtig ist dies bei Einstellungen in der munin.conf, das dort immer der richtige Rechnername verwendet wird. Funktioniert die Namensauflösung nicht, oder nicht richtig, dann ist es sinnvoller die Namen mit Verknüpfung auf die IP Adresse in die “/etc/hosts”-Datei einzutragen.

Alle Werte, welche mit {}-Klammern umrahmt sind, sind entsprechend durch die passenden Informationen auszutauschen und die {}-Klammern zu entfernen. Bei anderen Werten handelt es sich um feste Werte die nur bei entsprechendem Fachwissen ausgetauscht werden sollten.

Überwachen via SNMP

SNMP am Master-Servers (Debian Squezzy)

In der Datei “/etc/munin/munin.conf” muss der Name des Windowscomputers hinterlegt werden (MeineGruppe ist der Name einer frei definierbaren Gruppe [wird für Gruppenweite Einstellungsmöglichkeiten benötigt], MeinComputer ist der Rechnername von Windows. Beides ist entsprechend anzupassen):

[{MeineGruppe};{MeinComputer}]
address 127.0.0.1

Die Datei “/etc/munin/plugin-conf/munin-node” muss noch um einen Abschnitt erweitert werden, damit der munin-node weiß von welcher Addresse er die Information beziehen soll (IP ist entsprechend anzupassen, MeinComputer muss genauso wie im Abschnitt drüber angepasst werden):

[snmp_{MeinComputer}*]
env.ip {x.x.x.x}
env.port 161
env.community public

Im Verzeichnis “/usr/share/munin/plugins/” sind verschiedene Scripte für SNMP vorhanden, diese müssen nun noch in den “/etc/munin/plugins/"-Ordner gelinkt werden, mit der Namenskonvention snmp_MeinComputer_*. Damit dies nicht alles per Hand durchgeführt werden muss, existiert folgender Befehl (MeinComputer wieder entsprechend oben angegeben anpassen):

munin-node-configure -snmp {MeinComputer} --shell | sh -x

Dadurch werden Shell-Befehle ausgeben welche durch “| sh -x” direkt ausgeführt werden und alle SymLinks erstellen, welche noch nicht existieren.

Dann noch mit folgenden Befehl, den munin-node neustarten lassen und schon wurde auf Master-Seite alles durchgeführt:

/etc/init.d/munin-node restart

SNMP am Client Computers (Windows)

Windows XP

Hier muss “nur” ein SNMP-Dienst installiert werden. Dieser wird ab Windows XP von Microsoft direkt mitgeliefert und muss nur noch installiert werden. Die Installation findet man unter “Systemsteuerung”-> “Software” -> “Windows-Komponenten hinzufügen/entfernen” -> “Verwaltungs- und Überwachungsprogramme” -> “SNMP (Simple Network Management Protocol)” (Hier kann man auch gleich den “WMI SNMP-Anbieter” mit aktivieren). Hacken aktivieren und mit Ok und Weiter die Installation starten.

In der Dienste-Verwaltung (Start -> Ausführen -> “services.msc” -> OK drücken) am “SNMP-Dienst” die Eigenschaften öffnen, auf der Tabreiter “Sicherheit” den Hacken bei “Authentifizierungstrap senden” aktivieren, “SNMP-Pakete von jedem Host annehmen” aktivieren und als Communitynamen public mit Standardberechtigung erstellen wenn nicht vorhanden. Nach den verändern der Einstellung nochmal den Dienst neu starten.

Windows 7

Arbeitsschritte sind die gleichen wie bei Windows XP nur die Elemente sind anderes benannt. Die Installation ist hier unter “Systemsteuerung” -> “Programme und Funktionen” -> “Windows-Funktionen aktivieren oder deaktiveren” -> “Simple Network Managment-Protokoll (SNMP)” (auch hier kann “SNMP WMI-Anbieter” aktiviert werden).

Konfiguration und neu starten des Dienstes nicht vergessen!

Windows 2008 Server

Ebenfalls die selben Schritte. Die Installation findet man unter “Systemsteuerung” -> “Programme und Funktionen” -> “Windows-Funktionen aktivieren oder deaktiveren” -> “Server-Manager\Features” -> “Features hinfzufügen” (Rechts oben im eck) -> “SNMP-Dienst” (anwählen, dadurch werden die 2 Unterpunkte mit aktivieret) mit Weiter und Installieren die Installation starten.

Konfiguration und neu starten des Dienstes nicht vergessen!

Überwachen mit munin-node

Ich finde die Methode über munin-node angenehmer zu konfigurieren. Da hier zum größten Teil alles in der munin-node.ini-Datei (zu erstellen im Verzeichnis der Exe) auf dem Windowscomputer konfiguriert wird. Ebenso ist die Ausbeute bedeutend größer als über SNMP, da hier durch eigene Plugins sowie Performance Counter erweitert werden kann. Der einzige Nachteil, es muss eine zusätzliche Software heruntergeladen und installiert werden.

munin-node am Master-Servers (Debian Squezzy)

In der Datei “/etc/munin/minun.con” folgenden eintrage hinzufügen (MeineGruppe ist der Name einer frei definierbaren Gruppe [wird für Gruppenweite Einstellungsmöglichkeiten benötigt], MeinComputer ist der Rechnername von Windows, x.x.x.x ist die IP-Adresse des abzufragen Windowsrechners. Alle 3 sind entsprechend anzupassen):

[{MeineGruppe};{MeinComputer}]
address {x.x.x.x}
use_node_name yes

Zum aktiveren jetzt noch den Dienst neustarten per:

/etc/init.d/munin-node restart

munin-node am Client Computer (Windows)

Zuerst muss “munin-node-win32” installiert werden. Der Download ist unter munin-node-win32 zu finden. Nach der Installation findet man im Installationsverzeichnis nur 2 Dateien, den Dienst selbst und eine Uninstall.exe.

Zur Konfiguration gibt es auf der oben genannten Website noch eine kleine Wiki. Hier aber mal eine vorgefertigte Version (Aufpassen bei der Codierung, muss “UTF-8 ohne BOM” sein) für ein Deutsches Windows XP (Wichtig ist hier zu beachten, das bei den PerfomanceCountern auf die Sprache zu achten ist!):

[Plugins]
; Plugin Section, 1 enables plugin, 0 disables
Disk=1
Memory=1
Processes=1
Network=1
MbmTemp=1
MbmVoltage=1
MbmFan=1
MbmMhz=1
SMART=1
HD=1
Cpu=1
SpeedFan=0
;uptime=1 ;Ist in den Sourcen noch nicht freigeschalten (Stand 1.6.0)
External=0
NewExternal=0

[ExternalPlugin_free]
;Command=c:\1\disk_free.py
;env.foobar=free

[DiskPlugin]
; Default Warning and Critical values for % space used
Warning=92
Critical=98

[ExternalPlugin]
; For External Plugins just add an entry with the path to the program to run
; It doesn't matter what the name of the name=value pair is
;Plugin01=C:\Users\Jory\Documents\Visual Studio Projects\munin-node\src\plugins
python\disk_free.py

[PerfCounterPlugin_disktime]
DropTotal=1
Object=Logischer Datenträger
Counter=Zeit (%)
CounterFormat=double
CounterMultiply=1.000000
GraphTitle=Disk Time
GraphCategory=disk
GraphArgs=--base 1000 -l 0
GraphDraw=LINE

[PerfCounterPlugin_processor]
DropTotal=1
Object=Prozessor
Counter=Prozessorzeit (%)
CounterFormat=double
CounterMultiply=1.000000
GraphTitle=Processor Time
GraphCategory=system
GraphArgs=--base 1000 -l 0
GraphDraw=LINE

[PerfCounterPlugin_uptime]
Object=System
Counter=Systembetriebszeit
GraphTitle=Uptime
GraphCategory=system
GraphDraw=AREA
GraphArgs=--base 1000 -l 0
DropTotal=0
CounterFormat=large
CounterMultiply=1.1574074074074073e-005

[PerfCounterPlugin_processtime]
DropTotal=1
Object=Prozess
Counter=Prozessorzeit (%)
CounterFormat=double
CounterMultiply=1.000000
GrapTitle=Processtime
GraphCategory=system
GraphDraw=AREA
GraphArgs=--base 1000 -l 0
[SpeedFanPlugin]
BroadcastIP=192.168.0.255
UID=FF671100