HowTo: VMware ESX(i) 3.x 4.x 5.x Monitoring mit Icinga oder Nagios check_esx3.pl

Icinga Logo

Serverüberwachung und Monitoring ist eines der wichtiges Themen in der IT. Es ist von absoluter Bedeutung den Status seiner Server und deren Services zu kennen und entsprechende Alerts zu generieren. Ich beschreibe hier das check_esx3.pl Plugin zum Überwachen der wichtigsten Ressourcen eines VMware ESX(i) Servers mit den bekannten Monitoring Tools Icinga oder Nagios

Voraussetzungen installieren

Das Plugin check_esx3.pl arbeitet mit dem VMware vSphere SDK for Perl welches zwingend erforderlich ist um die Checks auf dem ESX(i) Server durchzuführen. In folgendem Guide wird genau beschrieben wie dieses installiert wird: VMware vSphere SDK for Perl API unter Debian installieren

Monitoring User am ESX Server anlegen

Damit wir nicht direkt als root User auf den ESX(i) Server zugreifen legen wir uns über den vSphere Client einen entsprechenden User + Passwort und der Gruppe users für Monitoringzwecke an. Dieser User hat Read Only Rechte und besitzt keine gültige Shell damit man sich nicht am System (via SSH) einloggen kann:

Download des Check check_esx3.pl Perl Plugins für Icinga/Nagios

check_esx3.pl downloaden und in /usr/local/icinga/libexec oder entsprechend euer Icinga/Nagios Installation in den Check_Plugin Ordner kopieren und ausführbar machen:

chmod a+x /usr/local/icinga/libexec/check_esx3

Icinga/Nagios Konfiguration bearbeiten

Als erstes das Passwort aus Sicherheitsgründen für den zuvor angelegten ESXI User (monitoring) als Variable in der resource.cfg abspeichern:

vi /usr/local/icinga/etc/resource.cfg
$USER6$=dein_monitoring_user_passwort

Nun erstellen wir den eigentlichen Check für die ESXi Abfragen. Ich verwende hier einen einzelnen Befehl und übergebe die entsprechende Option direkt in den Services. Das ist reine Geschmacksache. Es kann auch für jede Abfrage (cpu,mem,net,runtime,…) ein eigener Befehl angelegt werden.

vi /usr/local/icinga/etc/objects/command.cfg

define command{
command_name check_esx
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u monitoring -p $USER6$ -l $ARG1$ -s $ARG2$ -w $ARG3$ -c $ARG4$
}

Da jetzt der Check erstellt ist benötigen wir in der Server Konfiguration noch die entsprechenden Services. Eine genaue Auflistung und Beschreibung der vielen Möglichkeiten findet ihr hier.

vi /usr/local/icinga/etc/objects/nhetzneresx1-services.cfg

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             PING
contact_groups                  admins
check_command                   check_ping!200.0,20%!500.0,60%
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             CPU USAGE
contact_groups                  admins
check_command                   check_esx!cpu!usage!80!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             MEMORY USAGE
contact_groups                  admins
check_command                   check_esx!mem!usage!80!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             MEMORY SWAP USAGE
contact_groups                  admins
check_command                   check_esx!mem!swap!80!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             NET USAGE
contact_groups                  admins
check_command                   check_esx!net!usage!102400!204800
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             RUNTIME STATUS
contact_groups                  admins
check_command                   check_esx!runtime!status!80!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             RUNTIME ISSUES
contact_groups                  admins
check_command                   check_esx!runtime!issues!80!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             IO READ
contact_groups                  admins
check_command                   check_esx!io!read!40!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             IO WRITE
contact_groups                  admins
check_command                   check_esx!io!write!40!90
}

define service {
use                             generic-important-service
host_name                       nhetzneresx1
service_description             VMFS MAIN STORAGE
contact_groups                  admins
check_command                   check_esx!vmfs!datastore1!300000:!150000:
}

Nach Abschluss der Konfigurationen und restart des icinga/nagios Services sieht die Service Check Übersicht für euren ESX(i) Servers in etwas so aus:

