buy viagra
buy cialis
cheap cialis
generic viagra
20.10.2010, 11:17 Uhr

Überwachen Sie Server-Hardware mit dem IPMI-Plugin in Nagios

Moderne Server enthalten zahlreiche Sensoren zur Hardware-Überwachung, beispielsweise Sensoren für Lüfterdrehzahlen, Temperaturen, Spannungen oder Netzteilstati. Zum Auslesen dieser Sensoren benötigten Sie bisher oft Hersteller-spezifische Tools, wodurch die Implementierung eines einheitlichen Monitorings viel Aufwand bedeutete. Durch das neue IPMI-Plugin für Nagios nutzen Sie nun die einheitliche Schnittstellen-Spezifikation Intelligent Platform Management Interface (IPMI) und integrieren so die Hardware-Überwachung heterogener Server-Umgebungen in Ihr Nagios-Monitoring.

Manueller Direktzugriff per IPMI: Nutzen Sie die einheitliche Schnittstelle für Sensor-Daten

IPMI wurde von Intel, Hewlett-Packard, NEC und Dell entwickelt und definiert einheitliche Schnittstellen zur Hardware-Überwachung und -Steuerung. Über den Baseboard Management Controller (BMC) Ihres Servers erhalten Sie mit einem Client-Programm den Zugriff auf diese Schnittstellen. Unter Linux verwenden Sie dazu beispielsweise ipmitool, das für die gängigen Distributionen als Paket bereitsteht. Die lokalen Sensoren Ihres Servers fragen Sie dann einfach mit ipmitool sensor ab.

Für die Datenabfrage von entfernten Servern benötigen Sie hingegen die IPMI-IP-Adresse sowie Zugangsdaten. Sie konfigurieren die IPMI-IP-Adresse entweder im BIOS des Servers oder, wenn Ihr BIOS diese Option nicht bietet, über mehrere ipmitool Kommandos (hier gezeigt mit Beispielwerten):

ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr 192.168.1.211
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 192.168.1.254
ipmitool lan set 1 defgw macaddr 00:0e:0c:aa:8e:13
ipmitool lan set 1 arp respond on
ipmitool lan set 1 auth ADMIN MD5

Alternativ bieten viele Hersteller eigene Tools zur Konfiguration an, etwa spezielle bootfähige Deployment-CDs. Für manche Systeme ist die IPMI-IP-Adresse auch mit der IP-Adresse der Remote-Management-Karte identisch.

Bei den Benutzern unterscheidet IPMI vier Rechtestufen,
die sogenannten IPMI Channel Privilege Levels:

  • - Callback: erlaubt lediglich die Initiierung eines Callbacks und spielt somit im Server-Umfeld keine Rolle
  • - User: darf ausschließlich Sensordaten abfragen
  • - Operator: darf zusätzlich einen Server ein- und ausschalten
  • - Administrator: kann darüber hinaus die IP Konfiguration und Benutzer ändern

Wenn Sie lediglich Sensordaten abfragen, wie es das IPMI-Plugin für Nagios macht, verwenden Sie am besten den Privilege Level „User“:

ipmitool user set name 3 monitor
ipmitool user set password 3
ipmitool channel setaccess 1 3 link=on ipmi=on callin=on privilege=2
ipmitool user enable 3

Alternative Möglichkeiten zur Konfiguration von IPMI Benutzen finden Sie im Handbuch Ihres Servers. Anhand von IPMI-IP-Adresse und Zugangsdaten fragen Sie per ipmitool nun auch Daten von entfernten Sensoren ab, wobei Sie „<IPMI-IP>“, „<Benutzername>“ und „<Passwort>“ durch die entsprechenden Daten Ihres Servers ersetzen:

ipmitool -I lan -H <IPMI-IP> -U <Benutzername> -P <Passwort> sensor 

IPMI-Nagios-Plugin: So verarbeitet Nagios Ihre Sensordaten automatisch per ipmitool und AWK

Für das Monitoring von Netzwerkgeräten kommt häufig das Open-Source-Programm Nagios zum Einsatz, das typischerweise zunächst einmal Serverdienste wie HTTP, DNS, FTP, etc., bzw. die Hostverfügbarkeit mit einfachen PINGs (ICMP Echo-Requests) überwacht.  Eine definierte Überwachung wird in Nagios als „Check“ bezeichnet. Die einzelnen Checks wiederholt Nagios regelmäßig, zum Beispiel alle fünf Minuten. Treten Probleme auf, verschickt Nagios Benachrichtigungen, z. B. per E-Mail, SMS, Telefonanruf oder ICQ.

Das neue IPMI-Plugin erweitert nun die Überwachungsmöglichkeiten von Nagios und integriert so auch die Überwachung von Lüfterdrehzahlen, Temperaturen und weiteren Sensoren Ihrer Server. Das Plugin selbst ist ein einfaches Bash-Skript, das zur Abfrage der Sensoren ipmitool verwendet. Die Ergebnisse parst es mit AWK, einer Programmiersprache zur Auswertung von Textdaten.

Wie Sie die IPMI-Sensorabfragen in Ihr Nagios-Monitoring integrieren

