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

Aus ITwiki
Wechseln zu: Navigation, Suche
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 32: Zeile 32:
 
  ./vmware-install.pl
 
  ./vmware-install.pl
  
== Problem mit check_vmware.pl ==
+
== Erster Nagios-Test ==
  
Beim Scriptaufruf von check_vmware.pl trat bei mir die Meldung auf, dass die Server-Version nicht geprüft werden konnte. Füge einfach im Script ziemlich weit oben folgendes ein:
+
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;
 
  $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.
 
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 46: 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]