postgres_exporter
Репозиторий: postgres_exporter
Документация: Доступна в репозитории (по использованию экспортера и настройке собираемых метрик)
Экспортер для мониторинга серверов PostgreSQL. Может быть запущен как процесс, контейнер или как сервис.
Описание работы
postgres_exporter предоставляет метрики о работе серверов PostgreSQL.
Это стандартный Prometheus экспортер с HTTP-сервером для отображения метрик.
Он содержит
Эндпойнт /metrics
со стандартными метриками (go, proc, promhttp)
Подробные метрики PostgreSQL:
Состояние сервера и соединений
Производительность запросов
Использование буферов и кэшей
Репликация
Блокировки и ожидания
Запуск экспортёра
Возможна настройка через UI и через конфигурационный файл агента.
Важно
Для работы требуется:
Доступ к серверу PostgreSQL
Права пользователя для сбора статистики
Настроенные параметры мониторинга в postgresql.conf (если отключены)
Через конфигурационный файл агента
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"
Проверка работы
После запуска метрики будут доступны по адресу:
Примечание
Замените localhost на IP-адрес хоста с конфигурируемым агентом.
Необходимые настройки в postgresql.conf
Для корректной работы postgres_exporter требуется активировать сбор статистики в PostgreSQL.
Общий мониторинг:
# Запись информации о выполняемых запросах
track_activities = on
# Сбор статистики по таблицам и индексам
track_counts = on
# Тайминги операций ввода-вывода (требует pg_stat_statements)
track_io_timing = on
Для мониторинга запросов:
# Активирует модуль для анализа запросов
shared_preload_libraries = 'pg_stat_statements'
# Отслеживает все запросы (включая служебные)
pg_stat_statements.track = all
Для репликации (если используется):
# Минимальный уровень для мониторинга репликации
wal_level = replica
# Для реплик
hot_standby = on
Дополнительные параметры (опционально):
# Логирование контрольных точек
log_checkpoints = on
# Логирование подключений
log_connections = on
# Логирование отключений
log_disconnections = on
Без этих настроек экспортер не сможет собрать часть метрик (например, статистику по запросам или репликации).
Некоторые параметры (например, shared_preload_libraries) требуют перезагрузки сервера PostgreSQL.