Существует множество проприетарных сервисов мониторинга БД, но есть отличная альтернатива с открытым исходным кодом — Percona Monitoring and Management (PMM). Я подробно расскажу, как настроить мониторинг с его помощью.
У пакета Percona Monitoring and Management есть 3 основные фичи: мониторинг, алерты и query analytics.
Мониторинг
Сразу после настройки PMM можно использовать много дефолтных дашбордов (Интерфейс - Grafana). В этих стандартных дашбордах уже отображается информация:
-
О вашем сервере (на котором развёрнута бд)
CPU load
RAM usage
Network usage
Disk usage
Disk space forecast
Uptime
И т.д.
-
О вашей БД
Connections
Queries Per Second
Uptime
И т.д.
![](https://habrastorage.org/getpro/habr/upload_files/531/d23/8d0/531d238d031df3f33b07def6e2b67e5d.png)
Эти дашборды уже достаточно информативны, но вы можете настроить их под себя.
Алерты
В PMM можно настроить уведомления, если что-то идёт не так. Например, если CPU load превышает 90% или прогноз времени до полного заполнения диска меньше недели.
Query analysis
Главная, на мой взгляд, функция PMM – это query analytics. PMM агрегирует запросы к БД и считает аналитику по ним. Так можно найти, какие запросы сильнее всего нагружают базу данных, оптимизировать их и сэкономить денег на инфраструктуре.
Как установить PMM – 5 шагов
PMM состоит из двух частей
Client (Agent)
Server
PMM Agent устанавливается на хост вашей БД. Он будет собирать телеметрию и отсылать на PMM Server.
![](https://habrastorage.org/getpro/habr/upload_files/cf9/d83/ea0/cf9d83ea035ca7fc6bf92fbf173d956b.png)
Процесс настройки мониторинга БД с помощью PMM можно разделить на 5 этапов:
Создать PMM Server
Установить PMM Agent
Подключить PMM Agent к PMM Server
Подключить DB к PMM Agent
Customise Dashboards and Alerts
1. Создаём PMM Server
В отличие от большинства cloud-based систем мониторинга, здесь об облаке (PMM Server) нужно позаботиться самому. Самый простой способ – это получить fully managed PMM Server на hosetedpmm.com.
Если вы хотите настроить PMM Server самостоятельно, вам потребуется сервер (VPS/VDS) соответствующий системным требованиям PMM. Он будет обрабатывать и хранить данные телеметрии, присланные агентами, поэтому нужен хост с 2 Гб RAM и диск из расчета 1 Гб на телеметрию с одной бд в неделю.
Когда вы подготовили хост, можно установить PMM Server. Для этого используйте easy-install script запустив команду:
wget -O https://www.percona.com/get/pmm | /bin/bash
Этот скрипт:
Установит Docker (если еще не установлен).
Остановит все запущенные PMM Server Docker контейнеры, если такие есть
Скачает и запустит Docker image PMM Server последней версии.
После установки PMM Server возможно потребуется настроить сеть. Если всё настроено корректно, вы сможете зайти в веб интерфейс PMM Server.
![](https://habrastorage.org/getpro/habr/upload_files/6e7/be5/2e7/6e7be52e721adcb64b86c90f1dc43965.png)
Используйте admin/admin чтобы войти. Вы попадёте на главный дашборд.
![](https://habrastorage.org/getpro/habr/upload_files/aa7/5de/5a6/aa75de5a6fa5891dd3993a1a2656f80e.png)
Как видите, тут уже отображается информация про хост, на котором развернут PMM Server и телеметрия его базы данных. Всё, PMM Server готов и работает.
2. Устанавливаем PMM Agent
PMM Agent нужно установить на хост с базой данных. Для этого потребуется ssh доступ и права администратора.
Есть несколько способов установить PMM Agent:
Docker
Package manager
Binary package
Не все готовы устанавливать докер на машину с бд, а установку из Binary package сложно обновлять. Поэтому многие предпочитают вариант под номером 2 - установку из репозитория. Её и рассмотрим.
Для установки PMM агента нужно запустить несколько команд в терминале машины с бд. Они отличаются в зависимости от ОС:
-
Debian-based
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb dpkg -i percona-release_latest.generic_all.deb apt update apt install -y pmm2-client
-
Red Hat-based
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum install -y pmm2-client
В большинстве случаевв проблем на этом этапе не возникает. PMM Agent установлен. Теперь нужно подключить его к PMM серверу.
3. Подключаем PMM Agent к PMM Server
Для подключения агента к серверу используется команда с логином, паролем и ip вашего PMM Server.
pmm-admin config --server-insecure-tls --server-url=https://*username*:*password*@*X.X.X.X*:443
Флаг --server-insecure-tls можно убрать, если добавить SSL сертификаты в PMM Server. Это может быть не просто, но очень важно для безопасности. Если вы сделали сервер на hostedpmm.com, там этой проблемы нет - сертификаты уже внутри.
После подключения PMM Agent к PMM Server, вы уже сможете видеть метрики машины, на которой работает ваша бд.
![](https://habrastorage.org/getpro/habr/upload_files/fa8/fb1/d41/fa8fb1d4130c8331994583a9e209a7d1.png)
Но в метриках самой БД мы пока видим N/A. Чтобы увидеть здесь телеметрию из базы данных, нужно подключить к ней PMM Agent.
4. Подключаем БД к PMM Agent
Для PMM агента лучше создать отдельного юзера в бд без админских прав. Настройка немного отличается в зависимости от БД, но смысл один.
Например для MySQL с именем пользователя pmm и паролем pass
CREATE USER 'pmm'@'localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD, BACKUP_ADMIN ON *.* TO 'pmm'@'localhost';
После этого через UI PMM Server нужно добавить service MySQL, используя логин и пароль этого юзера.
![](https://habrastorage.org/getpro/habr/upload_files/697/ac8/1d1/697ac81d1a0beb4599e8ef6d19711632.jpeg)
После этого метрики вашей бд должны начать собираться. Базовая настройка завершена.
5. Настраиваем дашборды и алерты
Много дашбордов доступны из коробки. Например можно смотреть прогноз, когда закончится место на диске или использовать Query analytics для поиска проблемных запросов.
![](https://habrastorage.org/getpro/habr/upload_files/09c/056/896/09c056896115cbb29b77dea7052ff998.png)
Также можно добавить алерты на случай, если что-то пойдёт не так.
![](https://habrastorage.org/getpro/habr/upload_files/419/17a/c3d/41917ac3de311e09cbf113e0adf29641.png)
Всё готово! Open source мониторинг БД настроен. Это мощный бесплатный инструмент, с помощью которого можно улучшить доступность сервиса, оптимизировать приложения и сэкономить на инфраструктуре.
Если будете настраивать PMM для себя, попробуйте воспользоваться hostedpmm.com - это мой проект. Выглядит так:
![](https://habrastorage.org/getpro/habr/upload_files/4c9/2a9/7fb/4c92a97fbc26675a31827d44a77a7224.gif)
Там 1 месяц бесплатно для всех - можно попробовать потыкать, понять подходит вам или нет. А если напишите мне (sergei.krupnik@hostedpmm.com), что вы с Хабра, я начислю вам ещё бонус в $200.
Спасибо, что дочитали. Успехов!
Комментарии (5)
a_nikitin
23.10.2022 16:55Это, конечно, всё хорошо, но на самом сайте перконы есть вот такое замечание:
https://docs.percona.com/percona-monitoring-and-management/setting-up/client/postgresql.html
While we recommend use of the newer pg_stat_monitor extension, be aware it is currently in beta phase and unsupported.
Veroncheg
кривая ссылка в разделе
Сами пробовали запускать?
Дальше не читал.
Krupnikas Автор
Спасибо, что нашли опечатки. Поправил.
Krupnikas Автор
Это ссылки заэскейпились при копировании из черновика
qant
О боже! Копипаст не работает! Это же нужно удалить какие-то символы из строки ВРУЧНУЮ!