====== Vmware-sdk ====== Man kann mit der VMWare-SDK for Perl CLI direkt mit den ESX-Servern kommunizieren. Dafür lädt man sich das jew. SDK von [[http://www.vmware.com/support/developer/viperltoolkit/|hier]] herunter und installiert dieses wie in den Installationsanleitungen (weiter unten auf der Seite) angegeben. ===== Kommunikation herstellen ===== Danach muß die Kommunikation zwischen der SDK-CLI, auf dem Nagios-Host, und der vSphere-Umgebung hergestellt werden. Dafür öffnen man sich den **vSphere-Client** und loggt sich direkt auf einen ESX-Host ein. Hier legt man einen neuen **Benutzer** für das Monitoring an (Auf den Server klicken, unter dem Reiter "Lokale Benutzer und Gruppen"). Dieser hat **keinen Shell-Zugriff** und gehört der **Rolle** "Nur-lesen" an (Kontextmenü des Servers -> "Berechtigung hinzufügen"). Testen kann man das SDK z.B. so: esxcli --server --username --password network ip interface list Die Ausgabe sollte ungefähr so aussehen: vmk0 Name: vmk0 MAC Address: 78:e7:d1:e1:8b:f4 Enabled: true Portset: vSwitch0 Portgroup: Management Network VDS Name: N/A VDS Port: N/A VDS Connection: -1 MTU: 1500 TSO MSS: 65535 Port ID: 16777220 ===== Nagios-Plugin ===== ==== check_vmware_api ==== Der Nachfolger des ''check_esx3'' Plugins ist das Plugin ''check_vmware_api''. Heruntergeladen wird es wie folgt: gi clone https://github.com/op5/check_vmware_api.git Danach die installation wie in der "Readme.md" beschrieben befolgen. Zuletzt einfach die ''check_vmware_api.pl'' in das Nagios-Libexec-verzeichnis kopieren: cp /check_vmware_api.pl /usr/local/nagios/libexec Weiterhin benötigt man noch folgendes Perlmodul, welches auch installiert werden muss: ''Monitoring::Plugin::Functions''. ==== check_esx3 ==== Nach der Installation und dem erfolgreichen Test kann in Nagios das Plugin installiert werden. cd /usr/local/nagios/libexec Hier dann die Datei "check_esx3.pl" erstellen und den Code von [[http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob;f=check_esx3.pl;h=cf7d513baf14aad401cd4e4a196c904ae0c68d99;hb=HEAD|hier]] hinein pasten. chown nagios.nagios check_esx3.pl chmod a+x check_esx3.pl ===== Troubleshooting ===== Wenn die VMWare Umgebung Verschlüsselt über ''https'' abgefragt wird, dann kann es vorkommen dass Nagios die Checks nicht abfragen kann. Im nagios.log kommem dann solche Meldungen: Server version unavailable at 'https://:443/sdk/vimService.wsdl' at /usr/local/share/perl/5.14.2/VMware/VICommon.pm line 545. Hier kann nun eine Environment-Variable gesetzt werden, damit die VMWare Hosts unverschlüsselt per ''http'' abgefragt werden: export PERL_LWP_SSL_VERIFY_HOSTNAME=0 Diese Variable ist allerdings nur in der aktuellen Shell-Session verfügbar. Wenn der Server rebootet wird dann ist die Einstellung weg. Man könnte die Variable auch in die ''/etc/environments"" setzen, dies hätte aber zur Folge dass Perl generell keine Verschlüsselung anwendet. Wir möchten dass nur in der ''check_esx3.pl'' diese Verschlüsselungs Environment-Variable gesetzt wird. Hierfür einfach folgendes in die ''check_esx3.pl'' einfügen (einfach vor die ersten "use..." Zeilen): $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;