Icinga NRPE Plugin

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Nagios Remote Plugin Executor (NRPE) ist ein Addon zum Ausführen von Nagios/Icinga Plugins auf einem Linux System. Das Ausführen der Plugins wird durch einen Icinga Server initiiert, der auch die Ausgabe der Plugins auswertet. NRPE kann dann eingesetzt werden, wenn SNMP nicht eingesetzt werden soll bzw. kann.[1] Eine Alternative zu NRPE ist "check_by_ssh" (vgl. Icinga check by ssh Plugin), dass für die Überwachung des Remote Ziels eine SSH-Verbindung aufbaut, um die Plugins auszuführen.[2] Um mit check_nrpe ebenfalls eine verschlüsselte Verbindung aufzubauen wird der Einsatz von SSL empfohlen.

Dieser Artikel zeigt, wie die Konfiguration eines zu überwachenden Linux Systems (Nagios/Icinga Client) und eines Icinga Servers durchgeführt wird, um mittels NRPE Plugins am Nagios/Icinga Client auszüfuhren. In diesem Beispiel laufen beide Systeme mit Ubuntu 12.04 LTS.

Nagios/Icinga Client

Das zu überwachende Linux System hat in diesem Beispiel die IP Adresse 10.0.0.1. Es soll mittels NRPE überwacht werden und fungiert damit aus NRPE Sicht als Nagios/Icinga Client.

Im ersten Schritt wird der NRPE Server auf diesem System installiert:

sudo apt-get install nagios-nrpe-server

Damit sich der Icinga Server zu diesem NRPE Server verbinden darf, muss die IP Adresse des Icinga Servers in der Konfigurations-Datei eingetragen werden.[3] In diesem Beispiel hat der Icinga Server die IP Adresse 10.0.0.3:

sudo vi /etc/nagios/nrpe.cfg
...
allowed_hosts=127.0.0.1,10.0.0.3
...

Die Konfigurationsdatei /etc/nagios/nrpe.cfg enthält bereits folgende Kommando Definitionen:

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 

Weitere Kommando Definitionen können nach Bedarf ergänzt werden. Diese können aufgrund der folgenden Standardkonfiguration in /etc/nagios/nrpe.cfg auch in der Datei /etc/nagios/nrpe_local.cfg oder einer beliebigen .cfg Datei im Verzeichnis /etc/nagios/nrpe.d/ vorgenommen werden:

#
# local configuration:
#       if you'd prefer, you can instead place directives here
include=/etc/nagios/nrpe_local.cfg

# 
# you can place your config snipplets into nrpe.d/
# only snipplets ending in .cfg will get included
include_dir=/etc/nagios/nrpe.d/

Zur Überwachung eines Linux Software RAID ergänzen Sie beispielsweise folgende Konfiguration in einer Datei /etc/nagios/nrpe.d/check_linux_raid.cfg. Zum Editieren verwenden Sie das Kommando sudo vi /etc/nagios/nrpe.d/check_linux_raid.cfg:

command[check_linux_raid]=/usr/lib/nagios/plugins/check_linux_raid

Wurden Änderungen an der NRPE Konfiguration vorgenommen, wird die Konfiguration mit folgenden Befehl neu geladen:

sudo service nagios-nrpe-server reload

Icinga Server

Voraussetzungen:

sudo apt-get --no-install-recommends install nagios-nrpe-plugin
  • (Dadurch wird verhindert, dass Nagios mit installiert wird.)

Ein erster Test prüft, ob der nrpe-Daemon auf der Client-Seite erreichbar ist und Kommandos entgegen nimmt. Der folgende Befehl gibt bei einem korrekten Setup die Version der nrpe-Installation zurück:

$ /usr/lib/nagios/plugins/check_nrpe -H 10.0.0.1
NRPE v2.12

Somit kann sicher gestellt werden, dass der zu überwachende Host erreichbar ist und auf nrpe-Anfragen reagiert und diese ausführt.

Ein Kommando kann auch direkt aufgerufen werden, dadurch wird garantiert dass auch der Client auf der Gegenseite das Plugin richtig konfiguriert hat:

$ /usr/lib/nagios/plugins/check_nrpe -H 10.0.0.1 -c check_load
OK - load average: 0.00, 0.07, 0.08|load1=0.000;15.000;30.000;0; load5=0.070;10.000;25.000;0; load15=0.080;5.000;20.000;0;

Das nagios-nrpe-plugin Paket enthält bereits die Kommando Definitionen für check_nrpe und check_nrpe_1arg:

$ cat /etc/nagios-plugins/config/check_nrpe.cfg
# this command runs a program $ARG1$ with arguments $ARG2$
define command {
	command_name	check_nrpe
	command_line	/usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}

# this command runs a program $ARG1$ with no arguments
define command {
	command_name	check_nrpe_1arg
	command_line	/usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

In einer neuen Host-Konfiguration kommt das Kommando "check_nrpe_1arg" zum Einsatz:

:~#  vi /etc/icinga/objects/nrpe-system.cfg
define host{
        use             linux-server
        host_name       NrpeSystem
        alias           NrpeSystem
        address         10.0.0.1
        }
define service{
        use     generic-service
        host_name       NrpeSystem
        service_description     CPU LOAD
        check_command   check_nrpe_1arg!check_load
        }

Unser Service "CPU LOAD" verwendet das check_nrpe-Kommando und übergibt an dieses den Parameter "check_load". Dieser Parameter bezeichnet das Script, dass am überwachten Host ausgeführt wird. Der nrpe-Daemon nimmt die Anfragen entgegen und retourniert die Ausgaben der Scripts zurück zum Icinga-Server.

Damit Icinga die neue Host-Konfiguration lädt, wird die Icinga Konfiguration neu geladen:

sudo service icinga reload

Abschließend zeigt die folgende Grafik den Ablauf des Prozesses:

Nrpe-aufbau.png

Einzelnachweise

  1. Icinga NRPE Anleitung (docs.icinga.org)
  2. check_by_ssh Plugin (nagios.wiki.de)
  3. Setting up NRPE with Icinga (wiki.icinga.org)
Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Checkmk RAW Edition - Docker Container Installation
Grafana Installation und Konfiguration unter Ubuntu Server 18.04 LTS
Monitoring Plugins für Thomas-Krenn-Server