Настройка SNMP Traps в Linux

Приведу пример установки 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

Вливайтесь в общение

3 комментария

Добавить комментарий

  1. Доброго времени суток. пытаюсь настроить по вашему мануалу. при запуске snmptt не стартует и выдает ошибку
    Can’t use an undefined value as a symbol reference at /usr/share/perl5/Config/IniFiles.pm line 817, line 264.

  2. Добрый день.
    Укажите в файле конфигурации unknown_trap_log_enable = 1 чтобы записывались неизвестные трапы, проанализируйте их, так как изначально пишутся только известные прописанные в файле /etc/snmp/snmptt.conf

  3. Добрый день.
    После попытки запустить snmptrapd -f -L o
    Получаю:
    bash: /usr/sbin/snmptrapd: Нет такого файла или каталога
    Решил, что Вы просто забыли указать snmptrapd в apt-get install
    Проинсталлировал.
    ручной запуск snmptrapd -f -L o работает и выводить в консоль принятые трапы
    Однако при запуске демона и попытке отправить трап, каталог /var/log/snmptt пуст
    Подскажите, что я делаю неправильно?