Linux mit Nagios überwachen

Damit man einen Linux PC mit Nagios überwachen kann, muss man ein paar Tools installieren und ein wenig die cfg-Files erweitern.

Nehmen wir mal an, unser Nagios-Server heißt Raspberry und soll die Festplattenkapazität unseres zweiten Servers Kubuntu überwachen, dann sind die nachfolgenden Schritte durchzuackern.

Raspberry

Auf dem Raspberry ist das Paket nagios-nrpe-plugin zu installieren, damit die Informationen über die Festplatten von Kubuntu abgeholt werden können.

nagios-nrpe-plugin

Nach der Installation von nagios-nrpe-plugin öffnet ihr die Datei commands.cfg im Verzeichnis /etc/nagios3/ und fügt die folgenden Zeilen hinzu:

define command{
               command_name     check_nrpe_arg1
               command_line     $USER!$/check_nrpe -h $HOSTADDRESS$ -c $ARG1$               
               }

Ihr definiert damit das Abfragekommando auf Raspberry.

  • command_name: Vergebt einen eindeutigen Namen! Ist der Name schon irgendwo anders eingetragen, erzeugt Nagios einen Fehler
  • command_line: Hier definiert ihr, dass User ein das Plugin ausführen darf auf dem Host mit einem Argument. Möchtet ihr mehr Argumente mitgeben, dann stellt ihr die hinten an und nummeriert diese hoch, z.B. -c $ARG2$ -c $ARG3$ ….

Nun öffnet ihr die Config-File von Kubuntu im Verzeichnis /etc/nagios3/conf.d und tragt dort die Zeilen in die Datei ein:

define service{
               use                  generic-service
               host_name            kubuntu
               service_description  check_all_disks
               check_command        check_nrpe_arg1!check_all_disks!ip-adresse-kubuntu
              }

Tauscht ip-adresse-kubuntu gegen die IP-Adresse von Kubuntu aus und speichert die Datei.

Auf Raspberry sind wir nun mit der Konfiguration fertig und wir wechseln auf Kubuntu.

Kubuntu

Auf Kubuntu müssen wir ebenfalls noch ein Paket nach installieren über die Konsole

sudo apt-get install nagios-nrpe-server

Nach der Installation findet ihr die Datei nrpe.cfg im Verzeichnis /etc/nagios. Die Datei öffnet ihr und sucht dort nach dem Eintrag allowed_hosts und schreibt hinter das =-Zeichen die IP-Adresse von Raspberry. Das Ganze sieht dann so aus:

allowed_hosts=192.168.0.50

.

Scrollt dann zum Bereich COMMAND DEFINITIONS und tragt die folgende Zeile ein

command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e


Speichert die Datei und ihr seid fast fertig.

NRP und Nagios neustarten

Startet nun auf Raspberry die Dienste neu und ihr habt die Überwachung konfiguriert:

Raspberry

sudo /etc/init.d/nagios-nrpe-server restart
sudo /etc/init.d/nagios3 restart

Kubuntu

sudo /etc/init.d/nagios-nrpe-server restart

Nagios-Installation auf dem Raspberry Pi

Der Stromverbrauch des Raspberry Pi ist minimal, deshalb eignet er sich besonders gut für Monitoring Aufgaben. Aus diesem Grund habe ich Nagios auf dem Mini-PC installiert.

Schaut euch nochmal den Beitrag an, um einen Webserver auf dem Raspberry Pi zu installieren.
https://strobelstefan.de/?p=2653

Nagios3 befindet sich in den Repositories, was die Installation ungemein erleichtert. Ihr startet die Installation mit dem Befehl auf der Konsole:

sudo aptitude install nagios3

Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi

Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi

Nagios-Installation auf dem Raspberry Pi
Nagios-Installation auf dem Raspberry Pi

Ist die Installation abgeschlossen, erreicht ihr Nagios über jeden Webbrowser
http://localhost/nagios3
bzw.
http://ip-adresse-raspberry/nagios3

Nagios3 auf dem Raspberry Pi
Nagios3 auf dem Raspberry Pi

Der Benutzername ist nagiosadmin und als Passwort müsst ihr euer Passwort eingeben.

pnp4nagios – Installation Internal Server Error

pnp4nagios“ ist ein Tool zur Visualisierung der Nagios-Ergebnisse.

