Inhaltsverzeichnis

Plugins

Hier sind div. Plugins für Nagios aufgeführt.

Check_Mk

check_mk erfasst Daten von Remote-Hosts. Die methode wie das Plugin dies macht, ist jedoch
effizienter und besser als andere Remote-Check Plugins (z.B. NRPE).

Folgende Plugins können durch check_mk ersetzt werden:

Installation

Zunächst einmal das tarball herunterladen und entpacken.

mkdir -p <PFAD>/checkMK
cd <PFAD>/checkMK
wget http://mathias-kettner.de/download/check_mk-<VERSION>.tar.gz
tar xfz check_mk-<VERSION>.tar.gz

Nun check_mk kompilieren und installieren

cd check_mk-<VERSION>
./setup.sh

Hier wird nun ein Installationsdialog gestartet, welchen man nun ein wenig unterstützen muss, damit die Richtigen
Pfade und Anweisungen zur Installation verwendet werden.

Nach erfolgreicher Installation prüft man ob check_mk installiert ist.

check_mk --version

Danach installiert man noch folgendes Apache Modul und startet den Webserver sowie Nagios neu.

apt-get install libapache2-mod-python
service apache2 restart
service nagios restart

Clients

Für Windows und Linux gibt es, bei mathias-kettner.de bereits fertige Installationsdateien.
Diese müssen nicht weiter konfiguriert werden (ausser bei Windows, wenn LogWatch benutzt wird).
Die eigene Firewall sollte natürlich angepasst werden (Port: 6556).
Den Zugang zum Client kann vom Server per Telnet geprüft werden

telnet <HOST> 6556

Konfiguration

check_mk muss angewiesen werden seine Clients abzufragen.
Dies geschieht in der Datei main.mk. Hier trägt man die Clients als Hostname oder IP in die „all_hosts“ Direktive ein (mehrere Hosts durch Komma trennen).
Danach folgende Befehle ausführen.

check_mk -I
check_mk -U

Um die autom. erstellte Nagios Konfiguration übernehmen zu können, müssen noch die Templates von check_mk übernommen werden.
Die Templates liegen unter /usr/share/check_mk/check_mk_templates.cfg.

Nach jedem weiteren neuen Client müssen die o.g. Schritte angewandt werden.

Fujitsu-Servers

Fujitsu Server können ebenfalls über Nagios abgefragt werden.
Somit wird gesamte Hardwareumbegung geprüft.

Vorbereitungen

Auf dem jew. Server muß der Fujitsu ServerView Agent installiert sein Fujitsu-Downloadpage.
Bevor dieser Installiert werden kann müssen unter Windows die SNMP-Dienste installiert werden.

Installation

Für das check_fujitsu_primergy.pl Plugin benötigt man die Snmp-Unterstützung vür Nagios.
Das Plugin kann man hier downloaden und danach einfach in das libexec Verzeichnis von Nagios verschieben.

HP-Servers

HP Proliant Server können mit Nagios überwacht werden.
Die Überwachung kann über die HP-Agents (Insight Manager SNMP Agents), ober über die iLO2 (Integrated Lights-Out 2) Erweiterung, wenn vorhanden, erfolgen.
Hier wird die zweite Methode beschrieben.

Installation

Das check_ilo2_health.pl Plugin hier herunterladen und in das libexec Verzeichnis von Nagios verschieben.
Folgende Perl-Erweiterungen mit MCPAN installieren:

Nagios::Plugin
IO::Socket::SSL
XML::Simple
apt-get install libxml-simple-perl libio-socket-ssl-perl libnagios-plugin-perl

Anwendung

Damit man das Passwort in den jew. Services ersichtlich ist, legt man sich eine $USER#$ Variable in der resource.cfg an und nutzt diese stattdessen.
Danach einfach einen Befehl und die Services in Nagios anlegen und nutzen.

Vmware-sdk

Man kann mit der VMWare-SDK for Perl CLI direkt mit den ESX-Servern kommunizieren.
Dafür lädt man sich das jew. SDK von hier herunter und installiert dieses wie in den Installationsanleitungen (weiter unten auf der Seite) angegeben.

Kommunikation herstellen

Danach muß die Kommunikation zwischen der SDK-CLI, auf dem Nagios-Host, und der vSphere-Umgebung hergestellt werden.
Dafür öffnen man sich den vSphere-Client und loggt sich direkt auf einen ESX-Host ein.
Hier legt hier einen neuen Benutzer für das Monitoring an (Reiter „Lokale Benutzer und Gruppen“).
Dieser hat keinen Shell-Zugriff und gehört der Rolle „Nur-lesen“ an (Kontextmenü: „Berechtigung hinzufügen“).

Testen kann man das SDK z.B. so:

esxcli --server <SERVER> --username <USER> --password <PASSWORD> network ip interface list

Die Ausgabe sollte ungefähr so aussehen:

vmk0
   Name: vmk0
   MAC Address: 78:e7:d1:e1:8b:f4
   Enabled: true
   Portset: vSwitch0
   Portgroup: Management Network
   VDS Name: N/A
   VDS Port: N/A
   VDS Connection: -1
   MTU: 1500
   TSO MSS: 65535
   Port ID: 16777220

Nagios-Plugin

Nach der Installation und dem erfolgreichen Test kann in Nagios das Plugin installiert werden.

cd /usr/local/nagios/libexec

