====== 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: * NRPE * check_by_ssh * NSClient * check_snmp ===== Installation ===== Zunächst einmal das tarball herunterladen und entpacken. mkdir -p /checkMK cd /checkMK wget http://mathias-kettner.de/download/check_mk-.tar.gz tar xfz check_mk-.tar.gz Nun check_mk kompilieren und installieren cd check_mk- ./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 [[http://mathias-kettner.de/check_mk_download.html|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 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 ***-I** führt für die angegebenen Hosts eine Inventarisierung durch und erkennt alle Komponenten ***-U** erstellt eine Nagios Konfiguration, die z.b. in Nagiosql übernommen werden kann. 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 [[http://download.ts.fujitsu.com/Prim_SupportCD/start.html|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 [[linux:nagios:snmp|Snmp-Unterstützung]] vür Nagios. Das Plugin kann man [[https://www.netways.org/attachments/download/188/check_fujitsu_primergy.pl|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 [[http://exchange.nagios.org/directory/Plugins/Hardware/Server-Hardware/HP-%28Compaq%29/check_ilo2_health/details|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 [[http://www.vmware.com/support/developer/viperltoolkit/|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 --username --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 [[http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob;f=check_esx3.pl;h=cf7d513baf14aad401cd4e4a196c904ae0c68d99;hb=HEAD|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://: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 -w -c [-s ] [-u ] [-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/]]