Virtualisierung ist eine im Datacenter bereits seit vielen Jahren etablierte Technologie, die ihre Ursprünge in der Host-Partitionierung im Mainframe-Umfeld hat. Bereits vor über 35 Jahren hat IBM hier mit verschiedenen Mainframe-LPARs einen bedeutenden Grundstein gelegt. Heute ist Virtualisierung aus dem Rechenzentrum nicht mehr wegzudenken und viele moderne Architekturkonzepte wie etwa Cloud-Computing wären ohne diese Basistechnologie nicht denkbar.
Da neue virtuelle Maschinen schnell und einfach ausgerollt werden können, geraten die Grundprinzipen guten IT-Managements im Alltag allerdings manchmal ins Hintertreffen. Beispielsweise werden die notwendigen Einträge in der Configuration Management Database (CMDB) vergessen, keine Dokumentation erstellt oder die Aufnahme ins Monitoring auf später verschoben.
Gerade die Überwachung der verfügbaren Ressourcen und Einhaltung der vereinbarten Service-Level sollten eine Kernkompetenz des IT-Betriebs sein und auch entsprechend flexibel mit den neuen Anforderungen umgehen. Für die freien Monitoring-Systeme Nagios und Icinga gibt es eine Vielzahl an Plugins, um die verfügbaren Virtualisierungslösungen überwachen und auch langfristige Kapazitätsengpässe zu erkennen. Dieser Artikel stellt Lösungen vor, um virtualisierte Umgebungen zu überwachen und Veränderungen zu identifizieren.
Zuerst drängt sich die Frage auf, was ein virtuelles System eigentlich so besonders macht. Scheint doch die feste Zuordnung von Ressourcen zu einem virtualisierten System die gleichen Basisüberwachungen wie gewöhnlich zu erfordern. Aber was ist gewöhnlich, was soll denn wirklich auf Ebene des Betriebssystems überwacht werden? Um Ausfälle nicht nur zu erkennen, sondern möglichst zu vermeiden, bietet die Festplatte in der Regel das meiste Potential, daher sollte die Überwachung des freien Platzes, aber auch der I/Os pro Sekunde besonderes Augenmerk geschenkt werden: Nagios kann mit dem Plugin »check_disk
«
[1] die Plattenauslastung erkennen und die Daten später für das Kapazitätsmanagement nutzen. Eine sehr sinnvolle Erweiterung des Disk-Checks ist auch die Überwachung des Disk-I/O. Dieser kann mit dem entsprechenden Plugin »check_diskio
«
[2] einfach ermittelt und auch mit Schwellwerten zur Alarmierung versehen werden. Erhöhter Disk-I/O ist oft bereits Tage oder Wochen vor anderen Problemen erkennbar, da heutige Systeme eher Speicher- als CPU-gebunden arbeiten.
Auch wenn NRPE (Nagios Remote Plugin Executer) in vielen Umgebungen Standard ist, sollte man SSH den Vorzug geben. Gründe sind Firewall-Awareness, Updates durch den jeweiligen Betriebssystemanbieter aber vor allem auch der bewährte Umgang mit Schlüsseln und Konfiguration im Linux- und Unix-Umfeld.
Während die genannten Plugins für Unix- und Linux-Systeme ausgelegt sind, kann der Admin auch bei Windows-Systemen Auslastung und I/O-Last überwachen. Der gebräuchlichste Weg ist hier die Verwendung des NSClient++-Agenten [3] und den entsprechenden Server-Plugins »check_nt
«
[4] oder »check_nrpe
«
. Die Abfrage erfolgt dann unter Verwendung der verfügbaren Windows-Counter:
check_nrpe -H $HOSTADDRESS$ -c CheckCounter ↩ -a "\\System\\File Data Operations/Sec" ↩ ShowAll MaxWarn=20000 MaxCrit=30000
Neben »check_disk
«
dient auch die Überwachung von bestimmten Prozessen der Fehlervermeidung. Standardplugins wie »check_proc
«
[5] und das Checkprocstate-Modul von NSClient++ [6] helfen dabei. So lässt auch auf Windows zum Beispiel die maximale Anzahl eines bestimmten Prozesses überwachen, um mögliche Fehler rechtzeitig zu identifizieren:
check_nrpe -H IP -p 5666 -c CheckProcState↩ -a MaxCritCount=50 app.exe=started
Ergänzend können Monitoring-Systeme natürlich eine Vielzahl an weiteren Diensten und Services überwachen. In den einschlägigen Portalen der deutschen Community [7] und diversen Wikis [8] finden sich unzählige Beispiele, dank der großen Beliebtheit von Nagios und Icinga.