Перейти к содержанию

Настройка экспорта метрик VK WorkSpace в Zabbix

Общее описание

Начиная с версии 26.2 в VK WorkSpace доступен экспорт метрик в Zabbix. Сервис обеспечивает полную автоматизацию настройки мониторинга в Zabbix на основе конфигурации сервисов.

Сервис самостоятельно выполняет следующие действия:

  • Создает шаблоны (Templates) в Zabbix;
  • Создает правила обнаружения (LLD — Low-Level Discovery);
  • Создает прототипы элементов данных (Item Prototypes);
  • Регистрирует хосты (Hosts) в Zabbix.

Все операции выполняются на основе данных, полученных из метрик Prometheus/Victoria Metrics. Ручная настройка каждого хоста или элемента мониторинга не требуется.

Связанные страницы

Настройка сервиса через установщик VK WorkSpace

  1. В веб-интерфейсе установщика VK WorkSpace нажмите кнопку в правом верхнем углу и выберите ПродуктыАдминистрирование.

  2. Включите опции:

  3. Нажмите кнопку Сохранить.

  4. Перейдите в НастройкиНастройки компонентов. Выберите в панели слева Конфигурация экспортера в Zabbix.

  5. В разделе Настройка подключения укажите данные для подключения к Zabbix и нажмите кнопку Сохранить. Учетная запись в Zabbix (параметр Zabbix API Token) должна иметь права для выполнения следующих действий:

    • Добавление и изменение Autoregistration actions (действий авторегистрации);
    • Добавление и изменение групп шаблонов VK WorkSpace;
    • Добавление и изменение групп хостов VK WorkSpace;
    • Привязка шаблонов к хостам VK WorkSpace и отвязка от них;
    • Добавление и изменение шаблонов VK WorkSpace.
  6. В разделе Настройка сервисов загрузите пользовательскую кофигурацию для отправки данных, либо сбросьте настройки до настроек по умолчанию или скачайте текущую конфигурацию. Формат YAML-файла и пример конфигурации описаны в разделе ниже.

  7. Перейдите в НастройкиПеременные окружения. Выберите в панели слева node-exporter.

  8. Для добавления новой переменной нажмите кнопку , затем нажмите Добавить. Заполните поля Название переменной и Значение переменной и нажмите кнопку Сохранить.

    Для отправки данных из node exporter необходимо изменить или добавить следующие переменные окружения:

    • ENABLE_NODE_EXPORTER = true — включение отправки данных из node exporter;
    • ZABBIX_NODE_EXPORTER_TEMPLATE_NAME = Linux by Prom — шаблон в Zabbix для обработки данных из node exporter, по умолчанию используется имя стандартного шаблона Linux by Prom.
  9. Выберите в панели слева 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-файл)

Формат 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_created
  mailetcd:
    - etcd_server_leader_changes_seen_total
    - etcd_mvcc_db_total_size_in_bytes
  calendarapi:
    - 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 }}.*"}'