-
Sy
chevron_right
Правка service-файла snmptrapd
noreply@blogger.com (morbo) · pubsub.slavino.sk / sysadmblog · Sunday, 2 August, 2020 - 08:00 edit · 1 minute
TRAPDOPTS='-Lf /dev/null -n -t -Oqnet'Реально же демон snmptrapd запускался с опциями -Lsd -f
Из-за этого в скрипт обработки трапов OID'ы попадали в символьном виде:
SNMPv2-SMI::enterprises.1332.3.1.1.4.5.0А скрипт был расчитан на обработку OID'ов в числовом виде:
.1.3.6.1.4.1.1332.3.1.1.4.5.0После обновления операционной системы на сервере с Debian Wheezy до Debian Stretch, в нём поменялась система инициализации с System V Init на Systemd.
В комплекте с Systemd поставляется такой service-файл /lib/systemd/system/snmptrapd.service для запуска snmptrapd:
[Unit]Как видно, опции, с которыми должен запускаться snmptrapd, в нём прошиты жёстко, а не берутся из файла /etc/default/snmptrapd.
Description=Simple Network Management Protocol (SNMP) Trap Daemon.
After=network.target
ConditionPathExists=/etc/snmp/snmptrapd.conf
[Service]
Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
Type=simple
ExecStart=/usr/sbin/snmptrapd -Lsd -f
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Создал вместо этого стандартного service-файла свой собственный файл /etc/systemd/system/snmptrapd.service со следующим содержимым:
[Unit]Чтобы о новом service-файле узнал systemd, нужно выполнить следующую команду:
Description=Simple Network Management Protocol (SNMP) Trap Daemon.
After=network.target
ConditionPathExists=/etc/snmp/snmptrapd.conf
[Service]
Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
EnvironmentFile=/etc/default/snmptrapd
Type=simple
ExecStart=/usr/sbin/snmptrapd $TRAPDOPTS -f
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
# systemctl daemon-reloadА чтобы демон snmptrapd запустился с новыми опциями, нужно его перезапустить:
# systemctl restart snmptrapdТеперь опции для snmptrapd стали браться из файла /etc/default/snmptrapd, как и было до этого.