├── README.md ├── rpi_board_versions.xml ├── raspberrypi.sh └── Template-Raspberry-Pi.xml /README.md: -------------------------------------------------------------------------------- 1 | # zabbix-agent-on-RasPi 2 | Script and template for zabbix-agent to run on raspberryPi. 3 | I assume you already installed zabbix-agent 4 | `sudo apt install zabbix-agent` 5 | 6 | Fetch script from GitHub: 7 | ``` 8 | wget https://raw.githubusercontent.com/bobbolous/zabbix-agent-on-RasPi/master/raspberrypi.sh 9 | ``` 10 | 11 | Create script location: 12 | ``` 13 | sudo mkdir /etc/zabbix/scripts 14 | ``` 15 | 16 | Move script to new location: 17 | ``` 18 | sudo mv raspberrypi.sh /etc/zabbix/scripts 19 | ``` 20 | 21 | Change permissions for script: 22 | ``` 23 | sudo chmod 755 /etc/zabbix/scripts/raspberrypi.sh 24 | ``` 25 | 26 | Add zabbix user to video group to get required permissions. 27 | ``` 28 | sudo usermod -aG video zabbix 29 | ``` 30 | 31 | Test script: 32 | ``` 33 | $ /etc/zabbix/scripts/raspberrypi.sh temperature 34 | 50464 35 | ``` 36 | 37 | Add script to zabbix configuration file: 38 | ``` 39 | sudo nano /etc/zabbix/zabbix_agentd.conf 40 | ``` 41 | 42 | Adding the following line: 43 | ``` 44 | UserParameter=raspberrypi.sh[*],/etc/zabbix/scripts/raspberrypi.sh $1 45 | ``` 46 | 47 | Restart the zabbix agent: 48 | ``` 49 | sudo service zabbix-agent restart 50 | ``` 51 | 52 | Import the Template in your Zabbix Server frontend. 53 | Assign it to the host. 54 | 55 | # Thanks to 56 | Bernhard Linz for his Tutorial and Script on [http://znil.net/index.php/Zabbix:Template_Raspberry_Pi] 57 | -------------------------------------------------------------------------------- /rpi_board_versions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.4 4 | 2020-05-26T11:59:57Z 5 | 6 | 7 | RPI board version 8 | 9 | 10 | 9000c1 11 | Zero W rev 1.1 512MB 12 | 13 | 14 | 9020e0 15 | 3A+ rev 1.0 512MB 16 | 17 | 18 | 900021 19 | A+ rev 1.1 512MB 20 | 21 | 22 | 900032 23 | B+ rev 1.2 512MB 24 | 25 | 26 | 900061 27 | CM rev 1.1 512MB 28 | 29 | 30 | 900092 31 | Zero rev 1.2 512MB 32 | 33 | 34 | 900093 35 | Zero rev 1.3 512MB 36 | 37 | 38 | 920092 39 | Zero rev 1.2 512MB 40 | 41 | 42 | 920093 43 | Zero rev 1.3 512MB 44 | 45 | 46 | a01040 47 | 2B rev 1.0 1GB 48 | 49 | 50 | a01041 51 | 2B rev 1.1 1GB 52 | 53 | 54 | a020a0 55 | CM3 rev 1.0 1GB 56 | 57 | 58 | a020d3 59 | 3B+ rev 1.3 1GB 60 | 61 | 62 | a02082 63 | 3B rev 1.2 1GB 64 | 65 | 66 | a02100 67 | CM3+ rev 1.0 1GB 68 | 69 | 70 | a03111 71 | 4B rev 1.1 1GB 72 | 73 | 74 | a220a0 75 | CM3 rev 1.0 1GB 76 | 77 | 78 | a21041 79 | 2B rev 1.1 1GB 80 | 81 | 82 | a22042 83 | 2B (BCM2837) rev 1.2 1GB 84 | 85 | 86 | a22082 87 | 3B rev 1.2 1GB 88 | 89 | 90 | a22083 91 | 3B rev 1.3 1GB 92 | 93 | 94 | a32082 95 | 3B rev 1.2 1GB 96 | 97 | 98 | a52082 99 | 3B rev 1.2 1GB 100 | 101 | 102 | b03111 103 | 4B rev 1.1 2GB 104 | 105 | 106 | b03112 107 | 4B rev 1.2 2GB 108 | 109 | 110 | c03111 111 | 4B rev 1.1 4GB 112 | 113 | 114 | c03112 115 | 4B rev 1.2 4GB 116 | 117 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /raspberrypi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Script for Monitoring a Raspberry Pi with Zabbix 3 | # original from Bernhard Linz 2013 (Bernhard@znil.de / http://znil.net) 4 | # modified 2018 Jan Schoefer 5 | # modified 2020 Piotr Goczal 6 | case "$1" in 7 | boardrevision) 8 | # get the Hardware Revision 9 | cat /proc/cpuinfo | grep Revision | tr -d " " | cut -d ":" -f 2 10 | ;; 11 | boardserialnumber) 12 | # get the Board unique Serial Number 13 | cat /proc/cpuinfo | grep Serial | tr -d " " | cut -d ":" -f 2 14 | ;; 15 | boardversion) 16 | # get the Hardware Version 17 | cat /proc/cpuinfo | grep Hardware | tr -d " " | cut -d ":" -f 2 18 | ;; 19 | coreclock) 20 | # Core Clock Speed in Hz 21 | /opt/vc/bin/vcgencmd measure_clock core | sed s/"frequency(1)="//g 22 | ;; 23 | cpuclock) 24 | # ARM Clock Speed in Hz 25 | /opt/vc/bin/vcgencmd measure_clock arm | cut -d "=" -f 2 26 | ;; 27 | h264clock) 28 | # H264 Clock Speed in Hz 29 | /opt/vc/bin/vcgencmd measure_clock h264 | sed s/"frequency(28)="//g 30 | ;; 31 | ispclock) 32 | # ISP Clock Speed in Hz 33 | /opt/vc/bin/vcgencmd measure_clock isp | cut -d "=" -f 2 34 | ;; 35 | v3dclock) 36 | # v3d Clock Speed in Hz 37 | /opt/vc/bin/vcgencmd measure_clock v3d | cut -d "=" -f 2 38 | ;; 39 | uartclock) 40 | # uart Clock Speed in Hz 41 | /opt/vc/bin/vcgencmd measure_clock uart | sed s/"frequency(22)="//g 42 | ;; 43 | pwmclock) 44 | # pwm Clock Speed in Hz 45 | /opt/vc/bin/vcgencmd measure_clock pwm | sed s/"frequency(25)="//g 46 | ;; 47 | emmcclock) 48 | # emmc Clock Speed in Hz 49 | /opt/vc/bin/vcgencmd measure_clock emmc | cut -d "=" -f 2 50 | ;; 51 | pixelclock) 52 | # pixel Clock Speed in Hz 53 | /opt/vc/bin/vcgencmd measure_clock pixel | sed s/"frequency(29)="//g 54 | ;; 55 | vecclock) 56 | # vec Clock Speed in Hz 57 | /opt/vc/bin/vcgencmd measure_clock vec | sed s/"frequency(10)="//g 58 | ;; 59 | hdmiclock) 60 | # hdmi Clock Speed in Hz 61 | /opt/vc/bin/vcgencmd measure_clock hdmi | cut -d "=" -f 2 62 | ;; 63 | dpiclock) 64 | # dpi Clock Speed in Hz 65 | /opt/vc/bin/vcgencmd measure_clock dpi | sed s/"frequency(4)="//g 66 | ;; 67 | cpumem) 68 | # CPU Memory in MByte 69 | vcgencmd get_mem arm | tr -d "arm=M" 70 | ;; 71 | cpuvoltage) 72 | # CPU Voltage in Volt 73 | /opt/vc/bin/vcgencmd measure_volts | tr -d "volt=V" 74 | ;; 75 | firmwareversion) 76 | # Just the naked String of the firmware Version 77 | vcgencmd version | grep version | cut -d " " -f 2 78 | ;; 79 | gpumem) 80 | # Graphics memeory in MByte 81 | vcgencmd get_mem gpu | tr -d "gpu=M" 82 | ;; 83 | sdcardfree) 84 | # free Diskspace in Byte 85 | df -P -B1| grep /dev/root | tr -s " " | cut -d " " -f 4 86 | ;; 87 | sdcardtotalsize) 88 | # Size of SD-Card in Byte 89 | df -P -B1 | grep /dev/root | tr -s " " | cut -d " " -f 2 90 | ;; 91 | sdcardusedpercent) 92 | # Used Diskspace in Percent 93 | df -P -B1| grep /dev/root | tr -s " " | cut -d " " -f 5 | tr -d "%" 94 | ;; 95 | sdcardused) 96 | # Used Diskspace in Byte 97 | df -P -B1| grep /dev/root | tr -s " " | cut -d " " -f 3 98 | ;; 99 | corevoltage) 100 | # sdram_c Voltage in Volt 101 | /opt/vc/bin/vcgencmd measure_volts | tr -d "volt=V" 102 | ;; 103 | sdramcvoltage) 104 | # sdram_c Voltage in Volt 105 | /opt/vc/bin/vcgencmd measure_volts sdram_c| tr -d "volt=V" 106 | ;; 107 | sdramivoltage) 108 | # sdram_i Voltage in Volt 109 | /opt/vc/bin/vcgencmd measure_volts sdram_i| tr -d "volt=V" 110 | ;; 111 | sdrampvoltage) 112 | # sdram_p Voltage in Volt 113 | /opt/vc/bin/vcgencmd measure_volts sdram_p| tr -d "volt=V" 114 | ;; 115 | temperature) 116 | # Temperature in degree celsius 117 | /opt/vc/bin/vcgencmd measure_temp | tr -d "temp='C" 118 | ;; 119 | throttlestate) 120 | # throttle state, for more information: 121 | # https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=147781&start=50#p972790 122 | /opt/vc/bin/vcgencmd get_throttled | sed s/"throttled="//g | perl -e '$number = hex(); printf "%.32b\n", $number' 123 | ;; 124 | *) 125 | echo "Usage: $N {boardrevision|boardversion|boardserialnumber|coreclock|cpuvoltage|cpuclock|h264clock|ispclock|v3dclock|uartclock|pwmclock|emmcclock|pixelclock|vecclock|hdmiclock|dpiclock|cpumem|firmwareversion|gpumem|sdcardtotalsize|sdcardused|sdcardusedpercent|sdcardfree|sdramcvoltage|sdramivoltage|sdrampvoltage|temperature}" >&2 126 | esac 127 | exit 0 128 | -------------------------------------------------------------------------------- /Template-Raspberry-Pi.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3.4 4 | 2018-04-23T15:33:30Z 5 | 6 | 7 | Templates 8 | 9 | 10 | Templates/RaspberryPi 11 | 12 | 13 | 14 | 789 | 790 | 791 | 792 | {Template Raspberry Pi:raspberrypi.sh[temperature].last()}>79 793 | 0 794 | 795 | Thermal throttle 796 | 0 797 | 798 | 799 | 0 800 | 2 801 | Raspberry Pi will throttle at ca. 80 °C. 802 | 0 803 | 0 804 | 805 | 806 | 807 | 808 | 809 | 810 | Frequencies 811 | 900 812 | 200 813 | 0.0000 814 | 100.0000 815 | 1 816 | 1 817 | 0 818 | 1 819 | 0 820 | 0.0000 821 | 0.0000 822 | 0 823 | 0 824 | 0 825 | 0 826 | 827 | 828 | 0 829 | 0 830 | 1A7C11 831 | 0 832 | 2 833 | 0 834 | 835 | Template Raspberry Pi 836 | raspberrypi.sh[coreclock] 837 | 838 | 839 | 840 | 1 841 | 0 842 | F63100 843 | 0 844 | 2 845 | 0 846 | 847 | Template Raspberry Pi 848 | raspberrypi.sh[cpuclock] 849 | 850 | 851 | 852 | 853 | 854 | RAM 855 | 900 856 | 200 857 | 0.0000 858 | 100.0000 859 | 1 860 | 1 861 | 1 862 | 1 863 | 0 864 | 0.0000 865 | 0.0000 866 | 0 867 | 0 868 | 0 869 | 0 870 | 871 | 872 | 0 873 | 0 874 | 1A7C11 875 | 0 876 | 2 877 | 0 878 | 879 | Template Raspberry Pi 880 | raspberrypi.sh[cpumem] 881 | 882 | 883 | 884 | 1 885 | 0 886 | F63100 887 | 0 888 | 2 889 | 0 890 | 891 | Template Raspberry Pi 892 | raspberrypi.sh[gpumem] 893 | 894 | 895 | 896 | 897 | 898 | SD-Card usage 899 | 900 900 | 200 901 | 0.0000 902 | 100.0000 903 | 1 904 | 1 905 | 0 906 | 1 907 | 0 908 | 0.0000 909 | 0.0000 910 | 0 911 | 0 912 | 0 913 | 0 914 | 915 | 916 | 0 917 | 0 918 | 1A7C11 919 | 0 920 | 2 921 | 0 922 | 923 | Template Raspberry Pi 924 | raspberrypi.sh[sdcardfree] 925 | 926 | 927 | 928 | 1 929 | 0 930 | 2774A4 931 | 0 932 | 2 933 | 0 934 | 935 | Template Raspberry Pi 936 | raspberrypi.sh[sdcardtotalsize] 937 | 938 | 939 | 940 | 2 941 | 0 942 | F63100 943 | 0 944 | 2 945 | 0 946 | 947 | Template Raspberry Pi 948 | raspberrypi.sh[sdcardused] 949 | 950 | 951 | 952 | 953 | 954 | Voltages 955 | 900 956 | 200 957 | 0.0000 958 | 100.0000 959 | 1 960 | 1 961 | 0 962 | 1 963 | 0 964 | 0.0000 965 | 0.0000 966 | 0 967 | 0 968 | 0 969 | 0 970 | 971 | 972 | 0 973 | 0 974 | 1A7C11 975 | 0 976 | 2 977 | 0 978 | 979 | Template Raspberry Pi 980 | raspberrypi.sh[cpuvoltage] 981 | 982 | 983 | 984 | 1 985 | 0 986 | F63100 987 | 0 988 | 2 989 | 0 990 | 991 | Template Raspberry Pi 992 | raspberrypi.sh[sdramcvoltage] 993 | 994 | 995 | 996 | 2 997 | 0 998 | 2774A4 999 | 0 1000 | 2 1001 | 0 1002 | 1003 | Template Raspberry Pi 1004 | raspberrypi.sh[sdramivoltage] 1005 | 1006 | 1007 | 1008 | 3 1009 | 0 1010 | A54F10 1011 | 0 1012 | 2 1013 | 0 1014 | 1015 | Template Raspberry Pi 1016 | raspberrypi.sh[sdrampvoltage] 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | --------------------------------------------------------------------------------