Workshop: Aufbau eines Systems zur Hardwareüberwachung

Server Überwachung mit Nagios/Icinga und IPMI

24.05.12 | Autor / Redakteur: Werner Fischer / Andreas Donner

Mit ein wenig Know-how lässt sich mit Nagios/Icinga und IPMI ganz leicht ein System zur Hardwareüberwachung aufbauen
Mit ein wenig Know-how lässt sich mit Nagios/Icinga und IPMI ganz leicht ein System zur Hardwareüberwachung aufbauen (Bild: © rangizzz - Fotolia.com)

Das Intelligent Platform Management Interface (IPMI) definiert einheitliche Schnittstellen zum einheitlichen Überwachen von Servern aller Hersteller. Dieser Beitrag zeigt am praktischen Beispiel, wie eine IPMI-Serverüberwachung mit Nagios, Forks Icinga, den FreeIPMI Tools sowie dem IPMI Sensor Monitoring Plugin aufgebaut wird.

Obwohl viele Serverkomponenten redundant ausgelegt werden, führen Hardwareausfälle immer wieder zu Downtimes. Doch redundante Netzteile oder Lüfter alleine reichen nicht aus, wenn nach einem Ausfall eine defekte Komponente nicht erkannt und getauscht wird. Denn so macht sich der Fehler halt erst dann bemerkbar, wenn sich auch das zweite Netzteil verabschiedet.

Aber es gibt Abhilfe: das Intelligent Platform Management Interface (IPMI) definiert einheitliche Schnittstellen zum Abfragen von Hardwaresensoren. Server aller Hersteller lassen sich damit auf einheitliche Weise überwachen. Mit Nagios oder dessen neueren Forks Icinga, den FreeIPMI Tools sowie dem IPMI Sensor Monitoring Plugin ist ein System zur Hardwareüberwachung rasch gebaut.

Hintergründe zur Funktionsweise von IPMI zeigt der Artikel ''Server-Fernwartung mit dem Intelligent Platform Management Interface''. Nun geht es darum IPMI produktiv zu nutzen und die Hardware aller Server damit zu überwachen. Als Monitoringsystem kommt dabei Icinga oder Nagios zum Einsatz. Im hier gezeigten Beispiel wird konkret folgende Software verwendet:

  • Ubuntu 12.04 LTS Server
  • Icinga 1.6.1
  • FreeIPMI 0.8.12 oder neuer
  • IPMI Sensor Monitoring Plugin check_ipmi_sensor 3.1

Die Installation des Ubuntu 12.04 LTS Server-Basissystems kann entweder direkt auf einem Server oder einer virtuellen Maschine erfolgen [1]. Ist die Installation abgeschlossen, wird Icinga auf der Kommandozeile installiert [2]:

sudo apt-get install icinga

Bei den folgenden Konfigurationsdialogen wählt man die gewünschte Postfix Konfiguration und den apache2 Server für Icinga aus und setzt das Passwort für den icingaadmin Benutzer. Danach ist das Icinga-Webinterface über die URL http://[IP-des-Servers]/icinga/ schon erreichbar (Abbildung 1), die Authentifizierung geschieht mit dem eben erstellten icingaadmin Benutzer und dessen Passwort.

Im nächsten Schritt werden die FreeIPMI-Tools und die Bibliothek libipc-run-perl installiert – beide sind für den Einsatz des IPMI Sensor Monitoring Plugins erforderlich:

sudo apt-get install freeipmi-tools libipc-run-perl

