Общая информация
Zabbix — это система с открытым исходным кодом для мониторинга и управления сетью. Она используется для наблюдения за состоянием различных сетевых ресурсов и оборудования, таких как серверы, виртуальные машины, сетевые устройства и приложения.
Для работы с системами мониторинга, платформа Эра использует протокол SNMP версии 2c и в частности механизм SNMP Traps. В отличии от классического использования протокола SNMP, внешняя система не опрашивает платформу, вместо этого платформа сама передает данные для мониторинга внешней системе. Объем данных и параметры системы для передачи SNMP-трафика указываются в параметрах мастер-домена.
По-умолчанию Zabbix не работает с механизмом SNMP Traps, его необходимо настроить перед подключением системы.
Таким образом, выстраивется следующий алгоритм подключения Zabbix к платформе Эра:
- Настройка получения SNMP Traps в Zabbix
- Настройка отправки SNMP в мастер-домене
- Настройка узла сети и элементов данных (Host и Items) в Zabbix
Детали работы SNMP можно посмотреть на ресурсе Vendor.
Настройка SNMP Traps в Zabbix
Для настройки SNMP Traps будет необходим административный доступ к серверу Zabbix. В данном примере, будет рассмотрена работа с Zabbix под управлением Debian 12.
Если данный механизм уже активирован на вашем сервере Zabbix, можно переходить сразу к настройке SNMP в платформе Эра.
Первым шагом, необхдимо установить пакеты snmp, snmptrapd и библиотеку snmp для perl:
sudo apt install snmp snmptrapd
sudo apt-get install libsnmp-perl
perl -MCPAN -e 'install Net::SNMP'
systemctl restart snmptrapd
systemctl enable snmptrapd
Далее, необходимо скачать и установить perl-скрипт обработки snmp traps с помощью zabbix
curl -o /usr/bin/zabbix_trap_receiver.pl https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/misc/snmptrap/zabbix_trap_receiver.pl
chmod +x /usr/bin/zabbix_trap_receiver.pl
Для следующего шага, необходимо определиться со строкой community.
SNMP community (сообщество SNMP) — это строка текста, выполняющая роль "пароля" в протоколе Simple Network Management Protocol (SNMP) версии 1 и 2c. Она используется для определения уровня доступа клиента (управляющей станции) к данным управляемого SNMP устройства (агента), такого как маршрутизатор, хост или свитч.
Существует несколько типов community, которые определяют права доступа:
1. Community public: Обычно используется как строка по умолчанию для доступа "только для чтения". С этим уровнем доступности можно считывать данные с устройства, но не изменять их.
2. Community private: Строка community, обеспечивающая доступ "чтение и запись". С ней можно как читать данные с устройства, так и менять его настройки.
3. Custom Community (настраиваемое сообщество): Это любые настраиваемые строки community, которые могут быть заданы администратором для конкретных нужд безопасности и управления.
После того, как установлены все компоненты и скрипты, необходимо провести их конфигурацию
После завершения настройки необходимо перезагрузить оба сервиса.
systemctl restart zabbix-server
systemctl restart snmptrapd
При использовании Zabbix Proxy, или каких-либо особенных случаев настройки, рекомендуется обращаться к официальной документации Zabbix.
Также, рекомендуется к просмотру данное видео по настройке SNMP Traps.
После того, как все настройки были произведены и применены, можно также загрузить и подключить MIB-файл платформы Эра.
Для получения MIB-файла, вы должны быть авторизованы в мастер-домене платформы. В браузере достаточно открыть страницу с адресом https://[адрес_платформы]/rest/v1/master/snmp/mib

Полученный файл необходимо передать на сервер Zabbix, рекомендуется каталог /usr/share/snmp/mibs/
Далее, необходимо внести изменения в файл /etc/snmp/snmp.conf
В раздел mibs необходимо добавить путь к файлу (пример в скриншоте)
После сохранения изменений, необходимо перезагрузить Zabbix:
systemctl restart zabbix-server

Также, необходимо включить поддержку MIBs в snmptrapd:
В файле /usr/lib/systemd/system/snmptrapd.service необходимо в значении ExecStart добавить ключ -m ALL
После чего перезагрузить службу:
systemctl daemon-reload
systemctl restart snmptrapd
При необходимости, так же можно конвертировать MIB-файл в шаблон Zabbix.
Настройка SNMP в мастер-домене

Работа SNMP определяется параметрами мастер-домена.
Для изменения параметров необходимо войти в приложение Настройки в мастер-домене, далее во вкладке Домен найти раздел Параметры.

За работу SNMP отвечает параметр snmp_options, содержащий JSON следующего вида:
{
"community": "communityname",
"enabled": true,
"excluded_types": [],
"ip": "",
"level": "info",
"rate_interval_min": 1,
"system_state_excluded_keys": [],
"system_state_interval_min": 5,
"types": [
"*"
]
}
Для активации SNMP необходимо указать значение enabled=true, ip-адрес настроенного zabbix, необходимую строку community (например, era как в предыдущем шаге), а также задать уровень логирования:
- emergency (0)
- alert (1)
- critical (2)
- error (3)
- warning (4)
- notice (5)
- info (6)
- debug (7)
Детальное описание всех параметров snmp_options можно найти на ресурсе Vendor.
После сохранения настроек они применяются автоматически, перезагрузка сервисов платформы не требуется.
Обработка SNMP в Zabbix
Zabbix предоставляет широкий набор возможностей по мониторингу систем, в данном разделе будет рассмотрены только базовые действия, необходимые для получения событий от платформы. Детальная настройка мониторинга и триггеров зависит от конкретных потребностей и в рамках данной статьи рассмотрена не будет.

Zabbix в своей работе оперирует понятиями Узел сети (Host) и Элемент данных (Item). Применительно к платформе Эра, узлом сети будет являться один инстанс платформы целиком, вне зависимости от количества серверов, на которых он функционирует. Элементы данных же представляют собой "показатели" и события инстанса платформы, такие как текущее количество подключенных к системе пользователей, статус системы, события изменения состояний микросервисов и т.д. Полный список всех событий и показателей можно найти на ресурсе Vendor.
Для подключения узла сети, необходимо во вкладке Data Collection открыть раздел Hosts и добавить новую запись. Требуется указать его название, выбрать группу (группы) и добавить интерфейс SNMP с IP-адресом и доменом. Несмотря на то, что непосредственно обращение по SNMP к серверу в случае Эры использоваться не будет, механизм обработки SNMP-трапов будет использовать IP-адрес и домен узла для привязки SNMP-запросов к нему.
Остальные параметры узла не являются обязательными и могут быть заданы на усмотрение администратора.

После создания узла, необходимо добавить элементы данных. Для этого в списке узлов, на необходимом узле требуется нажать на гиперссылку Items, после чего создать новый объект.
Тип элемента данных необходимо выбрать SNMP Trap. Также необходимо выбрать правильный интерфейс узла, если их несколько.


Обработка элементов данных осуществляется при помощи регулярных выражений. Каждый элемент данных отбирает в собственное хранилище те сообщения SNMP, которые ему подходят, оставшиеся необработанные сообщения отправляются в элемент данных snmptrap.fallback. Поэтому, первым необходимо создать именно его. В таком случае, в этом элементе данных мы сможем увидеть все события от платформы эра, после чего составить для них регулярные выражения и создать необходимый набор других элементов данных.
Просмотреть список событий и сообщений можно на вкладке Monitoring -> Latest Data.