pult-snmptraps
pult-snmptraps — опциональный интеграционный компонент для приёма и обработки SNMP trap-событий от сетевого и другого инфраструктурного оборудования. Его включают, если события в систему мониторинга передаются через SNMP traps.
SNMP trap
Инициатор — само устройство:
устройство --> SNMP TRAP --> Пульт (pult-snmptraps + pult-server)
Устройство отправляет не «всю статистику», а событие. Типичные примеры trap:
linkDown/linkUpcoldStart/warmStartauthenticationFailurepowerSupplyFailed/fanFailedtemperatureAlarmUPS 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
Перейдите в Monitoring → Hosts → Create host.
Создайте хост, соответствующий устройству, с которого будут приходить SNMP traps. Важен IP-адрес — по нему выполняется маппинг trap-записей к элементам данных (Items).
| Поле | Значение (пример) |
|---|---|
| Host name | SNMP-Traps-Test |
| Host groups | Linux servers |
| Interfaces → Type | SNMP |
| IP address | IP устройства-источника trap (например, 10.0.0.10) |
| Port | 161 |
| Monitored by | Server |

2. Создание Item для trap
Перейдите в Data collection → Hosts → выберите созданный хост → Items → Create item.
| Поле | Значение (пример) |
|---|---|
| Name | All traps |
| Type | SNMP trap |
| Key | snmptrap.fallback |
| Type of information | Text |
| Host interface | IP источника trap |
| History | Store up to 1d |

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.
Проверьте поступление данных в Monitoring → Latest data для созданного Item.