Die Installation des Programms ist eigentlich sehr leicht durchzuführen. Ich habe es aus den Quellen selber kompiliert. Die Schritt für Schritt Anleitung auf der Seite des Herstellers kann getrost gefolgt werden. (Anleitung für Version 0.6 http://docs.pnp4nagios.org/de/pnp-0.6/install)
Sollten Abhängigkeiten noch offen sein, dann wird das währen des compilierens angezeigt und kann sicherlich leicht nachgebessert werden.

Ist die Installation erfolgreich abgeschlossen, dann kann man pnp4nagios über http://localhost/pnp4nagios aufgerufen werden.

Bei meiner Installation wurde beim ersten Aufruf der Benutzername und das Passwort von Nagios abgefragt, doch dann kam die Meldung vom Apache „Internal Server Error„.

Ein Blick in die Log-File (/var/log/apache/error.log) half aber bei der Lösung.

Problembeschreibung

In der Log-Datei wurde bei jedem Aufruf der Seite http://localhost/pnp4nagios die Fehlermeldung

[Wed Sep 45 18:35:28 2050] [error] [client 192.168.x.x] (2)No such file or directory: Could not open password file: /usr/local/nagios/etc/htpasswd.users

Die Zeile besagt, der Webserver Apache2 sucht in der Datei /usr/local/nagios/etc/htpasswd.users nach den Zugangsdaten, die ich eingegeben habe.

Problemlösung

Der erste Blick sollte als erstes in die Datei /usr/local/nagios/etc/htpasswd.users geworfen werden. Hat man, wie ich, pnp4nagios unter Ubuntu installiert, dann existiert die Datei in diesem Verzeichnis nicht.

Unter Ubuntu ist die Datei im Verzeichnis /etc/nagios3/htpasswd.users zu finden.

Es muss dem Apache2 also mitgeteilt werden, wo er sich die Authentifizierungsinformationen abholen soll. Das geht ganz einfach. Wechselt in das Verzeichnis /etc/apache2/conf.d und öffnet dort die Datei pnp4nagios.conf. In der Datei den Eintrag ändern und die Datei speichern.

   	
        #AuthUserFile /usr/local/nagios/etc/htpasswd.users
	AuthUserFile /etc/nagios3/htpasswd.users

Nun ist noch ein Neustart des Apache durchzuführen und die Seite sollte erreichbar sein.

sudo /etc/init.d/apache2 restart

Nagios versendet E-Mails, wirklich?

Nagios versendet E-Mails, wirklich?
Der E-Mail-Versand von Meldungen ist ein zentraler Bestandteil von Nagios. Irgendjemand sollte über kritische Dinge in der IT-Infrastruktur informiert werden, um rechtzeitig reagieren zu können.

Nagios bietet ja die Möglichkeit an einzelne User oder an ganze Gruppen Mails zu versenden. Wo und wie das Ganze konfiguriert wird, findet sich in Contacts und Services in Nagios.
Das Eintragen von Mail-Adressen in die contacts.cfg ist aber noch nicht ausreichend, damit das Monitoringsystem die Mails auch versenden kann. Man benötigt also noch einen Mail Transfer Agent (MTA). Da mein Nagios auf einem Ubuntu Server läuft ist es naheliegend den MTA Postfix zu verwenden.

Installation

Die Installation ist denkbar leicht auszuführen, da alle benötigten Pakete in den Repositories enthalten sind. Es werden die Pakete benötigt:

  • postfix
  • libsasl2-modules
  • bsd-mailx

Die Installation über die Konsole geht so

sudo aptitude install postfix libsas12-modules bsd-mailx

Konfiguration

Nach der Installation gehts an die Konfiguration des MTAs. Was man sich im voraus überlegen sollte, welche Art von MTA möchte ich verwenden. Es gibt mehrere Möglichkeiten. Eine Übersicht findet ihr hier wiki.ubuntuusers.de
Ich habe mich dazu entschieden einen Relayhost zu verwenden, d.h. der Nagios Server sendet mittels MTA seine Notifications an den richtigen Mail-Server und der sendet dann an die definierten Empfänger.

Die Konfiguration von Postfix ist anzupassen. Die main.cfg-Datei liegt im Verzeichnis /etc/postfix und muss angepasst werden.
Bevor ich hier lange herumrede, hier meine geänderte Passage

myhostname = server.netzwerk.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydonaim = netzwerk.de
myorigin = $mydomain
mydestination = server.netzwerk.de, localhost
relayhost = 192.168.2.1
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 200
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

Achtung:
In meiner Konfiguration ist keine Authentifizierung am Relayhost notwendig. Der Nagios-Server wurde fest dort eingetragen.
Die Konfiguration von Postfix für eine Authentifizierung ist im wiki.ubuntuusers.de zu finden.
Gebt auch darauf acht, dass ihr nicht den Postfix als Relayhost für andere Geräte konfiguriert. Wenn das passiert, dann kann es passieren das ihr eine Spamschleuder im eigenen Netzwerk habt, die über eure Domain die Werbemails versenden darf. Was das dann bedeutet, könnt ihr euch vorstellen … Blacklist für euere Domain … Mailannahme wird von Empfängern geblockt … HORROR.

Nun gut. Gehen wir davon aus, die Konfiguration von Postfix passt. Es muss aber noch gestestet werden.

Testphase

Öffnet als erstes ein Terminal, um in Echtzeit die geschriebenen Logeinträge zu verfolgen.

tail -f /var/log/mail.log

In einem zweiten Konsolenfester könnt ihr nun den Postfix steuern. Zuerst startet den MTA neu, damit er die geänderte Konfiguration (main.cfg) einlesen kann.

sudo /etc/init.d/postfix restart

Im letzten Schritt gehts darum, E-Mails an eine richtige E-Mail-Adresse zu versenden. Auf der Konsole den Befehl eingeben

mail 

Subject: Test Mail von meinem neuen Postfix
Hallo Admin,
dies ist eine Testmail von meinem neuen Postfix, der auf dem Nagios-Server läuft


Drückt nun Strg+D

Cc:

Kontrolliert beim Empfänger, ob eine Nachricht von Postfix eingetroffen ist.

Hat alles funktioniert, dann dauert es nur noch ein kleines Weilchen, bis die ersten Nagios Notifications eintreffen, je nachdem, wie das halt im Monitoring-System hinterlegt ist und welche Fehler es in eurer IKT-Struktur gibt.

Gerät und ersten Service in Nagios definieren

Die Definition eines Geräts in Nagios ist die Grundvoraussetzung für das Monitoring.

Grundsätzliches

Bevor man mit der Konfiguration von Geräten beginnt, sollte man sich ein paar Gedanken zur Struktur im Verzeichnis /etc/nagios3/conf.d machen. Nagios ist es egal, wie viele Unterordner man dort anlegt. Somit kann man sich dort eine schöne Ordnerstruktur anlegen und dahinein seine Konfigurationsfiles legen. Eine Struktur wäre z.B.

  • Server
  • Clients
  • Drucker
  • Switche

Seid ihr euch über die Struktur einig, dann kanns losgehen.

Anlegen eines Windows-Clients

Legt eine Datei im Verzeichnis /etc/nagios3/conf.d/ an. Der Name ist freiwählbar. Die Dateiendung muss .cfg lauten.

define host{
        use                     generic-host            ; Name of host template to use
        host_name               Windows1
        alias                   Windows1
        address                 192.168.2.10
        }

Services definieren

Man kann in Nagios zweierlei Abfragen definieren.

  • Abfrage über das Netzwerk
  • Abfrage über das Netzwerk, mit installiertem Agent auf dem Windows-PC

Die zweite Variante werde ich später vorstellen.

Die Services werden so definiert

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       Windows1
        service_description             PING
	check_command			check_ping!100,10%!250,20%
        }


