SNMP ловушки не регистрируются

Вопрос или проблема

(Извините, я разместил оригинал не в том форуме)

Я занимаюсь настройкой Zabbix на Alma 9 и столкнулся с странной проблемой с SNMP ловушками. У нас есть SIP-коммутатор с включенным SNMP, который указывает на сервер, но по какой-то причине snmptrapd не обрабатывает входящие ловушки.

Zabbix установлен и работает. snmp и ловушка работают.

[root@dev:~]$ ps ax | grep snmp
   1472 ?        S      0:00 /usr/sbin/zabbix_server: snmp trapper [processed data in 0.000060 sec, idle 1 sec]
   1527 ?        Sl     0:00 /usr/sbin/zabbix_server: snmp poller #1 [got 0 values, queued 0 in 5 sec, awaiting 0]
   2174 ?        Ss     0:00 /usr/sbin/snmptrapd -Lsd -f
   2585 pts/1    S+     0:00 grep --color=auto snmp

выполнение snmptrapwalk работает

snmptrap -v 2c -c public 10.5.5.122 '' SNMPv2-MIB::snmpMIB IF-MIB::linkDown s eth0

2025-01-10T16:51:09+0000 ZBXTRAP 10.5.5.122
PDU INFO:
  receivedfrom                   UDP: [10.5.5.122]:47786->[10.5.5.122]:162
  version                        1
  transactionid                  2
  requestid                      1130383097
  errorstatus                    0
  messageid                      0
  notificationtype               TRAP
  errorindex                     0
  community                      public
VARBINDS:
  DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (337607) 0:56:16.07
  SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: SNMPv2-MIB::snmpMIB
  IF-MIB::linkDown               type=4  value=STRING: "eth0"

На нашем SIP-коммутаторе, если я перезапущу один из модулей, это вызовет SNMP ловушку. Используя TCP dump, я вижу, что она отправляется на сервер Zabbix.

tcpdump -i ens18 -T snmp -n dst portrange 161-162

17:14:35.573815 IP 10.7.7.113.33830 > 10.5.5.122.snmptrap: V2Trap(174) .1.3.6.1.2.1.1.3.0=1877147173 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.17236.2.1 .1.3.6.1.4.1.17236.1.1="КРИТИЧНО : 003 010008 000007 10/01/2025 17:14:35 : Потеряна связь с 0XA070771 (SIP Switch 3 - BT)"
17:14:36.427854 IP 10.7.7.113.43173 > 10.5.5.122.snmptrap: V2Trap(152) .1.3.6.1.2.1.1.3.0=1877147258 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.17236.2.1 .1.3.6.1.4.1.17236.1.1="КРИТИЧНО : 003 010000 000000 10/01/2025 17:14:36 : Сервер приложений остановлен"
17:14:37.434487 IP 10.7.7.113.54710 > 10.5.5.122.snmptrap: V2Trap(222) .1.3.6.1.2.1.1.3.0=1877147359 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.17236.2.1 .1.3.6.1.4.1.17236.1.1="МАЖОРНО : 007 023009 000000 10/01/2025 17:14:37 : Shout.Ocp.OcpLink (127.0.0.1:10012) не удалась. Причина: Неожиданная ошибка в потоке Heartbeat."
17:14:41.627673 IP 10.7.7.113.34462 > 10.5.5.122.snmptrap: V2Trap(230) .1.3.6.1.2.1.1.3.0=1877147778 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.17236.2.1 .1.3.6.1.4.1.17236.1.1="МАЖОРНО : 007 023009 000000 10/01/2025 17:14:41 : Shout.Ocp.OcpLink (127.0.0.1:10012) не удалась. Причина: Невозможно читать за пределами потока."

Да, в логах ничего нет. Это то, что у меня написано в /etc/snmp/snmptrap.conf

#Zabbix 1 и 2
disableAuthorization yes
authCommunity execute public

#Получатель SNMP ловушек для Zabbix
perl do "/usr/bin/zabbix_trap_receiver.pl";

Я также попробовал использовать bash-скрипт, всё равно безуспешно. Selinux отключен, как и фаервол. Я не получаю никаких сообщений об ошибках, и в /var/log/messages ничего не указывает на какие-либо проблемы. Я несколько озадачен, так как, похоже, ничто не работает неправильно.

Ответ или решение

Настройка SNMP в Zabbix на Alma 9 может иногда вызывать затруднения, особенно когда SNMP Traps не фиксируются должным образом. Давайте рассмотрим потенциальные причины этой проблемы и способы их устранения.

Теория:

Первым шагом в любом диагностическом процессе является понимание архитектуры и взаимодействия компонентов. В вашем случае имеются Zabbix и snmptrapd, которые должны взаимодействовать для получения и обработки SNMP ловушек.

Когда SNMP Trap отправляется с устройства, snmptrapd на сервере должен его получить, обработать и передать Zabbix для дальнейшего анализа и логирования. Если вы видите ловушки в tcpdump, но они не обрабатываются snmptrapd, это значит, что цепочка обработки проблемы где-то прервана.

Примеры (анализ текущей конфигурации):

  1. Конфигурация snmptrapd: Судя по вашему snmptrap.conf, вы отключили авторизацию и указали сообщество ‘public’. Также указана строка для вызова perl-скрипта Zabbix, что является правильным шагом для передачи данных в Zabbix, но если скрипт некорректно настроен или недоступен, это может быть причиной проблемы. Проверьте, существует ли файл /usr/bin/zabbix_trap_receiver.pl и доступен ли он для выполнения.

  2. Блокировка скриптов: Поскольку SElinux и firewall отключены, маловероятно, что они блокируют скрипт. Однако проверьте доступность и работоспособность скрипта, например, запустив его вручную.

  3. Логи и файл вывода: Проверьте файл конфигурации на наличие настроек, которые указывают на вывод логов snmptrapd. Если они отсутствуют, или если вывод перенаправляется в неподходящее место, то имеет смысл это исправить. Добавьте или проверьте строку в snmptrapd.conf, например: traphandle default /usr/bin/zabbix_trap_receiver.pl и authCommunity log,execute,net public.

  4. Перезапуск служб: После изменения конфигурации всегда перезапускайте snmptrapd и Zabbix для обновления конфигурации.

  5. Проверка прав доступа: Убедитесь, что скрипт zabbix_trap_receiver.pl имеет корректные разрешения на исполнение. Чекните права с помощью команды chmod +x /usr/bin/zabbix_trap_receiver.pl.

Применение (решение проблемы):

  1. Проверка скрипта zabbix_trap_receiver.pl: Убедитесь, что скрипт настроен правильно. Проверьте его содержание, рабочие параметры и доступность. Возможно, потребуется его перенастройка или замена на другой более стабильный скрипт, например, bash-скрипт, который вы тоже пробовали использовать.

  2. Включение детализированных логов: Настройте snmptrapd для более детального логирования, которое может оказать важную информацию о том, где может происходить сбой. В зависимости от вашего уровня доступа к системным журналам, добавление строк для более детального логирования может помочь раскрыть текущие проблемы.

  3. Профилактическая проверка службы Zabbix: Убедитесь в том, что настройки Zabbix для обработки SNMP трепок корректны и сервис имеет необходимые права для их обработки.

Выявление и устранение проблемы часто требует методического подхода с анализом каждого компонента системы. Ваша текущая диагностика tcpdump показывает, что SNMP трепки достигают сервера, а это значит, что проблема скорее всего заключается в обработке их программным обеспечением на сервере, будь то snmptrapd или скрипт для передачи в Zabbix.

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

Капча загружается...