Aktionen

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.



1 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



2 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)



3 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




4 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




5 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!

RaspberryPi-Zabbix-Template-001.png




--Bernhard Linz 20:35, 24. Nov. 2013 (CET)


MDY

102 Monaten zuvor
Punktzahl 0 Du

Gute Anleitung und gutes Template. Danke dafür.

Für mein System habe ich allerdings in der raspberry.sh jeweils "df -P -B1" für die Größen verwendet und das Template noch mit "Unit: B" ausgerüstet.

So bleiben die unschönen Kilobyteangaben außen vor und Zabbix kann selbst die Skalierung vornehmen.

bodagrave

3 Monaten zuvor
Punktzahl 0 Du

2022 und die Anleitung funktioniert (fast) komplett immernoch. Respekt! Lediglich einige Aufrufe klappen nicht mehr: Alle CPU-Daten, das lässt sich ändern, indem man anstatt des Pfades "/opt/vc/bin/vcgencmd" nur den Aufruf "vcgencmd" verwendet. Auch die SDcard lässt sich so nicht mehr auslesen, da mittlerweile nicht mehr rootfs verwendet wird. Wenn man "rootfs" aber durch "/dev/root" ersetzt, klappt es auch wieder einwandfrei.

Danke für diese tolle Anleitung!
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung

______________________________________________________

Bitte beachte das der eingetragene Name oder die Email-Adresse für jeden sichtbar ist!