Wenn es um die Überwachung von ESX-Servern geht, haben sich zwei Plugins bei mir bewährt.
Achtung: wenn die RAM-Disk zu groß angelegt wird, kann es zu Problemen mit dem System kommen, daher vorher mit "free -m" überprüfen.
- check_vmware_api.pl (ehemals check_esx3.pl)
- check_vmware_esx.pl - Fork von check_vmware_api.pl (aktuell meine präferierte Variante)
Auf die Installation des Plugins gehe ich jetzt nicht weiter ein, sondern mehr auf meine Fallstricke/Optimierungen
1. Nutzung der Umgebungsvariablen http_proxy / https_proxy
Falls die Umgebungsvariablen http(s)_proxy gesetzt sind, wird der Abruf der Daten über den Proxyserver erfolgen (falls keine Ausnahmen deklariert wurden), umgehen kann man dieses, indem man die Skripte um folgende Zeilen erweitert:
Erweiterung der Plugins um folgende Zeilen (z.B. auf Höhe der Variablen-Deklaration)
# reset proxy
$ENV{http_proxy} = "";
$ENV{https_proxy} = "";
Streng genommen würde https_proxy reichen, da die Requests über SSL erfolgen.
2. Timeouts beim Abruf mit Ubuntu 12.04
Da scheinbar das vSphere SDK nicht mit den aktuellen libwww-perl Modulen zurecht kommen, muss eine ältere Version installiert werden:
cpan[1]> i /libwww-perl/
Going to read '/root/.cpan/Metadata'
Database was generated on Mon, 06 Oct 2014 13:17:02 GMT
Distribution GAAS/libwww-perl-5.837.tar.gz
Distribution MSCHILLI/libwww-perl-6.08.tar.gz
Author LWWWP ("The libwww-perl mailing list" <libwww@perl.org>)
3 items found
cpan[2]> install GAAS/libwww-perl-5.837.tar.gz
Anschließend klappt der Abruf der Daten.
3. Ablegen der Session Files in ein TMPFS
Um die Performance zu steigern empfiehlt es sich eine RAM-Disk als Plugin Cache anzulegen, dazu erstellt man folgenden Eintrag in der /etc/fstab
# nagios plugins
tmpfs /var/cache/nagios_plugin tmpfs nodev,nosuid,noexec,nodiratime,size=512M 0 0
Der Parameter "size" muss natürlich angepasst werden, möglich sind dort die Kombinationen
- % - z.B. 10% des zur Verfügung stehenden RAMs
- k,m,g - Angabe in Kilobyte,Megabyte oder Gigabyte
Achtung: wenn die RAM-Disk zu groß angelegt wird, kann es zu Problemen mit dem System kommen, daher vorher mit "free -m" überprüfen.
Anschließend wird der mount point erstellt und die Zugriffsrechte für den Nagios/Icinga User gesetzt:
$ mkdir /var/cache/nagios_plugin
$ chown nagios:nagios $_
Kleine Randnotiz: innerhalb der bash enthält die Variable "$_" das letzte Argument des zuletzt ausgeführten Befehls.
Nun soll die RAM-Disk gemountet werden:
$ mount /var/cache/nagios_plugn
Im Plugin muss nun noch die Variable plugin_cache angepasst werden:
$ sed -i 's/plugin_cache=.*/plugin_cache="\/var\/cache\/nagios_plugin\/";/g' /usr/lib/nagios/plugins/check_vmware_esx
Dabei muss noch der Pfad des Plugins entsprechend angepasst werden.