Проверка PostgreSQL
Проверка PostgreSQL создаётся в дашборде и выполняется агентом рядом с базой. Строка подключения хранится только локально в agent.yaml на вашем хосте и на сервер Flaree не отправляется. В задании проверки указывается лишь connectionRef — имя строки из секции connections:.
Предварительные требования
-
Агент Flaree установлен и в статусе Online (см. установку на Linux).
-
Тариф Pro: проверки баз данных недоступны на Starter (там только http, tcp и heartbeat).
-
Сетевая доступность от хоста агента до PostgreSQL (по умолчанию TCP 5432).
-
Read-only пользователь с правами на системные представления:
CREATE ROLE flaree_ro WITH LOGIN PASSWORD '<пароль>';GRANT pg_monitor TO flaree_ro;Роли
pg_monitorдостаточно для всех видов проверок, включая чтениеpg_stat_replication.
Минимальная конфигурация
Локально, в /etc/flaree-agent/agent.yaml, опишите строку подключения:
connections:
main_db: "Host=10.0.0.5;Port=5432;Username=flaree_ro;Password=<пароль>;Database=app"
В дашборде: Агенты → ваш агент → Назначенные проверки → Новая проверка, тип postgres. В JSON-конфиге задания укажите имя из connections::
{ "connectionRef": "main_db" }
Агент подтянет задание при следующей синхронизации конфига (каждые 30 секунд) и начнёт выполнять SELECT 1 с заданным интервалом.
Полная конфигурация
Чекер поддерживает три вида проверок через массив checks:
{
"connectionRef": "main_db",
"checks": ["liveness", "replication_lag", "connections"],
"maxReplicationLagBytes": 10485760
}
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
connectionRef | string | — | Имя строки подключения из connections: в agent.yaml. Обязателен. |
checks[] | array | ["liveness"] | Виды проверок: liveness, replication_lag, connections. |
maxReplicationLagBytes | number | без лимита | Порог отставания реплики в байтах; при превышении проверка падает с ошибкой replication_lag_exceeded. |
Что делает каждая проверка:
liveness—SELECT 1; падает, если соединение или запрос не прошли.replication_lag— максимумpg_wal_lsn_diff()поpg_stat_replication; значение публикуется в метаданных результата какreplication_lag_bytes.connections— число сессий текущей базы изpg_stat_activity; публикуется какconnections.
Интервал и таймаут задаются в форме проверки в дашборде, а не в JSON.
Проверка работы
- Подключитесь к базе с хоста агента теми же реквизитами, что указали в
connections:. - Убедитесь, что счётчик проверок с
type="postgres"растёт на локальных метриках агента. - Откройте компонент в дашборде — статус станет Operational в течение одного-двух интервалов.
psql "host=10.0.0.5 port=5432 user=flaree_ro dbname=app" -c "SELECT 1"
curl -s http://127.0.0.1:9090/metrics | grep 'type="postgres"'
# flaree_agent_checks_total{type="postgres",ok="true"} 12
Troubleshooting
- Проверка не доходит до агента или компонент без данных — чек-лист нет данных.
- Ошибка
unknown_connection:main_dbв результате — имя вconnectionRefне совпадает с ключом вconnections:; после правкиagent.yamlперезапустите агента. - Ошибка
missing_connectionRef— в JSON-конфиге задания нет поляconnectionRef.
Пароль из connections: остаётся на вашем хосте. Бэкенд Flaree видит только имя main_db и результат проверки.
Связанные страницы: MySQL · Redis · концепция агента.