Zabbix SNMP traps via Docker, CentOS 8

Add docker repository:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Check if package available:
dnf list docker-ce
Install docker:
dnf -y install docker-ce --nobest
Start and enable:
systemctl start docker && systemctl enable docker
Check version:
docker --version
Run test docker:
docker run hello-world
Stop existing containers:
docker stop zabbixsnmptraps snmptrapsproxy
Remove:
docker rm zabbixsnmptraps snmptrapsproxy
Kickstart snmptraps:
docker run --name zabbixsnmptraps -e TZ="Europe/Riga" -p 162:162/udp -d zabbix/zabbix-snmptraps:centos-4.4-latest
Kickstart proxy, turn off all processes which are not required for trap receiving:
docker run --name snmptrapsproxy --link zabbixsnmptraps:zabbix-snmptraps --volumes-from zabbixsnmptraps -e ZBX_HOSTNAME=snmptraps -e ZBX_SERVER_HOST=10.133.253.43 -e ZBX_STARTPOLLERS=0 -e ZBX_STARTPREPROCESSORS=1 -e ZBX_STARTTRAPPERS=0 -e ZBX_STARTDBSYNCERS=1 -e ZBX_STARTDISCOVERERS=0 -e ZBX_ENABLE_SNMP_TRAPS=true -e ZBX_STARTPOLLERSUNREACHABLE=0 -e ZBX_CACHEUPDATEFREQUENCY=3600 -e ZBX_STARTPINGERS=0 -e ZBX_STARTHTTPPOLLERS=0 -e TZ="Europe/Riga" -d zabbix/zabbix-proxy-sqlite3:centos-4.4-latest
Install on CentOS 8:
dnf -y install net-snmp-utils
Test trap:
snmptrap -v 1 -c Earth 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "eth0"
Enter container:
docker exec -it zabbixsnmptraps bash
Search for log:
find / -name *.log
Output:
cat /var/lib/zabbix/snmptraps/snmptraps.log
Exit container:
exit
Enter proxy container:
docker exec -it snmptrapsproxy bash
Since containers are linked with same volume then search the same log:
find / -name *.log
Output:
cat /var/lib/zabbix/snmptraps/snmptraps.log
Check the process list of proxy:
ps -ef
Exit container:
exit
Related:
https://hub.docker.com/r/zabbix/zabbix-snmptraps
https://hub.docker.com/r/zabbix/zabbix-proxy-sqlite3
https://www.ibm.com/support/knowledgecenter/SSHRBY/com.ibm.swg.im.iias.admin.doc/doc/appl_smnp_receiver.html

cd /etc/snmp
cat << 'EOF' > vim snmptrapd.conf
snmpTrapdAddr                udp:162  # (1)
doNotFork                    yes  # (2)
doNotRetainNotificationLogs  yes  # (3)
createUser -e "0x1123581321" usm-sha-aes SHA sha.auth.pass.10 AES aes.enc.pass.11  # (4)
authUser          log        usm-sha-aes  # (5)
authCommunity     log        public  # (6)
format1 \n%V\n  %02.2h:%02.2j:%02.2k %y/%02.2m/%02.2l TRAP %A\nPDU INFO:\n  receivedfrom:      %a\n  agent hostname:    %A\n  community:         %P\n  enterprise OID:    %N\n  trap type:         %W\n  trap sub-type:     %q\nVARBINDS:\n  %v\n  # (7)
format2 \n%V\n  %02.2h:%02.2j:%02.2k %y/%02.2m/%02.2l TRAP %B\nPDU INFO:\n  receivedfrom:      %b\n  community:         %P\nVARBINDS:\n  %v\n  # (8)
EOF
Stop default daemon:
systemctl stop snmptrapd
Launch with custom settings:
/usr/sbin/snmptrapd -f -C -c /etc/snmp/snmptrapd.conf -Le -OQ -d -m +IF-MIB

No comments: