VMWare vCenter Server mit Nagios überwachen: Unterschied zwischen den Versionen

Aus ITwiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „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…“)
 
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
== Vorbereitungen ==
 +
 
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:
 
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:
  
 
# [http://communities.vmware.com/community/vmtn/developer/forums/vsphere_sdk_perl Das VMWare vSphere SDK for Perl] (gibt's in 32 und 64 Bit!)
 
# [http://communities.vmware.com/community/vmtn/developer/forums/vsphere_sdk_perl 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
 
# apt-get install libssl-dev perl-doc libxml-libxml-perl libxml2-dev uuid-dev
 +
 +
== Installation ==
  
 
Um nun das SDK erfolgreich installieren zu können, müssen unter Debian "Squeeze" noch folgende Befehle aufgerufen werden:
 
Um nun das SDK erfolgreich installieren zu können, müssen unter Debian "Squeeze" noch folgende Befehle aufgerufen werden:
Zeile 27: 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 ==
 +
 +
Zunächst musste ich per Hand noch Perl-Module nachinstallieren:
 +
 +
perl -MCPAN -e 'install Nagios::Plugin'
 +
perl -MCPAN -e 'install Module::Implementation'
 +
 +
Beachte auch [http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/Vmware-ESX-%26-VM-host/details 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 ==
 
== Nützliche Links ==
Zeile 34: 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:Konfiguration]]
+
[[Kategorie:Monitoring]]

Aktuelle Version vom 9. Juli 2013, 13:53 Uhr

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]