SNMP und Node-RED zusammen

In einem meiner vorhergehenden Beiträge ging es bereits um das Monitoring eines TTN-Gateways. Der darunter liegende Raspberry Pi wurde aber bisher noch nicht überwacht. Für mich ist es aber interessant zu wissen, wie es um den kleinen steht, und ob er eventuell zu heiß wird. Da ich einen Raspberry Pi draußen betreibe, würde ich gerne sehen was im Sommer passiert. Per SNMP ist es kein Problem die erforderlichen Daten abzufragen.

Mittels Node-RED können die Abfragen durchgeführt werden und die Daten leicht in InfluxDB abgelegt werden. Mittels dem bereits bekannten Grafana werden die Daten dann visualisiert.

 

Vorbereitung des abzufragenden Raspberry Pi (SNMP installieren)

Auf dem zu überwachenden Raspberry muss erst noch SNMP installiert und konfiguriert werden. Dazu führt ir folgenden Befehl aus.


sudo apt-get install snmpd snmp snmp-mibs-downloader

Anschließend musst ihr noch ein Paar Einstellungen in der Konfiguration anpassen. Dadurch lauscht der Dienst auf allen Interfaces und erlaubt den lesenden Zugriff für die Community public auf alle Bereiche. Ob ihr das in eurem Netzwerk zulassen wollt, müsst ihr selber wissen. Einschränkungen sind natürlich möglich. Für mich stellt es jedoch kein Problem dar.

sudo vi /etc/snmp/snmpd.conf


#agentAddress  udp:192.168.11.2:161
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

rocommunity public

Anschließend muss der Dienst noch gestartet werden und der Autostart gesetzt werden.

sudo service snmpd start
sudo systemctl enable snmpd

 

Abfrage der Temperatur ermöglichen

Eine direkte Abfrage der Temperatur ist so nicht möglich, aber es gibt einen Workarround. Ihr erzeugt ein Bash Script, welches per SNMP abgefragt wird.

sudo vi /usr/local/bin/snmp-cpu-temp

#!/bin/bash
if [ "$1" = "-g" ]
then
echo .1.3.6.1.2.1.25.1.8
echo gauge
cat /sys/class/thermal/thermal_zone0/temp
fi
exit 0

Anschließend ergänzt ihr die snmpd.conf um folgenden Eintrag am Ende und startet den Dienst neu.

pass .1.3.6.1.2.1.25.1.8 /bin/sh /usr/local/bin/snmp-cpu-temp

 

Konfiguration von Node-RED

Damit Node-RED die Abfragen ausführen kann müsst ihr über Manage palette den Node node-red-node-snmp installieren. Anschließend könnt ihr euch meinen Flow von GitHub importieren. Damit erfasst ihr Uptime, Temperatur, Load, Swapauslastung, Speicherauslastung und die Auslastung von /. Ihr müsst natürlich noch die IP-Adresse in den SNMP Nodes anpassen und die Daten eurer InfluxDB.

node-red flow snmp

Mittels Grafana kann dann daraus so etwas werden:

grafana snmp

Schreibe einen Kommentar