Dieser 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.Seit unserem Umzug von ESXi auf zwei ESX-Server hatten wir ein kleines Problem: Die Überwachung mittels dem Plugin check_esx_wbem.py funktionierte nicht mehr. Also musste auch ein neues her, schliesslich will man ja nicht blind sein!
Also habe ich mich auf exchange.nagios.org auf die Suche nach einer funktionierenden Lösung gemacht, welche trotz den zwei Dutzend Scripte und Lösungen gar nicht so einfach zu finden war. Ob nun falsche oder veraltete Programmierung oder schlicht meine Unfähigkeit der Grund für dessen versagen war, lass ich mal im Raum stehen.
Schlussendlich bin ich auf ein Perl Script namens “Vmware ESX & VM host” gestossen, welches plötzlich konnte, was ich wollte. Dazu war lediglich das vSphere SDK für Perl erforderlich und schon konnte es losgehen.
In den Ordner libexec gehört das Script und muss ausführbar gemacht werden:
curl "http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=2154&cf_id=29" > check_esx.pl chmod +x check_esx.pl
Danach konnte das passende Kommando eingepflegt werden unter etc/objects/commands.cfg:
#check hardware of an esx server
define command{
command_name check_vsphere
command_line $USER1$/check_esx.pl -D $CLUSTER$ -H $HOSTALIAS$ -u $USER$ -p $PASS$ -l $ARG1$
}
Unter etc/resource.cfg können die verwendeten Variablen definiert werden. Bedingung hierfür, dass der Hostalias, also $HOSTALIAS$, dem DNS-Namen entspricht. Kann aber auch problemlos angepasst werden.
Weiter gehts nun mit den eigentlichen Maschinen:
define service{
use generic-service
hostgroup_name esx-servers
service_description CPU Usage
check_command check_vsphere!cpu -s usage -w 90 -c 95
}
define service{
use generic-service
hostgroup_name esx-servers
service_description Memory Usage
check_command check_vsphere!mem -s usage -w 90 -c 95
}
define service{
use generic-service
hostgroup_name esx-servers
service_description Network
check_command check_vsphere!net
}
define service{
use generic-service
hostgroup_name esx-servers
service_description Status
check_command check_vsphere!runtime -s status
}
define service{
use generic-service
hostgroup_name esx-servers
service_description Datastore
check_command check_vsphere!vmfs
}
Und das war es auch schon. Aussehen tut das ganze so:

Neuer Blogbeitrag: Vmware Datacenter mit Nagios überwachen http://t.co/o2PjMV6u
Neue Publizierung: Patrick Schmid (compr00t): Vmware Datacenter mit Nagios überwachen http://t.co/fmZctPBJ #planetdfde
Vmware Datacenter mit Nagios überwachen | Bits, Bytes and my 5 cents – http://t.co/tZ3pbykS
Vmware Datacenter mit Nagios überwachen: Seit unserem Umzug von ESXi auf zwei ESX-Server ha… http://t.co/wnNryr4y
Vmware Datacenter mit Nagios überwachen http://t.co/POd8fU53
Handelt es sich bei der Einführung um einen Schreibfehler? Du schreibst ihr seid von ESXi auf ESX migriert. Ist es nicht anders herum?
ESX Hosts werden seit vSphere 4.1 nicht mehr weiter entwickelt…
Gruß
Thorsten
Nein, ist kein Schreibfehler. Von ESX auf ESXi wäre ja eher eine Herabstufung
Aber korrekterweise müsste es auf Vmware vSphere 5 heissen, was einem ESX 5 entspricht.