SNMP
Примечание
Для корректного отображения устройств на дашбоарде в Grafana следует использовать значение тега component
как IP-адрес или имя устройства, которое мониторится с помощью snmp-exporter
SNMP поллинг
Для SNMP мониторинга удаленных устройств применяется snmp-exporter.
Для генерации конфигурационного файла используется специальная утилита generator. В архив с snmp-exporter
добавлен каталог стандартных MIB-файлов для генерации конфигураций.
Эта утилита обрабатывает необходимые MIB-файлы и преобразует их в список OID-цепочек и названий метрик.
SNMP exporter
опрашивает удаленные устройства на основе этих данных и выводит метрики в формате Prometheus для дальнейшего анализа другими системами.
Запуск snmp-exporter с помощью агента мониторинга
Для установки экспортера как сервиса см. руководство.
Для корректного запуска экспортера необходимо выполнить следующие настройки агента:
Настройка раздела exporters
В конфигурационном файле агента в разделе exporters
укажите имя запускаемого экспортера и параметр is_custom
:
exporters:
- name: snmp_exporter
is_custom: true
args: "--config.file=/opt/astramon-agent/exporters/config/snmp.yml"
health_address: 127.0.0.1:9116/metrics
Поле
name
должно совпадать с названием бинарного файла с учетом дополнительных условий именования сторонних экспортеров (например:astramon-snmp_exporter-custom
).Параметр
is_custom
указывает агенту, что это сторонний экспортер, но агент может управлять им (запускать, выполнятьhealth check
, останавливать и сообщать статус работы экспортера в Config API). Также это предотвращает использование функциональности, доступной только для экспортеров, специально разработанных для агента мониторинга.Параметр
args
содержит параметры запуска экспортера, включая путь к файлу конфигурации.
Настройка раздела metrics
Выполните настройку в разделе metrics
:
custom_targets:
- name: snmp_exporter1
component: 10.177.248.228
target: 127.0.0.1:9116
metrics_path: /snmp?module=apcups&target=10.177.248.228
- name: snmp_exporter2
component: 10.177.248.234
target: 127.0.0.1:9116
metrics_path: /snmp?module=linux&target=10.177.248.234
Поле
name
должно быть уникальным (это особенность работыvmagent
). В примере показан сбор данных с двух целевых устройств.Параметр
component
добавляет лейблcomponent
для различения метрик разных устройств.Параметр
target
указывает адрес и порт, с которого будут считываться метрики.Параметр
metrics_path
позволяет обратиться к конкретному эндпоинту для получения метрик. По умолчанию используется/metrics
, но в данном случае эндпоинт выводит метрики для разных устройств. При необходимости можно добавить запись для сбора метрик напрямую из/metrics
.
SNMP трапы
SNMP-трапы (SNMP traps) — это механизм уведомлений в сетевых устройствах и сервисах, который работает по принципу «произошло событие — сразу сообщи». В отличие от метрик (которые собираются периодически) или логов (которые просто фиксируют происходящее), трап — это целенаправленное уведомление о важном событии, требующем внимания, они помогают быстро обнаруживать проблемы без постоянного опроса метрик и копания в логах.
Например:
Сетевое устройство внезапно перезагрузилось
Интерфейс на коммутаторе перешёл в состояние down
Заканчивается место на диске сервера
Сработала система охлаждения на оборудовании
Трапы не ждут, пока их «спросят» (как в случае с опросом метрик через SNMP GET), а сразу отправляют информацию при наступлении события.
Чем трапы отличаются от:
Логов
Это «сырая» хронология событий, часто избыточная
Требуют парсинга и фильтрации для выявления важного
Могут дублироваться или теряться в потоке данных
Метрик
Показывают состояние системы в конкретный момент (CPU, RAM, нагрузка)
Нужно постоянно опрашивать устройство, чтобы получить актуальные данные
Не всегда очевидно, когда значение метрики становится проблемой
Что же такое snmp trap в astra-monitoring
Это целевые уведомления о конкретных событиях, которые:
Приходят однократно (не нужно ничего опрашивать)
содержат готовую интерпретацию события (например, не просто «интерфейс down», а «интерфейс Eth1/0/3 на устройстве SW-01 перестал отвечать из-за потери связи»)
Не накапливаются бесконечно — после обработки сохраняются в базу и не дублируются
Как трапы работают в нашем продукте?
Устройство генерирует трап (например, роутер сообщает о перегрузке CPU).
Агент (или SNMP-прокси) принимает трап и передаёт его в центральную систему.
Сервис обработки трапов парсит данные, обогащает их (добавляет hostname, severity, дополнительные поля) и сохраняет в ClickHouse.
Дальнейшие сценарии использования:
Просмотр в интерфейсе (например, в разделе События)
Интеграция с алертингом (в ближайших релизах появится мониторинг событий)
Анализ частоты срабатываний (например, «сколько раз за месяц падал интерфейс на этом коммутаторе»)
В будущем мы добавим мониторы на основе трапов (событий), чтобы вы могли:
Настраивать правила типа: «Если пришло 3 трапа link down за 5 минут — создать инцидент»
Строить графики частоты событий по типам устройств
Интегрировать трапы с внешними системами (например, Slack или Jira)
Где/как настроить сбор трапов?
Чтобы начать получать трапы от устройств, нужно:
Настроить агенты на их приём (указать community-строки, порты, фильтры).
Добавить устройства в конфигурацию мониторинга.
Подробная инструкция доступна в разделе Конфигурирование сбора SNMP-трапов на агенте
Там описано:
Как разрешить приём трапов на агентах
Как фильтровать ненужные события
Как настраивать обогащение данных (добавление тегов, severity)