Использование метрик для мониторинга Managed PostgreSQL
В этой статье посмотрим, как можно настроить базовый стек Prometheus/Grafana, подключить метрики от кластера облачных баз данных и загрузить дашборд.
Если вы работаете с базами данных, то вам определенно стоит иметь понимание о производительности кластера СУБД. Для этого можно использовать базовые метрики. А можно — метрики от DBaaS в сочетании с Grafana. Они позволяют строить кастомные графики, которые могут быть полезны в той или иной ситуации.
Тестовый стенд и версии ПО
В качестве сервера мониторинга будет развернута виртуальная машина в облачной платформе Selectel.
Характеристики виртуального сервера:
- 2 vCPU,
- 4 ГБ RAM,
- сетевой диск: 5 ГБ, HDD Базовый.
Характеристики кластера Managed Database PostgreSQL:
- версия СУБД: PostgreSQL 17;
- конфигурация: 2 vCPU, 4 ГБ RAM, 32 ГБ;
- количество нод: 3.
Кластер и виртуальный сервер подключены к одной приватной сети для обеспечения доступности подключения метрик.
Версии ПО:
- ОС: Debian 12 Bookworm;
- Prometheus: 3.4.2;
- Grafana: 11.6.3;
- Docker: 28.3.0.
Подготовка стека Prometheus/Grafana
В данной статье мы будем устанавливать Prometheus и Grafana при помощи Docker Compose.
Получение токена
Токен предоставляет доступ к метрикам всех кластеров в проекте в рамках одного пула. Для получения токена перейдите в панели управления в карточку кластера, вкладка Мониторинг. Затем нажмите на кнопку Создать токен.

После этого токен появится в списке.

Сохраните его, он пригодится в следующих этапах.
Установка Docker
В данном разделе приведен пример установки Docker для Debian 12. Если вы используете другой дистрибутив GNU/Linux, то вам следует ознакомиться с официальной документацией Docker.
Подключение репозитория
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Установка Docker и зависимостей
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Описание Docker Compose и конфигурационных файлов
Создайте директорию /app/monitoring в которой будет располагаться конфигурация Prometheus и Grafana:
mkdir -p /app/monitoring
cd /app/monitoring
Затем создайте файл docker-compose.yaml со следующим содержимым:
---
services:
prometheus:
image: prom/prometheus:v3.4.2
user: root
volumes:
- ./prometheus:/etc/prometheus/
- ./prometheus-data:/prometheus
container_name: prometheus
hostname: prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
ports:
- "9090:9090"
networks:
- infra
grafana:
image: grafana/grafana:11.6.3
user: root
depends_on:
- prometheus
volumes:
- ./grafana:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
ports:
- "3000:3000"
networks:
- infra
networks:
infra:
Больше материалов об облачных базах данных
Конфигурация Prometheus
Создайте директорию prometheus:
mkdir prometheus
Далее необходимо создать файл prometheus.yaml со следующим содержимым:
global:
scrape_interval: 20s
evaluation_interval: 20s
scrape_configs:
- job_name: get-metrics-from-dbaas
scrape_interval: 1m
static_configs:
- targets:
- '<pool>.dbaas.selcloud.ru'
scheme: https
authorization:
type: Bearer
credentials: <monitoring_token>
Здесь <pool> — это пул, в котором находится ваш кластер БД (например ru-3), а <monitoring_token> — это токен для доступа к метрикам, который мы получали ранее.
Запуск Prometheus/Grafana
Для запуска стека вернитесь в директорию monitoring и запустите Docker Compose:
cd /app/monitoring
docker compose up -d
Затем перейдите в браузер и введите в адресной строке http://<Your_server_IP_or_fqdn>:3000. Здесь <Your_server_IP_or_fqdn> — это IP-адрес или хостнейм виртуального сервера.

По умолчанию имя пользователя для учетной записи — admin, пароль — admin.
Подключение datasource Prometheus в Grafana
Перейдите в Connections → Data sources.

Затем нажмите на кнопку Add new data source.

В списке выберите Prometheus.

Затем в поле Prometheus server URL укажите адрес сервера Prometheus. В нашем случае это http://prometheus:9090.

После этого нажмите на кнопку Save & test. Если подключение произойдет успешно, вы увидите следующее сообщение:

Импорт дашборда в Grafana
Для загрузки дашборда перейдите в раздел Dashboards, нажмите на кнопку New и выберите пункт Import.

В поле Find and import dashboards for common applications введите ID дашборда — 23611 и нажмите Load. После этого отобразится информация об импортируемом дашборде, как на скриншоте ниже. Укажите datasource prometheus.

После этого отобразится импортированный дашборд.
