Приведу пример установки 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
Доброго времени суток. пытаюсь настроить по вашему мануалу. при запуске snmptt не стартует и выдает ошибку
Can’t use an undefined value as a symbol reference at /usr/share/perl5/Config/IniFiles.pm line 817, line 264.
Добрый день.
Укажите в файле конфигурации unknown_trap_log_enable = 1 чтобы записывались неизвестные трапы, проанализируйте их, так как изначально пишутся только известные прописанные в файле /etc/snmp/snmptt.conf
Добрый день.
После попытки запустить snmptrapd -f -L o
Получаю:
bash: /usr/sbin/snmptrapd: Нет такого файла или каталога
Решил, что Вы просто забыли указать snmptrapd в apt-get install
Проинсталлировал.
ручной запуск snmptrapd -f -L o работает и выводить в консоль принятые трапы
Однако при запуске демона и попытке отправить трап, каталог /var/log/snmptt пуст
Подскажите, что я делаю неправильно?