Hier dann die Datei „check_esx3.pl“ erstellen und den Code von hier hinein pasten.

chown nagios.nagios check_esx3.pl
chmod a+x check_esx3.pl

Troubleshooting

Wenn die VMWare Umgebung Verschlüsselt über https abgefragt wird, dann kann es vorkommen dass Nagios die Checks nicht abfragen kann.
Im nagios.log kommem dann solche Meldungen:

Server version unavailable at 'https://<HOSTADDRESS>:443/sdk/vimService.wsdl' at /usr/local/share/perl/5.14.2/VMware/VICommon.pm line 545.

Hier kann nun eine Environment-Variable gesetzt werden, damit die VMWare Hosts unverschlüsselt per http abgefragt werden:

export PERL_LWP_SSL_VERIFY_HOSTNAME=0

Diese Variable ist allerdings nur in der aktuellen Shell-Session verfügbar. Wenn der Server rebootet wird dann ist die Einstellung weg.
Man könnte die Variable auch in die /etc/environments„“ setzen, dies hätte aber zur Folge dass Perl generell keine Verschlüsselung anwendet.
Wir möchten dass nur in der
check_esx3.pl diese Verschlüsselungs Environment-Variable gesetzt wird.
Hierfür einfach folgendes in die
check_esx3.pl'' einfügen (einfach vor die ersten „use…“ Zeilen):

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

check_linux_stats

Mit check_linux_stats lassen sich div. Informationen beauskunften (alle Infos sind perfdata Kompatibel).
Damit man diesen Check nutzen kann, muss noch eine Perl-Anwendung installiert werden.

apt-get install libsys-statistics-linux-perl

Danach lassen sich folgende Informationen, mit folgender Syntax, beauskunften:

Usage: ./check_linux_stats.pl -C|-P|-M|-N|-D|-I|-L|-F|-S|-W|-U -p <pattern> -w <warning> -c <critical> [-s <sleep>] [-u <unit>] [-V] [-h]
        -h, --help
                print this help message
        -C, --cpu=CPU USAGE
        -P, --procs
        -M, --memory=MEMORY USAGE
        -N, --network=NETWORK USAGE
        -D, --disk=DISK USAGE
        -I, --io=DISK IO USAGE
        -L, --load=LOAD AVERAGE
        -F, --file=FILE STATS
        -S, --socket=SOCKET STATS
        -W, --paging=PAGING AND SWAPPING STATS
        -U, --uptime
        -p, --pattern
                eth0,eth1...sda1,sda2.../usr,/tmp
        -w, --warning
        -c, --critical
        -s, --sleep
        -u, --unit
               %, KB, MB or GB left on disk usage, default : MB
               REQS OR BYTES on disk io statistics, default : REQS
        -V, --version
                version number

        ex :
        Memory usage                    : perl check_linux_stats.pl -M -w 90 -c 95
        Cpu usage                       : perl check_linux_stats.pl -C -w 90 -c 95 -s 5
        Disk usage                      : perl check_linux_stats.pl -D -w 95 -c 100 -u % -p /tmp,/usr,/var
        Load average                    : perl check_linux_stats.pl -L -w 10,8,5 -c 20,18,15
        Paging statistics               : perl check_linux_stats.pl -W -w 10,1000 -c 20,2000 -s 3
        Process statistics              : perl check_linux_stats.pl -P -w 100 -c 200
        I/O statistics on disk device   : perl check_linux_stats.pl -I -w 10 -c 5 -p sda1,sda4,sda5,sda6
        Network usage                   : perl check_linux_stats.pl -N -w 10000 -c 100000000 -p eth0
        Processes virtual memory        : perl check_linux_stats.pl -T -w 9551820 -c 9551890 -p /var/run/sendmail.pid
        Uptime                          : perl check_linux_stats.pl -U -w 5

Hier noch ein Beispiel für die nrpe.cfg:

# Check disk usage on /, /home, /var 
command[check_disk]=/usr/local/nagios/libexec/check_linux_stats.pl -D -w 10 -c 5 -p /,/home,/var -u %
# Check load average
command[check_load]=/usr/local/nagios/libexec/check_linux_stats.pl -L -w 10,8,5 -c 20,18,15
# Check memory & swap usage
command[check_mem]=/usr/local/nagios/libexec/check_linux_stats.pl -M -w 100,25 -c 100,50
# Check cpu usage
command[check_cpu]=/usr/local/nagios/libexec/check_linux_stats.pl -C -w 99 -c 100 -s 5
# Check open files
command[check_open_file]=/usr/local/nagios/libexec/check_linux_stats.pl -F -w 10000,250000 -c 15000,350000
# Check io disk on device sda1, sda3 and sda4
command[check_io]=/usr/local/nagios/libexec/check_linux_stats.pl -I -w 2000,600 -c 3000,800 -p sda1,sda3,sda4 -s 5
# Check processes
command[check_procs]=/usr/local/nagios/libexec/check_linux_stats.pl -P -w 1000 -c 2000
# Check network usage on eth0
command[check_net]=/usr/local/nagios/libexec/check_linux_stats.pl -N -w 1000000 -c 1500000 -p eth0 -s 5
# Check socket usage
command[check_socket]=/usr/local/nagios/libexec/check_linux_stats.pl -S -w 500 -c 1000
# Check uptime 
command[check_uptime]=/usr/local/nagios/libexec/check_linux_stats.pl -U -w 5

Quellen: http://exchange.nagios.org/