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:
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