Данный микро сервис предназначен для получения активных триггеров с сервера Zabbix и пересылки в топики MQTT.
-
Сервис подключается к серверу Zabbix по API, используя протокол JSON-RPC 2.0.
- В коде используется библиотека
fabiang/go-zabbix v1.1.0 - Используется метод
trigger.get(Описание метода) - Авторизация происходит по токену (Инструкция получения токена в WEB интерфейсе)
- В коде используется библиотека
-
После получения активных триггеров идет пересылка в брокер MQTT.
- В коде используется библиотека
eclipse/paho.mqtt.golang v1.5.1 - Сервис сканирует все триггеры и в каждом анализирует, к каким узлам сети принадлежит данный триггер. Если данный узел сети присутствует в конфигурационном файле, то анализирует приоритеты и публикует самый высокий приоритет в брокер MQTT.
- В коде используется библиотека
-
Файл конфигурации по умолчанию расположен в каталоге
/etc/smith-zabbix-mqtt/config.yaml
Сервис публикует топики в MQTT брокер согласно Wiren Board MQTT Conventions. Это означает, что после публикации топиков в WEB интерфейсе контроллера отобразится новое "Виртуальное" устройство. С данным устройством можно работать в редакторе правил wb-rules, как с обычным виртуальным устройством.
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
version |
arg |
Версия приложения | |
--debug |
bool |
false |
Включение отладочных сообщений |
--print-config |
bool |
false |
Печатает текущую конфигурацию и выходит |
configFile |
string |
/etc/smith-zabbix-mqtt/config.yaml |
Расположение файла конфигурации |
env: local
# Периодичность чтения триггеров Zabbix
update_interval: 1s
# Настройки для подключения к MQTT брокеру
mqtt:
address: tcp://localhost:1883
client_id: smith-zabbix-mqtt
# Если login/ password пустые — авторизация не используется
login:
password:
# Настройки для подключения к API Zabbix
zabbix:
address: http://localhost:8080/api_jsonrpc.php
token:
# Если указать группу, то будут запрашиваться только те триггеры,
# в которых хосты принадлежат данной группе
group:
# Переопределение приоритетов Zabbix в приоритеты сервера подсветки "Хамелеон"
#
# Приритеты триггеров в Zabbix:
# 0: Не классифицировано
# 1: Информация
# 2: Предупреждение
# 3: Средняя
# 4: Высокая
# 5: Чрезвычайная
# Приоритеты сервера "Хамелеон":
# 2: Все хорошо (Синий цвет)
# 3: Внимание (Желтый цвет)
# 4: Авария (Красный цвет)
severity:
-1: 2 # Какой приоритет использовать при неопределенном состоянии
0: 2
1: 2
2: 3
3: 3
4: 4
5: 4
# Описание для приоритетов
description_severity:
"2":
ru: "Норма"
en: "Normal"
"3":
ru: "Внимание"
en: "Warning"
"4":
ru: "Авария"
en: "Alarm"
# Перечисление хостов Zabbix, за которыми нужно следить (Имя узла сети)
hosts:
- Zabbix server # Сервер Zabbix
# Настройки создания виртуального устройства в MQTT WirenBoard
# Создается топик "/device/имя_устройства/controls/перечисления_хостов"
mqtt_virtual_device:
# Имя используется для формирования топика устройства
name: statusServers
# Публиковать или нет общее количество активных триггеров Zabbix
total_triggers: true
# Публиковать или нет общий аптайм работы сервиса
uptime: true
