
Если вы работаете с базами данных, то вам определенно стоит иметь понимание о производительности кластера СУБД. Для этого можно использовать базовые метрики. А можно — метрики от DBaaS в сочетании с Grafana. Они позволяют строить кастомные графики, которые могут быть полезны в той или иной ситуации.
Привет! Меня зовут Рамиль Адильбеков, я DevOps-инженер в Selectel. В этой статье покажу, как можно настроить базовый стек Prometheus/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.
Получение токена
Токен предоставляет доступ к метрикам всех кластеров в проекте в рамках одного пула. Для получения токена перейдите в панели управления в карточку кластера, вкладка Мониторинг. Затем нажмите на кнопку Создать токен.

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

Сохраните его, он пригодится в следующих этапах.

Игровой сервер с криперами и порталом в Незер. Добывайте ресурсы, стройте объекты, исследуйте мир Selectel в Minecraft и получайте призы.
Установка 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.

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

Заключение
Дашборд все еще улучшается, но базовые данные можно увидеть уже сейчас. Приглашаю вас в комментарии — активное и конструктивное обсуждение всегда идут на пользу. Если вы ранее уже пользовались метриками облачных баз данных Selectel и сформировали свои запросы PromQL, также поделитесь ими. Так мы улучшим дашборд и сделаем его еще более функциональным и информативным.