Dienstag, 7. Oktober 2014

Ubuntu 12.04: Probleme bei der Nutzung von check_vmware_api.pl / check_vmware_esx

Wenn es um die Überwachung von ESX-Servern geht, haben sich zwei Plugins bei mir bewährt.

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.