Начиная с версии 26.2 в VK WorkSpace доступен экспорт метрик в Zabbix. Сервис обеспечивает полную автоматизацию настройки мониторинга в Zabbix на основе конфигурации сервисов.
Сервис самостоятельно выполняет следующие действия:
- Создает шаблоны (Templates) в Zabbix;
- Создает правила обнаружения (LLD — Low-Level Discovery);
- Создает прототипы элементов данных (Item Prototypes);
- Регистрирует хосты (Hosts) в Zabbix.
Все операции выполняются на основе данных, полученных из метрик Prometheus/Victoria Metrics. Ручная настройка каждого хоста или элемента мониторинга не требуется.
- Метрики инфраструктуры
- Метрики контейнеров
- Метрики PostgreSQL
- Метрики Tarantool
- Метрики MySQL
- Как работать с Victoria Metrics
-
В веб-интерфейсе установщика VK WorkSpace нажмите кнопку
в правом верхнем углу и выберите Продукты → Администрирование. -
Включите опции:
-
Нажмите кнопку Сохранить.
-
Перейдите в Настройки → Настройки компонентов. Выберите в панели слева Конфигурация экспортера в Zabbix.

-
В разделе Настройка подключения укажите данные для подключения к Zabbix и нажмите кнопку Сохранить. Учетная запись в Zabbix (параметр Zabbix API Token) должна иметь права для выполнения следующих действий:
- Добавление и изменение Autoregistration actions (действий авторегистрации);
- Добавление и изменение групп шаблонов VK WorkSpace;
- Добавление и изменение групп хостов VK WorkSpace;
- Привязка шаблонов к хостам VK WorkSpace и отвязка от них;
- Добавление и изменение шаблонов VK WorkSpace.
-
В разделе Настройка сервисов загрузите пользовательскую конфигурацию для отправки данных, либо сбросьте настройки до настроек по умолчанию или скачайте текущую конфигурацию. Формат YAML-файла и пример конфигурации описаны в разделе ниже.
-
Перейдите в Настройки → Переменные окружения. Выберите в панели слева node-exporter.
-
Для добавления новой переменной нажмите кнопку
, затем нажмите Добавить. Заполните поля Название переменной и Значение переменной и нажмите кнопку Сохранить.
Для отправки данных из node exporter необходимо изменить или добавить следующие переменные окружения:
- ENABLE_NODE_EXPORTER = true — включение отправки данных из node exporter;
- ZABBIX_NODE_EXPORTER_TEMPLATE_NAME = Linux by Prom — шаблон в Zabbix для обработки данных из node exporter, по умолчанию используется имя стандартного шаблона Linux by Prom.
-
Выберите в панели слева zabbix-exporter. В случае необходимости добавьте переменные (указаны значения по умолчанию):
- ZABBIX_AUTOREGISTER_MAX_RETRIES = 30 — количество попыток отправить запрос на регистрацию хоста;
- ZABBIX_ITEM_HISTORY_LIFETIME = 7d — история (хранить до) для прототипа элемента данных (item prototype);
- ZABBIX_ITEM_TRENDS_LIFETIME = 30d — динамика изменений (хранить до) для прототипа элемента данных (item prototype);
- ZABBIX_DISCOVERY_RULE_LIFETIME = 7d — удаление потерянных ресурсов для правила обнаружения (discovery rule);
- ZABBIX_DISCOVERY_RULE_ENABLED_LIFETIME = 1d — деактивация потерянных ресурсов для правила обнаружения (discovery rule);
- SEND_METRICS_INTERVAL = 60 — интервал отправки значений метрик;
- SEND_LLD_INTERVAL = 600 — интервал отправки данных LLD.
Формат YAML-файла конфигурации следующий:
# Раздел для обычных метрикservices:имя_сервиса:- имя_метрики1- имя_метрики2# Раздел для PromQL выраженийexpressions:# Маппинг ролей на шаблоны метрик для мониторинга на гипервизорах.# Доступные шаблонные переменные:# {{ .Hostname }} — имя контейнера (например, calendarapi1)# {{ .HypervisorHostname }} — имя гипервизора (например, hypervisor1)# {{ .HypervisorIP }} — Docker IP гипервизора (из Compute.Ip)# {{ .CalicoIP }} — Calico IP гипервизора (из Docker-сети через getComputeIps)# {{ .HypervisorHumanName }} — человекочитаемое имя гипервизора (из Compute.HumanName)имя_сервиса:- name: имя_выражения (в виде шаблона)expr: выражение (promql запрос в виде шаблона)
Пример конфигурации:
# Раздел для обычных метрикservices:biz-celery-beat:- celery_task_revoked_createdmailetcd:- etcd_server_leader_changes_seen_total- etcd_mvcc_db_total_size_in_bytescalendarapi:- calendarapi_gql_middleware_request_duration_seconds_count# Раздел для PromQL выраженийexpressions:# Маппинг ролей на шаблоны метрик для мониторинга на гипервизорах.# Доступные шаблонные переменные:# {{ .Hostname }} — имя контейнера (например, calendarapi1)# {{ .HypervisorHostname }} — имя гипервизора (например, hypervisor1)# {{ .HypervisorIP }} — Docker IP гипервизора (из Compute.Ip)# {{ .CalicoIP }} — Calico IP гипервизора (из Docker-сети через getComputeIps)# {{ .HypervisorHumanName }} — человекочитаемое имя гипервизора (из Compute.HumanName)addrbook-onedb:- name: '{{ .Hostname }} Tarantool: Арена памяти used ratio'expr: 'tnt_slab_arena_used_ratio{instance=~"{{ .Hostname }}.*"}'- name: '{{ .Hostname }} Tarantool: Квота памяти used ratio'expr: 'tnt_slab_quota_used_ratio{instance=~"{{ .Hostname }}.*"}'
Технический писатель: Москвина Анна