Custom comand execution with Zabbix and SNMP

From Bitbull Wiki
Jump to navigation Jump to search

With Zabbix, you can as well as with Nagios check custom scripts and check them via SNMP. Then you can create a trigger which checks the output of the SNMP comand that gets executed.

1 configure snmpd

1.1 /etc/snmpd.conf

syscontact      support@stiftung-buehl.ch
rouser          safereader auth
rwuser          safewriter priv 

rocommunity     ***xxx***   10.0.10.124
rocommunity     ***xxx***   10.0.10.125
rocommunity     ***xxx***   localhost

exec fs-root-rw /bin/sh -c "echo > /zabbix_fs_test >/dev/null && echo ROOT-OK"
exec fs-opt-rw /bin/sh -c "echo > /opt/zabbix_fs_test >/dev/null && echo OPT-OK"

1.2 configure the check files

root@mail:/etc/snmp# systemctl restart snmpd
root@mail:/etc/snmp# ps -ef | grep snmp
Debian-+ 15548     1  0 20:10 ?        00:00:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f



root@mail:/etc/snmp# getent passwd | grep -i Debi
Debian-snmp:x:113:121::/var/lib/snmp:/bin/false

root@mail:/etc/snmp# touch /zabbix_fs_test /opt/zabbix_fs_test ; chown Debian-snmp /opt/zabbix_fs_test /zabbix_fs_test ; chmod 700 /opt/zabbix_fs_test /zabbix_fs_test
root@mail:/etc/snmp# snmpwalk -v2c -O n -c '***l0cal***' localhost .1.3.6.1.4.1.2021.8.1
.1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.8.1.1.2 = INTEGER: 2
.1.3.6.1.4.1.2021.8.1.2.1 = STRING: "fs-root-rw"
.1.3.6.1.4.1.2021.8.1.2.2 = STRING: "fs-opt-rw"
.1.3.6.1.4.1.2021.8.1.3.1 = STRING: "/bin/sh -c \"echo > /zabbix_fs_test >/dev/null && echo ROOT-OK\""
.1.3.6.1.4.1.2021.8.1.3.2 = STRING: "/bin/sh -c \"echo > /opt/zabbix_fs_test >/dev/null && echo OPT-OK\""
.1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.100.2 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.101.1 = STRING: "ROOT-OK"
.1.3.6.1.4.1.2021.8.1.101.2 = STRING: "OPT-OK"
.1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.102.2 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.103.1 = ""
.1.3.6.1.4.1.2021.8.1.103.2 = ""

root@mail:/etc/snmp# chmod 000 /opt/zabbix_fs_test
root@mail:/etc/snmp# snmpwalk -v2c -O n -c '***l0cal***' localhost .1.3.6.1.4.1.2021.8.1
.1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.8.1.1.2 = INTEGER: 2
.1.3.6.1.4.1.2021.8.1.2.1 = STRING: "fs-root-rw"
.1.3.6.1.4.1.2021.8.1.2.2 = STRING: "fs-opt-rw"
.1.3.6.1.4.1.2021.8.1.3.1 = STRING: "/bin/sh -c \"echo > /zabbix_fs_test >/dev/null && echo ROOT-OK\""
.1.3.6.1.4.1.2021.8.1.3.2 = STRING: "/bin/sh -c \"echo > /opt/zabbix_fs_test >/dev/null && echo OPT-OK\""
.1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.100.2 = INTEGER: 2
.1.3.6.1.4.1.2021.8.1.101.1 = STRING: "ROOT-OK"
.1.3.6.1.4.1.2021.8.1.101.2 = STRING: "/bin/sh: 1: cannot create /opt/zabbix_fs_test: Permission denied"
.1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.102.2 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.103.1 = ""
.1.3.6.1.4.1.2021.8.1.103.2 = ""

root@mail:/etc/snmp# touch /zabbix_fs_test /opt/zabbix_fs_test ; chown Debian-snmp /opt/zabbix_fs_test /zabbix_fs_test ; chmod 700 /opt/zabbix_fs_test /zabbix_fs_test

2 Zabbix Config

2.1 Create Check

  • Zabbix > Configuration > Hosts > xxx > Items > Create

2.2 Create Trigger

  • Zabbix > Configuration > Hosts > xxx > Triggers > Create

2.3 Test

  • test alert with the chmod cmd above