postgres_exporter


Репозиторий: postgres_exporter

Документация: Доступна в репозитории (по использованию экспортера и настройке собираемых метрик)

Экспортер для мониторинга серверов PostgreSQL. Может быть запущен как процесс, контейнер или как сервис.

Описание работы

postgres_exporter предоставляет метрики о работе серверов PostgreSQL.

Это стандартный Prometheus экспортер с HTTP-сервером для отображения метрик.

Он содержит

Эндпойнт /metrics со стандартными метриками (go, proc, promhttp)

Подробные метрики PostgreSQL:

  • Состояние сервера и соединений

  • Производительность запросов

  • Использование буферов и кэшей

  • Репликация

  • Блокировки и ожидания

Запуск экспортёра

Возможна настройка через UI и через конфигурационный файл агента.

Важно

Для работы требуется:

  1. Доступ к серверу PostgreSQL

  2. Права пользователя для сбора статистики

  3. Настроенные параметры мониторинга в postgresql.conf (если отключены)

Через конфигурационный файл агента

config.yml
exporters:
  - name: postgres_exporter
    start_type: args
    args: "--web.listen-address=0.0.0.0:9187 --data-source-name=postgresql://monitor_user:password@localhost:5432/postgres?sslmode=disable"
    address: 127.0.0.1:9187
    labels:
      component: postgres
      environment: production

name - должно совпадать с именем бинарного файла (postgres_exporter)

start_type - тип запуска экспортёра

args - основные аргументы:

address - адрес для опроса экспортёра агентом

labels - дополнительные лейблы:

component - идентификатор компонента

hostname - рекомендованный лейбл (по умолчанию hostname агента)

Так же возможно использование переменной окружения для указания подключения:

DATA_SOURCE_NAME=postgresql://rupost:rupost@?sslmode=disable&dbname=rupost&host=localhost&port=5432"

Проверка работы

После запуска метрики будут доступны по адресу:

http://localhost:9187/metrics

Примечание

Замените localhost на IP-адрес хоста с конфигурируемым агентом.

Необходимые настройки в postgresql.conf

Для корректной работы postgres_exporter требуется активировать сбор статистики в PostgreSQL.

Общий мониторинг:

postgresql.conf
# Запись информации о выполняемых запросах
track_activities = on
# Сбор статистики по таблицам и индексам
track_counts = on             
# Тайминги операций ввода-вывода (требует pg_stat_statements)
track_io_timing = on          

Для мониторинга запросов:

postgresql.conf
# Активирует модуль для анализа запросов
shared_preload_libraries = 'pg_stat_statements'  
# Отслеживает все запросы (включая служебные)
pg_stat_statements.track = all

Для репликации (если используется):

postgresql.conf
# Минимальный уровень для мониторинга репликации
wal_level = replica
# Для реплик
hot_standby = on

Дополнительные параметры (опционально):

postgresql.conf
# Логирование контрольных точек
log_checkpoints = on
# Логирование подключений
log_connections = on       
# Логирование отключений   
log_disconnections = on

Без этих настроек экспортер не сможет собрать часть метрик (например, статистику по запросам или репликации).

Некоторые параметры (например, shared_preload_libraries) требуют перезагрузки сервера PostgreSQL.