Durch die Integration in Nagios werden die Sensoren Ihrer Server automatisch regelmäßig abgefragt und die Ergebnisse ausgewertet. Dabei haben Sie zwei Möglichkeiten, das Plugin aufzurufen

  1. 1. Lokaler Plugin-Aufruf: Das Plugin wird auf Ihrem Nagios-Server installiert. Es verwendet dann die Remote-Abfrage per ipmitool, sodass Sie IPMI-IP-Adresse, Benutzername und Passwort angeben müssen.
  2. 2. Remote-Aufruf des Plugins: Sie betreiben das Plugin auf jedem überwachten Server. Der Abruf der Plugin-Ergebnisse erfolgt per Nagios Remote Plugin Executor (NRPE) oder check_by_ssh. IPMI-IP-Adresse, Benutzername und Passwort benötigen Sie hier nicht.

Bitte beachten Sie:

Da das Plugin Bash, AWK und ipmitool benötigt, ist die zweite Methode auf Unix/Linux Systeme beschränkt.

Damit Sie auch die Sensoren heterogener Server-Umgebungen mit dem Plugin auswerten können, konzentriere ich mich im Folgenden auf die Konfiguration der erstgenannten Methode, des lokalen Plugin-Aufrufs auf dem Nagios-Server. Dafür installieren Sie auf Ihrem Nagios-Server zunächst die Pakete ipmitool und gawk. Die Installation und Konfiguration des Plugins nehmen Sie dann wie folgt vor:

Schritt für Schritt:

  1. 1. Laden Sie das Plugin von www.thomas-krenn.com/ipmi-plugin auf Ihren Nagios-Server herunter, extrahieren Sie die enthaltenen Dateien und kopieren Sie die Datei „check_ipmi_sensor“ in das Plugin-Verzeichnis von Nagios.
  2. 2. Ergänzen Sie bei dem zu überwachenden Host (Server) in Nagios die IPMI-IP-Adresse mit der Custom Object Variable _ipmi_ip”:
    define host {
    host_name    host-sr2500-1
    alias                Host SR2500 1
    address          192.168.1.151
    use                  generic-host
    _ipmi_ip        192.168.1.211
    }
  3. 3. Definieren Sie den IPMI-Benutzernamen und das zugehörige Passwort als Variaablen “$USER3$” und “$USER4$” in der Konfigurationsdatei “resource.cfg“:
    # Store some usernames and passwords (hidden from the CGIs)
    # username for use in check_ipmi_sensors plugin
    $USER3$=Benutzername
    # password for use in check_ipmi_sensors plugin
    $USER4$=Passwort
  4. 4. Ergänzen Sie in der Konfigurationsdatei “commands.cfg” das IPMI-Plugin:
    define command{
    command_name check_ipmi_sensor
    command_line $USER1$/check_ipmi_sensor -H $_HOSTIPMI_IP$ -U $ARG1$ -P $ARG2$ -T $ARG3$ -L user
    }
  5. 5. Legen Sie nun die folgenden Service-Konfiguration fest, um alle Sensoren ab des Servers abzufragen:
    define service{
    use generic-service
    host_name     host-sr2500-1
    service_description  IPMI Hardware status
    check_command    check_ipmi_sensor!$USER3$!$USER4$!full
    }

Nachdem Sie einen Reload der Nagios Konfigurationsdateien durchgeführt haben, zeigt Nagios Ihnen den aktuellen Zustand übersichtlich im Webinterface an (Abbildung 1).

Abbildung 1: Hier gibt es bereits eine Warnung. Das Server-Gehäuse ist geöffnet. Die anderen Sensoren sind alle OK.

Die Parameter „$USER3$“, „$USER4$“ und „full“ in Schritt 5 sorgen dafür, dass die zuvor angegebenen Zugangsdaten beim Aufruf genutzt und alle Sensoren ausgewertet werden.

Die Verwendung des Parameters „full“ zur Auswertung aller zur Verfügung stehenden Sensoren ist insbesondere bei der Überwachung einer größeren Anzahl an Servern sinnvoll, da die Abrufe nicht einzeln erfolgen. Durch die gezielte Angabe einzelner Sensortypen als Parameter, beispielsweise „fan“ oder „temperature“, richten Sie jedoch auch individuelle Checks pro Sensortyp ein.

Auswertung der Plugin-Daten: Nutzen Sie integrierte Schwellenwerte und Performancedaten

Für numerische Sensoren wie Temperaturen hat IPMI Schwellwerte, die als Ober- und Untergrenzen direkt im BMC hinterlegt sind. Der BMC weiß somit selbst, ob alles OK ist. Nagios muss die Schwellwerte also nicht kennen, was Ihnen viel Konfigurationsarbeit erspart.

Trotzdem liefert das Plugin zusätzlich genaue Messwerte, bei einem Lüfter beispielsweise 8858 RPM (Rotations per Minute) oder 28 Grad Celsius als Mainboard-Temperatur. Solche Daten heißen bei Nagios Performancedaten. Diese Performancedaten nutzen Sie optional für weitere Auswertungen, z. B. über Diagramme des NagiosGraphers (Abbildung 2).

Abbildung 2: In der graphischen Auswertung der aktuellen Temepraturdaten des Mainboard sind z.B. Temperaturschankungen nachvollziebar.

Ausblick

Neben dem Auslesen der Sensordaten bieten Ihnen IPMI weitere wertvolle Funktionen. Sie steuern damit beispielsweise das Einschalten, Ausschalten und den Reset Ihrer Server aus der Ferne. Das IPMI System Event Log (SEL) protokolliert zudem Zustandsänderungen der Hardware für Sie. Weitere Informationen zum Nagios-IPMI-Plugin finden Sie unter www.thomas-krenn.com/ipmi-plugin.


Weitere Artikel zu diesem Thema