Nagios – NRPE

Veröffentlicht: April 3, 2015 in Debian, Monitoring
Schlagwörter:,

Nagios Logo  Was ist NRPE?

NRPE ist die Abkürzung für Nagios Remote Plugin Executor. Via NRPA lassen Checks oder beliebige Kommandos auf entfernten Rechnern auszuführen. Soll z.B. der verfügbare Festplattenplatz auf einem entfernten Computer überprüft werden, so sendet das Plugin (Client) check_nrpe einen String an den zu prüfenden Rechner. Der NRPE-Server (Port 5666) vergleicht den ankommenden String mit seiner Konfigurationsdatei. Sofern der String in der Konfigurationsdatei hinterlegt ist wird das entsprechende Kommando ausgeführt und das Ergebnis (Ausgabe & Exitcode) zurück an den Client (check_nrpe) gesendet. check_nrpe reicht das Ergebnis entsprechend an Nagios weiter, wo es dann entsprechend ausgewertet wird.

Installation & Konfiguration unter Debian

NRPE besteht insgesamt aus 2 Paketen:

  • nagios-nrpe-plugin – das Plugin wird auf der Maschine installiert auf welcher das eigentliche Nagios läuft (Monitoring Host)
  • nagios-nrpe-server – der Server wird dementsprechend auf dem zu überwachenden Rechner installiert (Remote Host)

Monitoring Host

apt-get install nagios-nrpe-plugin

Sofern man die Standardpfade innerhalb von Nagios verwendet muss man nur noch die entsprechenden Services innerhalb von Nagios konfigurieren, ansonsten findet man die Command-Definition unter /etc/nagios-plugins/config/check_nrpe.cfg .

check_nrpe.cfg (Original, wie sie durch das DebianPaket geliefert wird)


# 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$
}
Nagioskonfiguration

Wie nun die genau die Konfiguration in Nagios aussieht werde ich an 2 Beispielen zeigen:

  • check_disk: Überprüfung der Filesystemauslastung auf dem Remote Host
  • check_ping: unser Remote Host befindet sich innerhalb eines anderen Netzwerks und wir wollen mittels check_ping die entsprechenden Hosts prüfen (aus Sicherheitsgründen ist hier nur die Verbindung zwischen MonitoringHost und RemoteHost freigegeben)
define service {
   host_name loki
   service_description check_disk-nrpe
   display_name check_disk-nrpe
   use master-service-template
   check_command check_nrpe!192.168.1.151!check_disk!25% 10%
} 
define service {
   hostgroup_name customer01,customer02
   service_description host_alive-nrpe
   display_name host alive-nrpe
   use service-template-interval-1min
   check_command check_nrpe!192.168.1.151!check_ping!$HOSTADDRESS$ 500,50% 1000,90%
} 

Remote Host

apt-get install nagios-nrpe-server

Die beiden Konfigurationsdateien befinden sich unter /etc/nagios/

  • nrpe.cfg – generelle Konfiguration des Servers: User, Port, SSL etc.
  • nrpe_local.cfg – Befehlsdefinitionen & von welchem Rechner ist der Zugriff erlaubt

Man kann natürlich die komplette Konfiguration nur in der nrpe.cfg machen (hier gibts auch schon einige Beispiel für Befehlsdefinitionen), aber ich finde es sauberer beides zu trennen.

Beispielconfig für die nrpe_local.cfg:

allowed_hosts=IP_des_Monitoring_Hosts
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -A
command[check_ping]=/usr/lib/nagios/plugins/check_ping -H $ARG1$ -w $ARG2$ -c $ARG3$

Sofern man wie hier entsprechende Argumente durch check_nrpe übergeben lassen möchte, ist es notwendig in der nrpe.cfg den Parameter dont_blame_nrpe auf 1 zu setzen:

dont_blame_nrpe=1

Will man nur die Auslastung des Filesystems überwachen ist dies natürlich nicht unbedingt notwendig, hier hätte man auch

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -A

schreiben können (Warning wenn nur noch 25% frei, Critical wenn nur noch 10% frei).

Auch wenn die Aktivierung von dont_blame_nrpe ein gewisses Sicherheitsrisiko darstellt, überwiegen die Vorteile sobald man über den RemoteHost weitere Hosts überwacht (vgl. Nagioskonfiguration Service: host_alive-nrpe). Der Service host_alive-nrpe enthält mehrere Hostgruppen, wobei die IP als Parameter über $HOSTADDRESS$ übergeben wird. Auf dem RemoteHost wird die IP an $ARG1$ übergeben. Würde man hier auf dont_blame_nrpe verzichten, müsste man für jeden Host einen eigenen Service konfigurieren und ein entsprechendes Kommando auf dem RemoteHost hinterlegen.

Der Neustart des Servers erfolgt über: /etc/init.d/nagios-nrpe-server restart

Hinweise zu Fehlersuche

  •  Logfile: /var/log/daemon.log
  • Debugmodus: Der Debugmodus lässt sich auf dem Remotehost über das File /etc/nagios/nrpe.cfg aktivieren. Dies kann besonders hilfreich sein sollte ein Check einmal nicht wie erwartet arbeiten. Die Aktivierung des Debugmodus führt nicht nur zu ausführlicheren Meldungen auf dem Remotehost, sondern auch zu einer ausführlicheren Rückmeldung auf dem Monitoringhost.
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s