Zabbix:Template Raspberry Pi
Aus znilwiki
Hier habe ich gezeigt wie man verschiedene Dinge über den 'Raspberry Pi' über die Bash abrufen kann: Temperatur / Spannung etc. des Raspberry Pi selbst auslesen
Das habe ich natürlich herausgesucht um es irgendwie in Zabbix zu verwerten - hier nun das Skript und Template.
Vorbereitung
- Auf eurem 'Raspberry Pi' ist der Zabbix Agent installiert und konfiguriert
- Der Agent läuft normalerweise unter dem Benutzer 'zabbix' den Ihr ebenfalls angelegt habt
Script hinterlegen
Auch wenn es nicht ganz passt - ich habe das nachfolgende Skript unter dem Namen
raspberrypi.sh
im Pfad
/usr/local/share/zabbix/externalscripts
hinterlegt:
#!/bin/sh
# Script for Monitoring a Raspberry Pi with Zabbix
# 2013 Bernhard Linz
# Bernhard@znil.de / http://znil.net
#
case "$1" in
boardversion)
# get the Hardware Version
cat /proc/cpuinfo | grep Hardware | tr -d " " | cut -d ":" -f 2
;;
boardrevision)
# get the Hardware Revision
cat /proc/cpuinfo | grep Revision | tr -d " " | cut -d ":" -f 2
;;
boardserialnumber)
# get the Board unique Serial Number
cat /proc/cpuinfo | grep Serial | tr -d " " | cut -d ":" -f 2
;;
cpuvoltage)
# Voltage in Volt
/opt/vc/bin/vcgencmd measure_volts | tr -d "volt=" | tr -d "V"
;;
cpuclock)
# CPU Clock Speed in Hz
/opt/vc/bin/vcgencmd measure_clock arm | tr -d "frequency(45)="
;;
cpumem)
# CPU Memory in MByte
vcgencmd get_mem arm | tr -d "arm=" | tr -d "M"
;;
firmwareversion)
# Just the naked String of the firmware Version
vcgencmd version | grep version | cut -d " " -f 2
;;
gpumem)
# Graphics memeory in MByte
vcgencmd get_mem gpu | tr -d "gpu=" | tr -d "M"
;;
sdcardtotalsize)
# Size of SD-Card in KByte
df -P | grep rootfs | tr -s " " " " | cut -d " " -f 2
;;
sdcardused)
# Used Diskspace in KByte
df -P | grep rootfs | tr -s " " " " | cut -d " " -f 3
;;
sdcardusedpercent)
# Used Diskspace in Percent
df -P | grep rootfs | tr -s " " " " | cut -d " " -f 5
;;
sdcardfree)
# free Diskspace in KByte
df -P | grep rootfs | tr -s " " " " | cut -d " " -f 4
;;
temperature)
# Temperature in 1/1000 centigrade
cat /sys/class/thermal/thermal_zone*/temp
;;
*)
echo "Usage: $N {boardversion|boardrevision|boardserialnumber|cpuvoltage|cpuclock|cpumem|firmwareversion|gpumem|sdcardtotalsize|sdcardused|sdcardusedpercent|sdcardfree|temperature}" >&2
esac
exit 0
Damit Ihr es ausführen könnt noch ein
chmod 755 /usr/local/share/zabbix/externalscripts/raspberrypi.sh
Ihr könnt es dann testen - z.B. mit
/usr/local/share/zabbix/externalscripts/raspberrypi.sh temperature
müsste er so etwas wie
54610
ausspucken (= 54,51 Grad Celsius)
zabbix Benutzer Gruppe hinzufügen
Leider reichen die Rechte für einen normalen Benutzer nicht um alle Angaben zu holen - umgehen lässt sich das wenn der Benutzer 'zabbix' zur Gruppe 'video' hinzugefügt wird:
usermod -a -G video zabbix
Skript in der Agenten-Konfiguration hinterlegen
Wir bearbeiten die Konfigurationsdatei des Agenten:
nano /usr/local/etc/zabbix_agentd.conf
ACHTUNG! die zabbix_agentd.conf
!!!!
und fügen folgende Zeile hinzu:
UserParameter=raspberrypi.sh[*],/usr/local/share/zabbix/externalscripts/raspberrypi.sh $1
Template importieren und Host zuweisen
- Ladet das Template herunter: Znil-Template-Raspberry-Pi.zip
- entpackt die '.ZIP' Datei
- Importiert in Zabbix die '.XML' Datei
- Ihr findet das Template in der Hostgruppe 'Templates znil.net' unter dem Namen 'znil Template Raspberry Pi'
Das Template ist als "Active Agent" konfiguriert und hat noch keinerlei Trigger - passt euch das an wie ihr es braucht!
--Bernhard Linz 20:35, 24. Nov. 2013 (CET)