Weiterführende Informationen:

http://www.op5.com/how-to/monitoring-vmware-esx-3-x-esxi-vsphere-4-and-vcenter-server/
https://wiki.op5.org/check_esx3:start

Fehlerbehebung:

Can’t locate Nagios/Plugin.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/icinga/libexec/check_esx3.pl line 31.

Lösung:

perl -MCPAN -e shell
install Nagios::Plugin

ESX3 UNKNOWN – Missing perl module VMware::VIRuntime. Download and install ‘VMware Infrastructure (VI) Perl Toolkit’, available at http://www.vmware.com/download/sdk/

Lösung:

Das VMware vSphere SDK Perl Toolkit wurde nicht richtig installiert oder die Installation wurde nicht erfolgreich abgeschlossen. Gab es bei der Installation irgendwelche Warnings oder Fehler?

CHECK_ESX3.PL CRITICAL – Error: Permission to perform this operation was denied

Lösung:

Berechtigungen am ESX(i) überprüfen. Der angelegte User muss in der Gruppe users sein und unter Permissions auf ReadOnly gestellt sein.

HowTo: VMware ESX(i) 3.x 4.x 5.x Monitoring mit Icinga oder Nagios check_esx3.pl, 5.0 out of 5 based on 3 ratings
GD Star Rating
loading...
Patrick Schoyswohl

Patrick Schoyswohl

Systemadministrator
Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.
Patrick Schoyswohl
Wer von euch hat #ebay gekillt „DNS failure" - 3 Wochen ago
Patrick Schoyswohl

Tags: , , , , , , , , , , ,

Mittwoch, 08. Februar 2012 Linux, Monitoring, Virtualization Author: Patrick Schoyswohl

3 Kommentare zum Thema HowTo: VMware ESX(i) 3.x 4.x 5.x Monitoring mit Icinga oder Nagios check_esx3.pl

  • Andreas sagt:

    tipps für vsphere 5:

    # aktuelleres sdk als im o.g. link
    http://www.vmware.com/support/developer/viperltoolkit/

    # fehler:
    CRITICAL – Error: Cannot complete login due to an incorrect user name or password.
    # lösung:
    checks per vsphere center laufen lassen, erweiterung der command definition um ” -D VCENTER ”

    # fehler:
    CHECK_ESX.PL CRITICAL – Server version unavailable at ‘https://HOST:443/sdk/vimService.wsdl’ at /usr/share/perl/5.10/VMware/VICommon.pm line 545.
    #lösung:
    überprüfung der gültigkeit von ssl-zertifikation abschalten, /etc/init.d/icinga erweitern um:
    export PERL_LWP_SSL_VERIFY_HOSTNAME=0

    # quellen:
    http://www.nagios-portal.org/wbb/index.php?page=Thread&threadID=24384
    http://www.nagios-portal.org/wbb/index.php?page=Thread&threadID=23999

  • [...] Ausgangspunkt war der Artikel HowTo: VMware ESX(i) 3.x 4.x 5.x Monitoring mit Icinga oder Nagios check_esx3.pl auf SysADMINsLife. Ich war nicht mit allen Lösungen im Detail zufrieden, weshalb ich einiges [...]

  • Oli sagt:

    Um die Fehlermeldungen:
    BEGIN failed–compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Nagios/Plugin/Functions.pm
    und
    Server version unavailable at ‘https://xxx:443/sdk/vimService.wsdl’ at /usr/share/perl/5.10/VMware/VICommon.pm line 545.
    zu beheben habe ich zusätzlich folgende zwei Packete installiert:
    ia32-libs (gemäss Installationsanleitung von VMware erforderlich bei 64-bit Systemen)
    libnagios-plugin-perl

  • Leave a Reply

    Hosting-Lösungen (VPS, Dedicated Server, Webspace und Colocation) von Contabo

    Subscribe to our mailing list

    * indicates required Email Adresse *
    Werbung schalten

    *=Affiliatelink

    Blogverzeichnis - Blog Verzeichnis bloggerei.de