6.8. Интеграция с Zabbix #
Zabbix — это популярная платформа мониторинга для отслеживания ИТ-инфраструктуры и визуализации её состояния. Если на машине развёрнут Postgres Pro, может возникнуть необходимость отправлять метрики, собранные с этого экземпляра СУБД, в Zabbix. Один из распространённых инструментов для решения этой задачи — mamonsu — активный агент для сбора и отправки метрик в Zabbix, написанный на Python. pgpro-otel-collector также можно использовать для этой цели.
6.8.1. Настройка Zabbix #
mamonsu и pgpro-otel-collector придерживаются одинаковой схемы экспорта метрик в Zabbix. Эта схема показана на Рисунке 6.1.
Рисунок 6.1. Схема экспорта метрик в Zabbix

Здесь:
Template (Шаблон) — это шаблон, который необходимо загрузить пользователю перед запуском активного агента.
Active agent (Активный агент) — это служба, которая отправляет значения метрик по протоколу sender.
В mamonsu шаблон генерируется следующей командой:
mamonsu zabbix template export template.xml
В pgpro-otel-collector готовый шаблон поставляется вместе с пакетом установки. За инструкциями по установке pgpro-otel-collector обратитесь к Главе 5.
Чтобы импортировать шаблон, выполните шаги ниже.
Перейдите на вкладку Templates (Шаблоны) в разделе Data collection (Сбор данных).
Нажмите кнопку Import (Импорт) в правом верхнем углу. Обратитесь к Рисунку 6.2.
Рисунок 6.2. Шаблон Zabbix

После успешного импорта шаблона перейдите на вкладку Hosts (Узлы сети) и нажмите Create host (Создать узел сети) в правом верхнем углу, как показано на Рисунке 6.3.
Рисунок 6.3. Узел сети Zabbix

Заполните поля следующим образом:
Host name (Имя узла сети):
PrometheusTemplates (Шаблоны):
OTel TemplateHost groups (Группы узлов сети):
Prometheus
Нажмите кнопку Add (Добавить). Узел сети с нужным шаблоном успешно создан.
6.8.2. Настройка экспортёра zabbix #
Теперь настроим экспортёр zabbix в pgpro-otel-collector:
В разделе конфигурации
zabbixexporterукажите адрес и порт, на которых расположен Zabbix. Адрес узла по умолчанию задаётся как имя машины, на которой развёрнут pgpro-otel-collector. В этом примере адрес узла —Prometheus:receivers: postgrespro: endpoint: postgres_host:5432 database: postgres username: postgres password: postgres collection_interval: 60s initial_delay: 1s max_threads: 3 plugins: version: enabled: true databases: enabled: true databases: - name: postgres exporters: zabbixexporter: endpoint: zabbix_host:10051 # Заполнить адрес host: Prometheus # Заполнить адрес узла при необходимости batch_max_size: 100 # Задать количество метрик, отправляемых в одном запросе к Zabbix service: pipelines: metrics: receivers: - postgrespro exporters: - zabbixexporterЗа подробностями настройки ресивера
postgresproобратитесь к разделу Working with Metrics.Отредактируйте файл службы:
sudo systemctl edit --full pgpro-otel-collector.service
Измените путь к файлу конфигурации:
... [Service] ... ExecStart=/usr/bin/pgpro-otel-collector --config /etc/pgpro-otel-collector/zabbix.yml ...
Перезапустите службу и проверьте её статус:
sudo systemctl restart pgpro-otel-collector.service sudo systemctl status pgpro-otel-collector.service
В журналах должны отображаться следующие записи, указывающие на успешную доставку метрик в Zabbix:
2025-09-23T14:28:21.855+0300 info zabbixexporter/exporter.go:64 send discovery to zabbix succeeded {"resource": {"service.instance.id": "0440f9d8-00de-427a-a8af-19e81d6d080a", "service.name": "pgpro-otel-collector", "service.version": "v0.4.0"}, "otelcol.component.id": "zabbixexporter", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "processed": 2, "failed": 0, "total": 2, "spent_seconds": 0.000083} 2025-09-23T14:28:33.199+0300 info zabbixexporter/metrics_queue.go:88 send metrics to zabbix succeeded {"resource": {"service.instance.id": "0440f9d8-00de-427a-a8af-19e81d6d080a", "service.name": "pgpro-otel-collector", "service.version": "v0.4.0"}, "otelcol.component.id": "zabbixexporter", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "processed": 33, "failed": 0, "total": 33, "spent_seconds": 0.000229}Проверьте наличие данных на вкладке Latest data (Последние данные) в разделе Monitoring (Мониторинг). Данные должны успешно отправляться в Zabbix (Рисунок 6.4).
Рисунок 6.4. Мониторинг Zabbix

6.8.3. Советы по миграции с mamonsu #
Обратите внимание, что ключи элементов, отправляемые pgpro-otel-collector, отличаются от ключей mamonsu:
pgpro-otel-collector:
postgresql.databases.size_bytes[postgres]mamonsu:
pgsql.db.size["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","postgres"]
Набор метрик также отличается. Проверьте правильность ключей в существующих используемых средствах автоматизации, если они есть. Шаблон, поставляемый с pgpro-otel-collector, не содержит графиков или прототипов графиков. Поэтому рекомендуется использовать связку экспортёра prometheus, Prometheus и Grafana.