Настраиваю мониторинг WB устройств, подключенных по RS485 к WB6. Кто-то делал?
Zabbix 5.4, Agent2.
Минимально необходимый вариант
Для полной автоматизации (LLD aka low level discovery) сильно нехватает списка сконфигурированных девайсов в виде MQTT топика, наподобие zigbee2mqtt/bridge/devices.
Список топиков /devices/+/meta/name не отражает текущее состояние, может содержать устаревшую информацию (девайс удален/disabled). К тому же, информация требуется единым сообщением, предпочтительно в JSON, а не набором топиков, с которым непонятно как работать напрямую.
Самое тривиальное решение - по крону публиковать конфиг в MQTT. Так и сделал, но если кому-то еще потребуется подобное - было бы неплохо добавить это в функционал wb-mqtt-serial.
Мониторинг уведомляет об отсутствии данных (Uptime не тикает, Supply Voltage не публикуется)
Серьезный мониторинг Enterprise уровня
Статус опроса (ok/error/disabled) и счетчики транзакций и ошибок RS485 на каждое устройство в виде MQTT топиков. В награду получаем автоматическое уведомление о конкретике проблем на устройстве.
Ну и какой-нибудь item prototype чтобы все заработало, у меня настроено чтение Uptime регистра (по умолчанию выключено, enable: false, надо править шаблоны или через web gui):
Детали - в прикрепленном темплейте, напрямую подходит к Zabbix 5.4 + Agent2 (именно 2), но можно прикрутить получение данных внешней командой если версия агента ниже 5.4.
Если я верно вкурил задание, то подумал бы про opc/ua вместо голого mqtt. По крайней мере, сам копаю в эту сторону, понимая архитектурные ограничения mqtt.
у меня Zabbix 5.2, темплейт не импортируется
что в итоге, в каком виде получаются обнаруженные объекты, в виде полей в узле контроллера? или создаем шаблон датчика, подключаем к нему LLD и оно находит все его поля по SLAVE_ID?
я например сделал, чтоб каждый датчик был отдельным узлом, мне так удобней
Есть индустриальный протокол, google opc/ua. Его вариант publish/subscribe очень похож по идеологии на mqtt, но:
описание структур данных специальным сообщением передается на сервер, он не должен разгадывать топики; 2) диагностические сообщения идут для всей периферии; 3) определено время отсылки телеграмм.
Для задач реального сетевого управления и мониторинга он подходит лучше mqtt, плюс, вроде в дистре есть демон opc/ua.
Но это, конечно, надо решать на этапе разработки архитектуры системы.
на контроллере не самый свежий агент, зато “из коробки”. Пришлось использовать рядом стоящий centos 8.
Приведенный выше шаблон минималистичен, только Uptime, устройства по типам не различаются, но это сделать несложно - Filter по LLD macro {#TYPE}.