Перейти к основному содержимому
Версия: Пульт 2.3.0

pult-snmptraps

pult-snmptrapsопциональный интеграционный компонент для приёма и обработки SNMP trap-событий от сетевого и другого инфраструктурного оборудования. Его включают, если события в систему мониторинга передаются через SNMP traps.

SNMP trap

Инициатор — само устройство:

устройство --> SNMP TRAP --> Пульт (pult-snmptraps + pult-server)

Устройство отправляет не «всю статистику», а событие. Типичные примеры trap:

  • linkDown / linkUp
  • coldStart / warmStart
  • authenticationFailure
  • powerSupplyFailed / fanFailed
  • temperatureAlarm
  • UPS onBattery

Trap означает: «что-то произошло, сообщаю об этом».

Архитектура в Docker

На текущий момент pult-snmptraps не слит с образом pult-server и поставляется отдельным контейнером. Контейнер pult-snmptraps необходимо запускать на том же хосте, что и pult-server.

Между контейнерами используется общий volume snmptraps для каталога /var/lib/zabbix/snmptraps. В $ZABBIX_USER_HOME_DIR/snmptraps/snmptraps.log (внутри контейнера) дублируются логи с выводом trap-демона.

Фрагмент docker-compose.yml

Добавьте или дополните сервисы pult-server и pult-snmptraps:

services:
pult-server:
image: registry.pult.chislitellab.ru:8123/releases/2.3.0/server-pgsql-redos8:7.4.9
container_name: pult-server
restart: unless-stopped
environment:
# ... остальные переменные pult-server ...
ZBX_ENABLE_SNMP_TRAPS: "true"
ports:
- "10051:10051"
volumes:
- /etc/localtime:/etc/localtime:ro
- snmptraps:/var/lib/zabbix/snmptraps:ro

pult-snmptraps:
image: registry.pult.chislitellab.ru:8123/releases/2.3.0/snmptraps-redos8:7.4.9
container_name: pult-snmptraps
restart: on-failure
environment:
ZABBIX_USER_HOME_DIR: "/var/lib/zabbix"
ports:
- "1162:1162/udp"
volumes:
- snmptraps:/var/lib/zabbix/snmptraps:rw
- ./snmptraps:/etc/snmp/snmptrapd.d

volumes:
snmptraps:
ЭлементНазначение
ZBX_ENABLE_SNMP_TRAPS: "true"Обязательное включение приёма SNMP traps на pult-server
Volume snmptraps на pult-serverОбщий каталог trap-файлов (монтирование :ro)
Volume snmptraps на pult-snmptrapsЗапись trap-файлов (монтирование :rw)
./snmptraps:/etc/snmp/snmptrapd.dКонфигурация snmptrapd на хосте
Порт 1162:1162/udpПриём SNMP traps (UDP)

Создайте каталог ./snmptraps на хосте при необходимости и поместите в него конфигурацию для snmptrapd.

Запуск

docker compose up -d pult-server pult-snmptraps

Настройка в Web UI Пульта

После запуска pult-snmptraps выполните настройку на сервере Пульта.

1. Добавление хоста-источника trap

Перейдите в MonitoringHostsCreate host.

Создайте хост, соответствующий устройству, с которого будут приходить SNMP traps. Важен IP-адрес — по нему выполняется маппинг trap-записей к элементам данных (Items).

ПолеЗначение (пример)
Host nameSNMP-Traps-Test
Host groupsLinux servers
Interfaces → TypeSNMP
IP addressIP устройства-источника trap (например, 10.0.0.10)
Port161
Monitored byServer

Настройка хоста для SNMP traps

2. Создание Item для trap

Перейдите в Data collectionHosts → выберите созданный хост → ItemsCreate item.

ПолеЗначение (пример)
NameAll traps
TypeSNMP trap
Keysnmptrap.fallback
Type of informationText
Host interfaceIP источника trap
HistoryStore up to 1d

Создание Item snmptrap.fallback

3. Проверка приёма trap

С хоста-источника (IP которого указан в интерфейсе хоста) отправьте тестовый trap на адрес хоста с pult-snmptraps и порт 1162:

snmptrap -v 2c -c public <ip_pult_snmptraps_host>:1162 '' .1.3.6.1.6.3.1.1.5.1

Пример (coldStart):

snmptrap -v 2c -c public 10.0.0.20:1162 '' .1.3.6.1.6.3.1.1.5.1

где 10.0.0.10 — IP устройства-источника (указан в Host interface), 10.0.0.20 — IP хоста с контейнером pult-snmptraps.

Проверьте поступление данных в MonitoringLatest data для созданного Item.

Полученный SNMP trap в Latest data