Das IPMI Sensor Monitoring Plugin (http://www.thomas-krenn.com/de/oss/ipmi-plugin.html) selbst steht auf den Open Source Seiten von Thomas Krenn zum Download bereit [3]. Nach dem Download wird die Datei check_ipmi_sensor im Verzeichnis /usr/lib/nagios/plugins des Servers abgelegt. Dass Icinga das check_ipmi_sensor Kommando nutzen kann, stellt die folgende Konfiguration in der Datei /etc/icinga/commands.cfg sicher. Die entsprechenden Zeilen werden mit einem beliebigen Editor (z.B. mit ''sudo vi /etc/icinga/commands.cfg'') ergänzt:

define command{
command_name check_ipmi_sensor
command_line $USER1$/check_ipmi_sensor -H $_HOSTIPMI_IP$ -f $ARG1$
}

Wie in der Konfiguration ersichtlich ist, nutzt check_ipmi_sensor zwei Parameter:

  • -H: IP Adresse oder Hostname des IPMI Interfaces jenes Servers, der überwacht werden soll. Falls der lokale Server überwacht werden soll, wählt man hier ''localhost''.
  • -f: Pfad zur FreeIPMI-Konfigurationsdatei für den Server, diese enthält IPMI-Benutzername und -Passwort oder weitere FreeIPMI-Optionen.

Selbstüberwachung

Wenn das Icinga System selbst auf echter IPMI-fähiger Hardware und nicht in einer virtuellen Maschine läuft, ist der nächste Schritt die Überwachung der IPMI Sensoren des Icinga-Servers selbst.

Dazu wird in der Hostkonfiguration /etc/icinga/objects/localhost_icinga.cfg die _ipmi_ip Variable in der Hostdefinition mit dem Wert localhost gesetzt und am Ende der Konfigurationsdatei der neue IPMI-Service definiert. Die dabei angeführte FreeIPMI-Konfigurationsdatei /etc/ipmi-config/ipmi-localhost.cfg kann leer sein, da für den Zugriff auf das lokale IPMI-Interface kein Benutzername oder Passwort erforderlich ist.

define host{
use generic-host; Name of host template to use
host_name localhost
alias localhost
address 127.0.0.1
_ipmi_ip localhost
}
[...]
define service{
use generic-service
host_name localhost
service_description IPMI
check_command check_ipmi_sensor!/etc/ipmi-config/ipmi-localhost.cfg
}

Damit der von Icinga verwendete nagios Systembenutzer auf das lokale IPMI Device zugreifen kann, sind root-Rechte erforderlich. Die bekommt er über die folgende sudo Konfiguration in /etc/sudoers.d/nagios-ipmi-sensors:

nagios ALL = NOPASSWD: /usr/sbin/ipmi-sensors

Für die Überwachung von anderen Servern sieht die Konfiguration sehr ähnlich aus. In den jeweiligen Host-Konfigurationen der Server wird jeweils die IP-Adresse des IPMI-Interfaces in der Variable _ipmi_ip gesetzt. Die Servicedefinition verweist bei diesen Servern jeweils auf eine entsprechende FreeIPMI Konfigurationsdateien mit IPMI Benutzername, Passwort und Privilege Level. Eine solche FreeIPMI Konfigurationsdateien sieht beispielsweise so aus:

username monitoring
password ao5$snNc!
privilege-level user

Bei den verwendeten IPMI-Benutzern sollen ausschließlich solche mit dem Privilege Level ''User'' verwendet werden. Die damit verbundenen Rechte reichen für das Abfragen von IPMI-Sensoren.

Nach vollendeter Konfiguration wird Icinga neu gestartet:

service icinga restart

Im Webinterface erscheint der neue IPMI-Service (Abbildung 2). Für alle Threshold-Sensoren mit analogen Messwerten liefert das IPMI-Plugin Performancedaten an Icinga. Diese lassen sich mit PNP4Nagios grafisch aufbereiten und in Icinga integriert darstellen [4] (Abbildung 3).

Weitere Informationen zur Icinga Konfiguration (etwa E-Mail-Benachrichtigung) finden Sie in der Icinga Dokumentation [5]. Fragen zum IPMI-Plugin können an die IPMI-plugin-user Mailingliste gerichtet werden [6].

Über den Autor

Werner Fischer ist seit 2005 Technology Specialist bei der Thomas-Krenn.AG und Co-Autor des check_ipmi_sensor Plugins. Seine aktuellen Arbeitsschwerpunkte liegen in den Bereichen Hardware-Monitoring und I/O-Performance-Optimierung – speziell mit Flash-basierenden Storage-Technologien. Daneben beschäftigt er sich hauptsächlich mit Virtualisierung und Hochverfügbarkeit. Regelmäßig referiert er zu diesen Themen bei Konferenzen wie LinuxCon, LinuxTag, OSDC/OSMC, usw. und veröffentlicht dazu Artikel in Fachzeitschriften. Bei Thomas Krenn ist er zudem Chefredakteur des Thomas Krenn Wikis.


Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Spamschutz 

Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein:
Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 33619070) | Fotos: © rangizzz - Fotolia.com

Themen-Newsletter IT-BUSINESS Themen-Update Networking abonnieren.

Hat Ihnen dieser Artikel gefallen?
Wenn Sie wichtige Nachrichten in Zukunft nicht verpassen möchten, dann versorgen wir Sie über unseren Themenkanal-Newsletter gerne direkt mit den aktuellsten News und Fachbeiträgen aus diesem Themenumfeld. Jetzt abonnieren!

* Ich bin mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung und AGB einverstanden.
Spamschutz:
Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein.