VMWare vCenter Server mit Nagios überwachen: Unterschied zwischen den Versionen
Flo84 (Diskussion | Beiträge) |
Flo84 (Diskussion | Beiträge) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 31: | Zeile 31: | ||
cd vmware-vsphere-cli-distrib | cd vmware-vsphere-cli-distrib | ||
./vmware-install.pl | ./vmware-install.pl | ||
+ | |||
+ | == Erster Nagios-Test == | ||
+ | |||
+ | 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 == | == Problem mit check_vmware_api.pl == | ||
Zeile 46: | Zeile 54: | ||
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. | 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 == | == Nützliche Links == | ||
Zeile 53: | Zeile 63: | ||
* [http://search.cpan.org/CPAN/authors/id/J/JN/JNH/UUID-0.04.tar.gz Benötigte Perl-Module] | * [http://search.cpan.org/CPAN/authors/id/J/JN/JNH/UUID-0.04.tar.gz Benötigte Perl-Module] | ||
− | [[Kategorie: | + | [[Kategorie:Monitoring]] |
Aktuelle Version vom 9. Juli 2013, 13:53 Uhr
Inhaltsverzeichnis
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:
- Das VMWare vSphere SDK for Perl (gibt's in 32 und 64 Bit!)
- 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.