In diesem Fall wird ein Ping von Nagios an den Windows-Client gesendet. Die Prozentangaben geben die Kritikalität an, ab wann Nagios eine Nachricht an die Administratoren senden soll.

Der Aufbau der define service Kategorie ist

  • use = Welcher Service ist zu verwenden? (genaue Beschreibung findet ihr hier –> klick
  • host_name = wie in define host angegeben
  • service_description = Name des Services, wie er in der Nagios Weboberfläche angezeigt werden soll (kann frei definiert werden)
  • check_command = Der Abfragebefehl, wie er im Plugin definiert wurde.

Nachdem der Host und der Service definiert wurden, muss man Nagios neustarten/neuladen. Das geht über die Konsole mit dem Befehl

sudo /etc/init.d/nagios3 reload

Eigene Icons für Hosts erstellen

In Nagios kann man für die Hosts eigene Icons definieren, die in der Übersicht angezeigt werden. In der Anleitung zeige ich nur, wie man die Icons erstellt und wo sie zu speichern sind.

Das Besondere, die Icons müssen im Format gd2 im Verzeichnis /usr/share/nagios/htdocs/images/logos gespeichert werden. In dem Pfad sind bereits einige Ordner vorhanden, die alle verschiedene Icons enthalten:

Ihr könnt eure eigenen Icons in einen der Ordner speichern oder einen neuen anlegen. Nagios ist das egal, die Bilddateien müssen aber im Verzeichnis /usr/share/nagios/htdocs/images/logos abrufbar sein.

Das Konvertieren von PNG-Bilddateien in das Format gd2 ist eigentlich sehr leicht. Die notwendige Library ist bereits in den Repositories von Ubuntu vorhanden und kann deshalb auf der Konsole mit dem Befehl nachinstalliert werden.

sudo aptitude install libgd-tools

Nach der erfolgreichen Installation kann man gleich auf der Konsole bleiben und sich zum Verzeichnis durchhangeln, wo das gewünschte Icon noch im png-Format liegt.

pngtogd2 nagios.png nagios.gd2 0 1

Das Ergebnis kopiert ihr nun in euren Icons-Ordner im Verzeichnis /usr/share/nagios/htdocs/images/logos

Mehr Infos dank define hostextinfo

Die Weboberfläche in Nagios kann schnell unübersichtlich werden, wenn sehr viele Hosts definiert worden sind. Das Monitoring-System gibt zeigt nur den den host_name an. Es kann aber recht hilfreiche sein, mehr Informationen zu hinterlegen, ein eigenes Icon für eine Hostgruppe festzulegen und einen Hyperlink auf die Adminoberfläche des Geräts in Nagios einzubinden.

Die Funktionen ist bereits in Nagios integriert, ihr müsst sie aber extra aktivieren.

Machen wir zusammen ein Beispiel durch. Nehmen wir mal an, wir wollen einen Windows-Server in Nagios aufnehmen und unser eigenes Icon, weitere Infos und einen Link auf die Server-Adminoberfläche in der Hostübersicht haben.

Anleitung

Wechselt in das Verzeichnis /etc/nagios3/conf.d und legt dort eine Datei mit einem Namen des Windows-Servers an, z.B. Server1.

define host{
        use                     generic-server      ; Name of host template to use
        host_name               Server1
        alias                   Server1 ist ein Windows Server
        address                 http://192.168.0.50
        }

define hostextinfo{
        host_name   Server1
        notes            Server1 ist ein Windows Server
        notes_url        http://192.168.0.50
        icon_image       base/windows.png
        icon_image_alt   Server1 ist ein Windows Server
        vrml_image       windows.png
        statusmap_image  base/windows.gd2
        }


Der Abschnitt define host sollte bereits bekannt sein. Der zweite define hostextinfo ist für die Bereitstellung der weiteren Infos zuständig.

  • host_name = gleiche Name wie im Abschnitt define host
  • notes = Notizen zu und über den Server
  • notes_url = Link auf die Adminoberfläche
  • icon_image = Icon das in Nagios für den Host angezeigt werden soll. Es ist im Verzeichnis /usr/share/nagios/htdocs/images/logos zu finden
  • icon_image_alt = Beschriftung
  • vrml_image = Icon das in Nagios für den Host angezeigt werden soll. Es ist im Verzeichnis /usr/share/nagios/htdocs/images/logos zu finden
  • statusmap_image = Icon das in Nagios für den Host angezeigt werden soll. Es ist im Verzeichnis /usr/share/nagios/htdocs/images/logos zu finden

Ist alles in der Datei eingetragen, dann speichert sie ab und startet Nagios neu

sudo /etc/init.d/nagios3 restart

Wechselt auf die Weboberfläche von Nagios. Dort sollte jetzt in der Zeile des Windows Servers ein roter Ordner angezeigt werden, der den Hyperlink auf die Adminoberfläche beinhaltet.

Die weiteren Informationen werden in der Detailübersicht des Windows Servers angezeigt.

siehe auch

Eigene Icons für Hosts erstellen

IPMI – Execution of ipmitool failed with return code 127

Die Fehlermeldung Execution of ipmitool failed with return code 127. wird ausgegeben, wenn auf dem Nagios-Server das ipmi-Paket fehlt.

Alternative 1

Das fehlende Pakte lässt sich bei einem (K)Ubuntu-System über die Konsole oder einen grafischen Paketmanager einfach nachinstallieren.

sudo aptitude install ipmi-tools

Alternative 2

Das fehlende Pakte lässt sich bei einem (K)Ubuntu-System über die Konsole oder einen grafischen Paketmanager einfach nachinstallieren.
Anstatt das ipmi-tools zu installieren, wird das zweite IPMI-Paket, ipmitool, installiert.

sudo aptitude install ipmitool

Achtung

Bei beiden Varianten ist darauf zu achten, dass die Plugins im Verzeichnis /usr/lib/nagios/plugins auch ausführbar sind.

Weitere Fehlermeldung

Es kann auch vorkommen, dass auf einmal kein Plugin mehr funktioniert und die Ausgabe in Nagios so aussieht.

Hier läuft ein notwendiger Daemon nicht, den das Plugin dringend benötigt. Aber über die Konsole lässt sich das sehr schnell beheben:

sudo /etc/init.d/ipmievd start

Noch ein kleiner Tipp.
Nagios benötigt auch SNMP, das man über den Befehlt

sudo /etc/init.d/snmpd start


starten kann.

Contacts und Services in Nagios

Nagios bietet eine große Menge an Funktionen, die alle über Skripte konfiguriert werden können. Es wesentliches Feature ist die Benachrichtigung von Administratoren beim Eintreten eines definierten Ereignisses.

Anlegen von Kontakten

Die Kontakte sind standardmäßig in der Datei contacts.cfg zu finden. Ich habe die Datei in den Ordner /etc/nagios3/conf.d/contacts geschoben, der Übersichtlichkeit wegen.
Es gibt zwei Arten von Kontakten, die man definieren kann

  • Einzel Kontakte, z.B. Personen
  • Kontaktgruppen

Kontakte

In der Standardinstallation von Nagios ist bereits eine ausreichende Konfiguration vorhanden, die man ohne größere Probleme an die eigenen Bedürfnisse anpassen kann.

define contact{
        contact_name                    stefan
        alias                           Stefan
        service_notification_period     workhours
        host_notification_period        workhours
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           
        }


Die workhours werden in der Datei timeperiods_nagios2.cfg hinterlegt. Die Benachrichtigungen an diesen Kontakt werden nur in seiner Arbeitszeit versendet.

service_notification_options und host_notification_options, hier wird definiert welche Benachrichtigungen der Admin erhalten soll. Die Buchstaben stehen für

  • n = NONE
  • w = WARNING
  • c = CRITICAL
  • r = RECOVERY

Mit dem Befehl notify-service-by-email wird festgelegt, dass Nagios den Kontakt via E-Mail benachrichtigen soll.

Nach diesem Beispiel kann man nun beliebig viele Kontakte definieren. Umständlich wird es, wenn die Kontakte unterschiedliche Benachrichtigungen erhalten sollen und evtl. für Gerätegruppen zuständig sein sollen. Eine denkbare Möglichkeit, es sind mehrere Administratoren für die Administration und Wartung der Drucker verantwortlich.
In einem solchen Fall ist es für die Nagios-Administration einfacher, die einzelnen Kontakte nochmal in Kontaktgruppen zusammen zufassen.

Kontaktgruppen

Die Kontaktgruppen können in der gleichen Datei wie die Kontakte konfiguriert werden.

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 stefan
        }


