Das Plugin kann den Hardware-Status von Servern abfragen. Das ist z.B. dann möglich, wenn ein Server eine Managementkarte eingebaut hat.
Installation
Bevor mit der Installation des Plugins begonnen werden kann, sind aber noch ein paar Abhängigkeiten zu beachten. Da alle Pakete in den Repositories verfügbar sind, ist die Installation sehr einfach durchzuführen.
sudo aptitude install gawk
Es wird auch das FreeIPMI-Paket für das Plugin benötigt. Leider musste ich aber feststellen, dass es dabei ein paar Probleme geben kann. Es gibt zwei Pakete, die dafür verwendet werden können:
- freeipmi-tools
- ipmitool
Eine ausführliche Beschreibung findet ihr hier ➡ IPMI – Execution of ipmitool failed with return code 127.
Nun kann man das Plugins von der Seite des Herstellers herunterladen (:arrow: thomas-krenn.com).
Die heruntergeladene Datei kopiert man nun in das Verzeichnis /usr/lib/nagios/plugins. Die Rechte sind unbedingt zu prüfen.
Zum Abschluss muss man Nagios noch mitteilen, dass ein neues Plugin vorhanden ist, also auf der Konsole eingeben
sudo /etc/init.d/nagios3 reload
Konfiguration
Zu Beginn der Konfiguration muss der Abfragebefehl definiert werden, z.B. in der Datei commands.cfg
define command{ command_name check_ipmi_sensor command_line $USER1$/check_ipmi_sensor -H $_HOSTIPMI_IP$ -U $ARG1$ -P $ARG2$ -T $ARG3$ -L user }
Danach muss man die Gerätedateien so konfigurieren, dass das IPMI-Tool darauf zugreifen kann. In meinem Beispiel habe ich einen Server mit einer statischen IP-Adresse der auf einer Hardware mit einer Managementkarte läuft, die ebenfalls über eine statische IP verfügt.
Nun soll in Nagios die Management-Karte zum Server zugeordnet werden. Es ist ziemlich leicht das vorzunehmen.
In dem Bereich define host ist die Zeile _ipmi_ip einzufügen.
define host{ use generic-server ; Name of host template to use host_name Server1 alias Server1 address 192.168.2.2 _ipmi_ip 192.168.3.50 }
Die Services können ebenfalls in der gleichen Datei definiert werden:
atusmap_image base/suse.gd2 } define service{ use generic-service host_name Server1 service_description SSH check_command check_ssh!172.16.0.4 } define service{ use generic-service host_name Server1 service_description SSH Port 22 check_command check_ssh_port!22!172.16.0.4 } # Doku für ipmitool --> http://www.webhosternews.com/2010/10/uberwachen-sie-server-hardwaremit-dem-ipmi-plugin-in-nagios/ # http://www.thomas-krenn.com/de/wiki/IPMI_Grundlagen # Konsolenabfrage: ipmitool -I lan -H-U -P sensor define service{ use generic-service host_name Server1 service_description IPMI_Hardware_Status check_command check_ipmi_sensor!$USER5$!$USER6$!full } define service{ use generic-service-1m-check host_name Server1 service_description IPMI_Hardware_Fan check_command check_ipmi_sensor!$USER5$!$USER6$!fan } define service{ use generic-service-1m-check host_name Server1 service_description IPMI_Hardware_Voltage check_command check_ipmi_sensor!$USER5$!$USER6$!Voltage } define service{ use generic-service-1m-check host_name Server1 service_description IPMI_Hardware_Temparature check_command check_ipmi_sensor!$USER5$!$USER6$!Temperature } define service{ use generic-service-1m-check host_name Server1 service_description IPMI_Hardware_Memory check_command check_ipmi_sensor!$USER5$!$USER6$!Memory } define service{ use generic-service-1m-check host_name Server1 service_description IPMI_Hardware_Processor check_command check_ipmi_sensor!$USER5$!$USER6$!Processor }
Die Platzhalter $USER5$ und $USER6$ sind für den Benutzernamen und das Passwort reserviert. Da der Zugriff auf die Managementkarte des Servers einen Login benötigt, müssen diese Werte Nagios mitgeteilt werden.
Die beiden Informationen werden in der resource.cfg hinterlegt. Hier ist zwingend zu beachten, dass beide Werte in Plaintext dort gespeichert werden. Nach Möglichkeit ist ein separater User auf der Netwerkkarte anzulegen, der nur Lesezugriff auf die benötigten Informationen hat, um ggf. bei Passwortdiebstahl Missbrauch zu vermeiden.
Ist die Konfiguration abgeschlossen, dann teilt man das Nagios mit, indem man auf der Konsole den Befehl eingibt:
sudo /etc/init.d/nagios3 reload