Zabbix
Интеграция Zabbix с Ключ-АСТРОМ
Расширение: ru.ruscomtech.python.zabbix
Версия: 0.1.27
Минимальная версия Ключ-АСТРОМ: 1.285.0
Назначение
Расширение интегрирует данные Zabbix в платформу Ключ-АСТРОМ, обеспечивая единое окно наблюдаемости для гибридных сред, где часть инфраструктуры мониторится только через Zabbix. Оно не заменяет Zabbix, а делает его данные доступными в Ключ-АСТРОМ для корреляции, анализа ИИ и визуализации.
Основные задачи:
- Синхронизация хостов, групп хостов и проблем Zabbix как кастомных сущностей и событий в Ключ-АСТРОМ.
- Экспорт числовых метрик Zabbix в формате пользовательских метрик Ключ-АСТРОМ.
- Привязка проблем Zabbix к существующим сущностям Ключ-АСТРОМ (хостам, сервисам и др.) по IP или через тег с entity selector.
- Поддержка фильтрации по host group, тегам проблем и ключам метрик (включая регулярные выражения).
Архитектура и сущности
Расширение создаёт следующие типы кастомных сущностей в Ключ-АСТРОМ:
| Тип сущности | Идентификатор | Описание |
|---|---|---|
| Zabbix Server | zabbix:server
|
Представляет один Zabbix-сервер |
| Host Group | zabbix:hostgroup
|
Группа хостов из Zabbix |
| Host in Group | zabbix:host_on_group
|
Промежуточная связь между хостом и группой |
| Host | zabbix:host
|
Отдельный хост Zabbix |
Сущности связаны отношениями:
zabbix:hostgroup→CHILD_OF→zabbix:serverzabbix:host_on_group→CHILD_OF→zabbix:hostgroupzabbix:host_on_group→CALLS→zabbix:host
Для сущности zabbix:host могут быть заполнены:
- IP-адрес (из item’а
interfacesили Zabbix API) - Поля инвентаря (при включении соответствующих флагов в
inventory_keys) - Zabbix-теги как строковое свойство
zabbix_tags
Синхронизация проблем
Проблемы Zabbix (триггеры в состоянии PROBLEM) передаются в Ключ-АСТРОМ как события с типом CUSTOM_ALERT.
Severity mapping
Уровни серьёзности Zabbix сопоставляются уровням проблем Ключ-АСТРОМ через настройки:
| Zabbix severity | Dynatrace problem level |
|---|---|
zbx2dt_disaster
|
Availability |
zbx2dt_high
|
Error |
zbx2dt_average
|
Slowdown |
zbx2dt_warning
|
Resource |
zbx2dt_information, zbx2dt_not_classified
|
Suppress (по умолчанию) |
Сопоставление можно изменить в разделе Advanced configuration.
Привязка к существующим сущностям
По умолчанию проблема привязывается к сущности zabbix:host. Для привязки к другим объектам используется тег в Zabbix:
- В конфигурации расширения задаётся имя тега: параметр Zabbix tag for Dynatrace entities (
tag_entities, по умолчаниюDT_Entity). - В Zabbix на триггере/шаблоне/хосте добавляется тег с этим ключом.
- Значение тега должно быть валидным entity selector Ключ-АСТРОМ, например:
type("HOST"),entityName.equals("{HOST.NAME}")entityId("SERVICE-ABC123")type("PROCESS_GROUP"),tag("db")
Если selector возвращает одну или несколько сущностей — событие создаётся на каждой из них. Поведение при множественных совпадениях регулируется флагом Allow Davis merge (dt_allow_davis_merge).
Метрики
Расширение экспортирует три типа метрик:
| Метрика | Ключ | Назначение |
|---|---|---|
| Проблемная метрика | zabbix.problem_count.gauge
|
Число активных проблем на хосте (включается опцией problem_metric)
|
| Пользовательские item’ы | zabbix.item
|
Значения Zabbix-метрик по списку ключей из item_keys
|
| Топологическая метрика | zabbix.topology
|
Служебная метрика для создания и поддержки сущностей |
Ключи item’ов задаются как список строк или регулярных выражений в поле Zabbix item keys to export (item_keys).
Инвентарь хостов
При включении опций в разделе Zabbix host inventory (inventory_keys) данные из Zabbix Inventory передаются как свойства сущности zabbix:host с префиксом in_ (например, in_os, in_host_networks).
По умолчанию включены:
host_networks→in_host_networksos→in_os
Остальные поля (оборудование, контакты, геолокация и т.д.) включаются явно.
Настройка
Требования
- Zabbix: пользователь или API-токен с правами Read на нужные host groups.
- Ключ-АСТРОМ: АктивныйШлюз окружения с поддержкой Python-расширений.
- Расширение загружено и активировано в Расширениях.
Конфигурация endpoint’а
Обязательные параметры:
url— URL Zabbix (например,https://zabbix.example.com/zabbix)username/password— учётные данные или API-токен в полеpasswordgroups— список host groups для синхронизации (минимум одна)
Опциональные (в Advanced configuration):
timeout— таймаут запроса к Zabbix API (по умолчанию 5 сек)cert_verify— проверка SSL-сертификата (по умолчаниюfalse)refresh_*— интервалы обновления данных (хосты: 20 мин, проблемы: 15 мин)interfaces_key— ключ item’а с IP-адресами (по умолчаниюinterfaces)synchronize_problems— включить синхронизацию проблем (по умолчаниюtrue)problem_resend— интервал переотправки/закрытия проблем (по умолчанию 5 мин)tag_entities— имя тега для маппинга на сущности Ключ-АСТРОМ (по умолчаниюDT_Entity)dt_allow_davis_merge— разрешить объединение событий ИИ (по умолчаниюtrue)
Если требуется HTTP/HTTPS-прокси, он настраивается отдельно в блоке Proxy (proxy.url, proxy.user, proxy.password).
Интерфейс в Ключ-АСТРОМ
После первого цикла синхронизации доступны:
- Экраны: Zabbix Servers, Zabbix HostGroups, Zabbix Hosts
- Дашборд: Zabbix Overview (автоматически импортируется из пакета расширения)
- Метрики в Metrics browser по пространству имён
zabbix.* - События в разделах Events и Problems
Каждый Zabbix-хост отображает:
- Свойства (IP, инвентарь, теги)
- Ссылку на Zabbix UI (
zabbix_host_url) - Метрику
zabbix.problem_count.gauge - Привязанные события
Тегирование
Расширение автоматически добавляет тег technology: zabbix ко всем создаваемым сущностям.
Рекомендуется настроить дополнительные auto-tag’и:
- Глобальный тег Zabbix для всех
zabbix:*сущностей. - Теги по группам, например
ZabbixHG:Linux servers, с использованием entity selector:
type("zabbix:hostgroup"),entityName.equals("Linux servers")
и
type("zabbix:host"),toRelationships.calls(
type("zabbix:host_on_group"), fromRelationships.isChildOf( type("zabbix:hostgroup"), entityName.equals("Linux servers") ))
Ограничения
- Проблемы, живущие менее
problem_resendминут (по умолчанию 5), могут не попасть в Ключ-АСТРОМ. - Закрытие проблемы в Ключ-АСТРОМ происходит с задержкой до следующего цикла опроса.
- Порт не передаётся из Zabbix → невозможно точное совпадение сущности по (IP, port).
- Acknowledgements отображаются только в свойствах события, не влияют на состояние проблемы.
- Максимум 100 endpoint’ов на один экземпляр расширения.
Release Notes
Версия 0.1.27 (custom)
Версия плагина с префиксом custom.
Версия 0.1.27
Стандартная версия плагина.