Das Einzige was zu beachten ist, members = contact_name. Schreibfehler verzeiht Nagios nicht, deshalb unbedingt zweimal kontrollieren. Members werden durch Kommas getrennt eingegeben, z.B. stefan, admin1, admin2. Der Alias ist frei wählbar.

Nachdem nun die Kontakte und Kontaktgruppen angelegt worden sind, kann begonnen werden sie auf einzelne Services zuzuordnen.

Services

In der Standardkonfiguration von Nagios sind bereits Services definiert. Sie sind in der Datei generic-service_nagios2.cfg zu finden. Die einzelnen Punkte sind in der Datei selbst sehr gut dokumentiert, dehalb werde ich darauf nicht näher eingehen.
contact_groups hier werden die frisch angelegten Kontaktgruppen den Services zugewiesen. Es können mehrere Gruppen durch Komma getrennt eingegeben werden.

define service{
        name                            generic-service ; The 'name' of this service template
        active_checks_enabled           1       ; Active service checks are enabled
        passive_checks_enabled          1       ; Passive service checks are enabled/accepted
        parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
        obsess_over_service             1       ; We should obsess over this service (if necessary)
        check_freshness                 0       ; Default is to NOT check service 'freshness'
        notifications_enabled           1       ; Service notifications are enabled
        event_handler_enabled           1       ; Service event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        failure_prediction_enabled      1       ; Failure prediction is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
		notification_interval           5		; Only send notifications on status change by default.
		is_volatile                     0
		check_period                    24x7
		normal_check_interval           5
		retry_check_interval            1
		max_check_attempts              4
		notification_period             24x7
		notification_options            w,u,c,r
		contact_groups                  admins
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        }

IPMI Sensor Monitoring Plugin

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