Hier bietet es sich an das System direkt in Nagios oder Icinga aufzunehmen. Die Abfrage erfolgt über NRPE (= Nagios Remote Plugin Executor).
Voraussetzungen
Zunächst muss auf dem Raspberry Pi NRPE installiert werden.
sudo apt-get install nagios-nrpe-server
Um zukünftig auch weitere Parameter wie z.B. CPU Last, Speicherplatz, RAM, etc. überwachen zu können, empfiehlt es sich auch die Standardplugins von NRPE zu installieren.
sudo apt-get install nagios-plugins-basic
CPU Temperatursensor
Das Raspberry Pi besitzt eine Reihe interner Sensoren, mit welchen sich z.B. auch die CPU Temperatur des SoC abfragen lässt.
Hierzu greifen wir auf /sys/class/thermal/thermal_zone0/temp zurück, welches uns die aktuelle Temperatur zurückgibt.
cat /sys/class/thermal/thermal_zone0/temp
Check Skript
Im nächsten Schritt legen wir das Check Skript check_pi_temp im Verzeichnis /usr/lib/nagios/plugins an.
Anschließen wird die Datei noch ausführbar gemacht.
chmod +x /usr/lib/nagios/plugins/check_pi_temp
Konfiguration
Nun können wir die NRPE Konfiguration anpassen. Diese befindet sich unter /etc/nagios/nrpe.cfg.
Hier muss der prüfende Nagios / Icinga Server zu den allowed_hosts hinzugefügt (in unserem Fall 192.168.1.100) und die Parameterübergabe aktiviert werden.
allowed_hosts=192.168.1.100
dont_blame_nrpe=1
Weiter unten in der Konfiguration fügen wir den neuen Check hinzu.
command[check_temp]=/usr/lib/nagios/plugins/check_pi_temp -w $ARG1$ -c $ARG2$
Abschließend den NRPE Dienst einmal neustarten und dem Autostart hinzufügen.
sudo service nagios-nrpe-server restart
update-rc.d nagios-nrpe-server defaults
Einbindung in Nagios / Icinga
Im letzten Schritt kann der Service im Nagios bzw. Icinga Server definiert werden. In nachfolgendem Beispiel wird der Service bei 60 °C auf Warning und bei 70 °C auf Critical gesetzt.
Nagios / Icinga 1
define service {
use generic-service
host_name raspberrypi
service_description CPU Temp
check_command check_nrpe!check_temp!60!70
}
Icinga 2
Für Icinga 2 muss zunächst das CheckCommand für NRPE in der Datei /etc/icinga2/conf.d/commands.conf hinzugefügt werden.
object CheckCommand "check_nrpe" {
import "plugin-check-command"
command = [ PluginDir + "/check_nrpe" ]
arguments = {
"-H" = "$nrpe_address$"
"-p" = "$nrpe_port$"
"-c" = "$nrpe_command$"
"-a" = {
value = "$nrpe_args$"
repeat_key = false
order = 1
}
}
vars.nrpe_address = "$address$"
vars.nrpe_port = 5666
}
Bei der Definition des Hosts fügen wir nun den neuen Service an.
object Service "CPU Temp" {
import "generic-service"
host_name = "raspberrypi"
check_command = "check_nrpe"
vars.nrpe_command = "check_temp"
vars.nrpe_args = [ "60", "70" ]
}
Zum Abschluss Nagios bzw. Icinga Konfiguration neu einlesen.
sudo service nagios reload
Fazit
Dank des eingebauten Temperatursensors auf der CPU lässt sich das Raspberry Pi sehr leicht mittels NRPE überwachen. Je nach Betriebsumgebung sollten die Schwellenwerte natürlich angepasst werden. In klimatisierten Umgebungen bleibt die CPU meist unter 50 °C.
Quellen: Raspberry Pi Logo
Christian Piazzi
30.07.2017 13:12
du hast einen kleinen Fehler in der Command Definition:
command [ PluginDir + "/check_nrpe" ]
Hier muss noch ein = dazwischen.
command = [ PluginDir + "/check_nrpe" ]
Ansonsten super =)
Gruß
Christian