VMWare vCenter Server mit Nagios überwachen

Aus ITwiki
Wechseln zu: Navigation, Suche

Vorbereitungen[Bearbeiten]

Wer eine VMWare-Umgebung hat und diese mit Nagios überwachen will, muss ein paar Vorarbeiten leisten, dass die diversen Perl-Plugins auch laufen. In der Regel benötigt man für ein Debian "Squeeze" System folgendes:

  1. Das VMWare vSphere SDK for Perl (gibt's in 32 und 64 Bit!)
  2. apt-get install libssl-dev perl-doc libxml-libxml-perl libxml2-dev uuid-dev

Installation[Bearbeiten]

Um nun das SDK erfolgreich installieren zu können, müssen unter Debian "Squeeze" noch folgende Befehle aufgerufen werden:

cd /usr/src
wget http://search.cpan.org/CPAN/authors/id/J/JN/JNH/UUID-0.04.tar.gz
tar -xzvf UUID-0.04.tar.gz
cd UUID-0.04
perl Makefile.PL

Debian wird vom VMWare SDK nicht offiziell unterstützt, deshalb muss man dem Installer ein Ubuntu vorgaukeln:

echo ubuntu > /etc/tmp-release

Zudem müssen folgende Umgebungsvariablen gesetzt werden:

export http_proxy=
export ftp_proxy=

Jetzt kann das Installationsscript aufgerufen werden:

cd /usr/src
tar -xzvf VMware-vSphere-Perl-SDK-5.0.0-422456.i386.tar.gz
cd vmware-vsphere-cli-distrib
./vmware-install.pl

Erster Nagios-Test[Bearbeiten]

Der Befehlsaufruf in Nagios zum Überwachen der ESX RAM-Auslastung sieht dann z. B. so aus:

/usr/bin/perl  /usr/lib/nagios/plugins/check_vmware_api.pl -H esxserver01 -u username -p passwort -l mem -w @80: -c @90: -s usage

Bei mehr als 80 % Speicherauslastung wird eine Warnung generiert, ab 90 % ein Critical. Wichtig: man muss zum Prüfen des ESX- bzw. vCenter-Servers Benutzername und Kennwort angeben. Ich habe hierzu über den vSphere Client an jedem ESX-Host einen (gleichnamigen) "Read-Only" User angelegt und am vCenter Server (Windows Server-Maschine) einen lokalen Windows-Benutzer, der keine besonderen Rechte benötigt (es reicht die Mitgliedschaft in der Windows-Gruppe "Benutzer"). Beachte vielleicht noch: zum Anlegen eines Users über den vSphere Client musst du dich direkt zum ESX-Host verbinden, nicht zum vCenter Server! Dort kann man den Account nämlich nicht anlegen, siehe auch http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.security.doc%2FGUID-670B9B8C-3810-4790-AC83-57142A9FE16F.html und beachte zudem noch, dass das Kennwort für diesen lokalen ESX-User komplex sein muss :-)

Problem mit check_vmware_api.pl[Bearbeiten]

Zunächst musste ich per Hand noch Perl-Module nachinstallieren:

perl -MCPAN -e 'install Nagios::Plugin'
perl -MCPAN -e 'install Module::Implementation'

Beachte auch den Beitrag auf exchange.nagios.org für weitere Details / fehlende Module.

Beim Scriptaufruf von check_vmware_api.pl trat dann noch eine Meldung auf, dass die Server-Version nicht geprüft werden konnte. Füge einfach im Script ziemlich weit oben folgendes ein:

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

Dadurch wird die Hostverifizierung nicht über HTTPS durchgeführt, sondern über HTTP. Der Fehler tritt scheinbar deshalb auf, weil das vom ESX Host / vCenter zur Verschlüsselung verwendete Zertifikat selbst signiert ist und beim Scriptaufruf dadurch kein Zugriff möglich ist.

Stelle auch sicher, dass am vCenter Server bzw. ESX-Host der lokale User angelegt ist.

Nützliche Links[Bearbeiten]