Приведу пример установки SNMP и ловли SNMP traps в Ubuntu Server.
Выполним установку:
sudo apt-get install snmpd snmptt snmptrapd libnet-ip-perl
В конфигурационном файле /etc/default/snmpd изменяем значение параметра TRAPDRUN с no на yes и добавим -On в TRAPDOPTS=:
TRAPDRUN=yes
TRAPDOPTS='-On -Lsd -p /var/run/snmptrapd.pid'
В конфигурационном файле /etc/snmp/snmptrapd.conf укажем комьюнити и что трапы необходимо передавать на snmptt:
authCommunity log,execute,net COMMUNITY
traphandle default snmptthandler
В конфигурационном файле /etc/snmp/snmptt.ini укажем параметры:
mode = daemon
net_snmp_perl_enable = 1
mibs_environment = ALL
unknown_trap_log_enable = 1
Перезапустим snmpd и snmptt чтобы применить изменения:
sudo /etc/init.d/snmpd restart
sudo /etc/init.d/snmptt restart
Проверим запустились ли snmpd(udp 161) и snmptrapd(udp 162):
netstat -tulanp|grep snmp
netstat -tulanp|grep 162
Можно временно остановить snmpd и запустить его вручную чтобы посмотреть в реальном времени какие SNMP traps приходят на сервер:
sudo service snmpd stop
sudo snmptrapd -f -L o
Если в системе используется iptables, то разрешим указанной ниже командой прием udp пакетов на порт 162 и сохраним добавленное правило чтобы оно не сбросилось после перезапуска системы:
sudo iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 162 -j ACCEPT
sudo service iptables save
Если все правильно настроили, то SNMP traps должны записываться в директории /var/log/snmptt/.
UPD: В Ubuntu 22.04 пришлось еще изменить права на директорию и перезагрузить snmptrapd:
sudo chmod 777 /var/spool/snmptt
sudo /etc/init.d/snmpd restart
sudo /etc/init.d/snmptt restart
sudo /etc/init.d/snmptrapd restart
sudo /etc/init.d/snmptrapd status
А также я закомментировал daemon_uid:
sudo nano /etc/snmp/snmptt.ini
#daemon_uid = snmptt
Смотрите также мою статью:
Настройка SNMP Traps на коммутаторах D-Link
