Zabbix Exporter
Экспортёр метрик из Zabbix в формате Prometheus. Позволяет интегрировать существующую инфраструктуру мониторинга Zabbix с Астра Мониторинг.
Назначение
Zabbix Exporter периодически забирает числовые метрики из Zabbix API и отдаёт их по HTTP в формате Prometheus. Это позволяет:
Использовать существующие настройки мониторинга Zabbix
Объединить метрики из разных систем в единой платформе
Сохранить историю настроек и шаблонов Zabbix
Как это работает
Операции экспортера
Операция |
Назначение |
Интервал по умолчанию |
|---|---|---|
discover |
Обнаружение хостов и элементов данных, фильтрация по regex |
5 минут |
values |
Получение значений метрик и формирование output |
30 секунд |
Поток данных
Discover — запрашивает
host.getиitem.getиз Zabbix APIФильтрация — применяются include/exclude regex для хостов и ключей
Snapshot — метаданные сохраняются во временный снимок
Values — читает метаданные, забирает
lastvalueчанкамиMetrics — готовые метрики в формате Prometheus
Формат метрик
Пример выходных метрик:
# HELP zabbix_system_cpu_util CPU utilization percentage
# TYPE zabbix_system_cpu_util gauge
zabbix_system_cpu_util{host="web-server-01",hostid="10084",item_key="system.cpu.util",itemid="42336",env="production"} 15.500000
Автоматические метки
Метка |
Описание |
|---|---|
|
Имя хоста из Zabbix |
|
ID хоста в Zabbix |
|
Ключ элемента данных |
|
ID элемента данных |
Константные метки
Задаются в конфигурации и добавляются ко всем метрикам:
Метка |
Пример значения |
|---|---|
|
production |
|
zabbix-01 |
Формирование имени метрики
Имя метрики формируется по правилу: {prefix}{sanitized_item_key}
Специальные символы в ключе заменяются на
_Завершающие
_удаляются
Пример: ключ system.cpu.util с префиксом zabbix_ → метрика zabbix_system_cpu_util
Фильтрация метрик
При запросе данных (запрос к API)
При запросе к Zabbix API фильтруются только числовые значения:
value_type: 0— floatvalue_type: 3— unsigned int
После получения данных (фильтр по Regex)
После получения данных применяются фильтры из конфигурации:
Фильтр |
Описание |
|---|---|
|
Оставить только хосты, соответствующие regex |
|
Исключить хосты, соответствующие regex |
|
Оставить только ключи, соответствующие regex |
|
Исключить ключи, соответствующие regex |
Лимиты
max_metrics_per_host— максимальное количество метрик на один хост
Установка
Установка возможна как из внутренних репозиториев Астры, так и локально из репозитория развёрнутого бекенда Астра Мониторинг версии 1.3.1+.
Локальная установка
В разделе редактирования агента нажмите «добавить экспортер» и выберите zabbix_exporter.
Онлайн установка из репозиториев Астры
Требуется доступ до ресурса https://dl.astralinux.ru.
В разделе редактирования агента нажмите «добавить экспортер» и введите zabbix_exporter.
Примечание
Настройка экспортера для обоих вариантов установки одинакова.
Конфигурация
Полный пример конфигурационного файла
base:
address: "0.0.0.0:9102"
schedule:
jitter: 5s
jobs:
discover:
enabled: true
run_on_start: true
interval: 5m
timeout: 60s
values:
enabled: true
run_on_start: false
interval: 30s
timeout: 20s
prom:
prefix: "zabbix_"
const_labels:
env: "production"
instance: "zabbix-01"
zabbix:
url: "http://zabbix-host:8080/api_jsonrpc.php"
token: "your-api-token"
timeout: 30s
limits:
max_metrics_per_host: 1000
items_per_request: 1000
filters:
host_include_regex: ""
host_exclude_regex: ""
item_key_include_regex: ""
item_key_exclude_regex: ""
Описание параметров
Базовые настройки
Параметр |
Описание |
По умолчанию |
|---|---|---|
|
Адрес и порт для HTTP-сервера |
|
Расписание
Параметр |
Описание |
По умолчанию |
|---|---|---|
|
Случайная задержка для предотвращения синхронизации |
|
|
Интервал обнаружения хостов и items |
|
|
Таймаут запроса discover |
|
|
Запускать при старте |
|
|
Интервал сбора значений |
|
|
Таймаут запроса values |
|
Prometheus
Параметр |
Описание |
По умолчанию |
|---|---|---|
|
Префикс для всех метрик |
|
|
Константные метки |
— |
Zabbix
Параметр |
Описание |
По умолчанию |
|---|---|---|
|
URL Zabbix API |
— |
|
API токен авторизации |
— |
|
Таймаут запросов к API |
|
|
Макс. метрик на хост |
|
|
Items за один запрос |
|
Переменные окружения
Конфигурацию можно переопределить через переменные окружения:
Переменная |
Аналог в конфиге |
|---|---|
|
|
|
|
|
|
|
|
|
|
Запуск
Через конфигурационный файл агента
exporters:
exporters:
- name: zabbix-exporter
start_type: args
args: "--config /etc/zabbix-exporter/config.yaml"
address: 0.0.0.0:9102
labels:
component: zabbix
Вручную через CLI
./zabbix-exporter --config config.yaml
CLI-флаги
Флаг |
Сокращение |
Описание |
|---|---|---|
|
|
Путь к YAML-конфигу |
|
|
Адрес прослушивания (переопределяет |
Эндпоинты
Эндпоинт |
Описание |
|---|---|
|
Метрики в формате Prometheus |
|
Проверка работоспособности (200 OK) |
Проверка работы
После запуска метрики будут доступны по адресу:
http://localhost:9102/metrics
Примечание
Замените localhost на IP-адрес хоста с экспортером.
Примеры фильтров
Сбор метрик только с production серверов
zabbix:
filters:
host_include_regex: "prod-.*"
Исключение тестовых хостов
zabbix:
filters:
host_exclude_regex: "test-.*|dev-.*"
Сбор только CPU и памяти
zabbix:
filters:
item_key_include_regex: "system\\.cpu\\..*|vm\\.memory\\..*"
Комбинированный фильтр
zabbix:
filters:
host_include_regex: "prod-.*"
host_exclude_regex: ".*-backup"
item_key_include_regex: "system\\..*|net\\..*"
item_key_exclude_regex: ".*\\.log"
Требования к Zabbix
Версия Zabbix 5.0+
Включённый JSON-RPC API
API токен с правами чтения хостов и элементов данных