Skip to content

SmithLEDs/smith-zabbix-mqtt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

latest Foo



Конвертер zabbix-trigger в MQTT

Данный микро сервис предназначен для получения активных триггеров с сервера Zabbix и пересылки в топики MQTT.

1. Принцип работы

  1. Сервис подключается к серверу Zabbix по API, используя протокол JSON-RPC 2.0.

  2. После получения активных триггеров идет пересылка в брокер MQTT.

    • В коде используется библиотека eclipse/paho.mqtt.golang v1.5.1
    • Сервис сканирует все триггеры и в каждом анализирует, к каким узлам сети принадлежит данный триггер. Если данный узел сети присутствует в конфигурационном файле, то анализирует приоритеты и публикует самый высокий приоритет в брокер MQTT.
  3. Файл конфигурации по умолчанию расположен в каталоге /etc/smith-zabbix-mqtt/config.yaml

2. WirenBoard

Сервис публикует топики в MQTT брокер согласно Wiren Board MQTT Conventions. Это означает, что после публикации топиков в WEB интерфейсе контроллера отобразится новое "Виртуальное" устройство. С данным устройством можно работать в редакторе правил wb-rules, как с обычным виртуальным устройством.

3. Параметры командной строки

Параметр Тип Значение по умолчанию Описание
version arg Версия приложения
--debug bool false Включение отладочных сообщений
--print-config bool false Печатает текущую конфигурацию и выходит
configFile string /etc/smith-zabbix-mqtt/config.yaml Расположение файла конфигурации

4. Пример конфигурационного файла

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

About

Конвертер активных триггеров Zabbix в топики MQTT

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages