
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-serverUm 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-basicCPU 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/tempCheck Skript
Im nächsten Schritt legen wir das Check Skript check_pi_temp im Verzeichnis /usr/lib/nagios/plugins an.
#!/bin/bash # # check_pi_temp: Check Raspberry Pi temperature # temp_input=$(cat /sys/class/thermal/thermal_zone0/temp) temp=$(($temp_input/1000)) while getopts w:c: option do case "${option}" in w) thresh_warn=${OPTARG};; c) thresh_crit=${OPTARG};; esac done if [ $temp -ge $thresh_warn ] && [ $temp -le $thresh_crit ]; then echo "WARNING - CPU: $temp °C" exit 1 elif [ $temp -ge $thresh_crit ]; then echo "CRITICAL - CPU: $temp °C" exit 2 elif [ $temp -lt $thresh_warn ]; then echo "OK - CPU: $temp °C" exit 0 else echo "UNKNOWN - No Data" exit 3 fi
Anschließen wird die Datei noch ausführbar gemacht.
chmod +x /usr/lib/nagios/plugins/check_pi_tempKonfiguration
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=1Weiter 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 defaultsEinbindung 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 reloadFazit
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
Ähnliche Artikel
 
			
						
					



 
								 
					 
						 Suchen
Suchen 
						 
						 
														
 
				
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