Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

POSTGRES_EXPORTER_METRICS_FAIL 1С:Предприятие и СУБД

Мониторинг PostgreSQL с postgres_exporter и Prometheus: Настройка метрик

Обновлено: 26.08.2026 · Официальная документация ↗
  • Отсутствие прозрачности в реальном времени по количеству подключений, транзакций в секунду (TPS) и Cache Hit Ratio.
  • Внезапные остановки СУБД из-за переполнения диска файлами WAL или раздувания таблиц.
  • Невозможность локализовать временные аномалии задержек запросов ретроспективно.

1. Создание сервисного пользователя мониторинга в PostgreSQL

CREATE USER postgres_exporter WITH PASSWORD 'Exporter_Secure_Password123!';

-- Назначение прав для чтения системной статистики (PostgreSQL 10+)
GRANT pg_monitor TO postgres_exporter;

-- Разрешение подключения в pg_hba.conf
-- host all postgres_exporter 127.0.0.1/32 scram-sha-256

2. Установка и настройка postgres_exporter

Создайте конфигурационный файл окружения /etc/postgres_exporter/postgres_exporter.env:

DATA_SOURCE_NAME="postgresql://postgres_exporter:Exporter_Secure_Password123!@127.0.0.1:5432/postgres?sslmode=disable"
PG_EXPORTER_EXTEND_QUERY_PATH="/etc/postgres_exporter/queries.yaml"
PG_EXPORTER_DISABLE_DEFAULT_METRICS=false
PG_EXPORTER_DISABLE_SETTINGS_METRICS=false

3. Настройка Systemd сервиса (/etc/systemd/system/postgres_exporter.service)

[Unit]
Description=Prometheus PostgreSQL Exporter
After=network.target postgresql.service

[Service]
User=prometheus
Group=prometheus
EnvironmentFile=/etc/postgres_exporter/postgres_exporter.env
ExecStart=/usr/local/bin/postgres_exporter
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now postgres_exporter

4. Конфигурация Prometheus (prometheus.yml)

scrape_configs:
  - job_name: 'postgresql'
    scrape_interval: 15s
    static_configs:
      - targets: ['192.168.10.50:9187']
💡 Практика специалистов: Всегда включайте сбор настроек СУБД через PG_EXPORTER_DISABLE_SETTINGS_METRICS=false. Это позволит Grafana отображать метки текущих значений shared_buffers, work_mem и max_connections прямо на графиках.

Частые вопросы (FAQ)

Какие ключевые метрики PostgreSQL необходимо ставить на круглосуточный алерт?

1. pg_stat_database_xact_commit / rollback (падение транзакций); 2. pg_stat_activity_count (исчерпание max_connections); 3. pg_replication_lag (отставание реплики в секундах/байтах); 4. pg_database_size_bytes; 5. age(datfrozenxid) (риск Wraparound).

Почему postgres_exporter показывает ошибку 'permission denied for table' при сборе кастомных метрик?

Пользователю postgres_exporter требуются явные права GRANT SELECT на прикладные таблицы, если вы собираете бизнес-метрики через файл кастомных запросов queries.yaml.

Как рассчитывается Cache Hit Ratio в метриках Prometheus?

Формула PromQL: sum(rate(pg_stat_database_blks_hit[5m])) / (sum(rate(pg_stat_database_blks_hit[5m])) + sum(rate(pg_stat_database_blks_read[5m]))) * 100.

Может ли опрос exporter создавать существенную нагрузку на базу данных?

При стандартном интервале сбора (15–30с) нагрузка незаметна. Однако избегайте добавления тяжелых кастомных запросов со сканированием pg_stat_statements или больших таблиц без индексов.

Полезные материалы
Рекомендуем