Как настроить open-source мониторинг для вашей БД?

Существует множество проприетарных сервисов мониторинга БД, но есть отличная альтернатива с открытым исходным кодом — Percona Monitoring and Management (PMM). Я подробно расскажу, как настроить мониторинг с его помощью.

Как настроить open-source мониторинг для вашей БД?

У пакета 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
    - И т.д.

Эти дашборды уже достаточно информативны, но вы можете настроить их под себя.

Алерты

В PMM можно настроить уведомления, если что-то идёт не так. Например, если CPU load превышает 90% или прогноз времени до полного заполнения диска меньше недели.

Query analysis

Главная, на мой взгляд, функция PMM – это query analytics. PMM агрегирует запросы к БД и считает аналитику по ним. Так можно найти, какие запросы сильнее всего нагружают базу данных, оптимизировать их и сэкономить денег на инфраструктуре.

Как установить PMM – 5 шагов

PMM состоит из двух частей

  • Client (Agent)
  • Server

PMM Agent устанавливается на хост вашей БД. Он будет собирать телеметрию и отсылать на PMM Server.

Как настроить open-source мониторинг для вашей БД?

Процесс настройки мониторинга БД с помощью PMM можно разделить на 5 этапов:

  1. Создать PMM Server
  2. Установить PMM Agent
  3. Подключить PMM Agent к PMM Server
  4. Подключить DB к PMM Agent
  5. 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.

Как настроить open-source мониторинг для вашей БД?

Используйте admin/admin чтобы войти. Вы попадёте на главный дашборд.

Как настроить open-source мониторинг для вашей БД?

Как видите, тут уже отображается информация про хост, на котором развернут PMM Server и телеметрия его базы данных. Всё, PMM Server готов и работает.

2. Устанавливаем PMM Agent

PMM Agent нужно установить на хост с базой данных. Для этого потребуется ssh доступ и права администратора.

Есть несколько способов установить PMM Agent:

  1. Docker
  2. Package manager
  3. 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, вы уже сможете видеть метрики машины, на которой работает ваша бд.

Как настроить open-source мониторинг для вашей БД?

Но в метриках самой БД мы пока видим 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, используя логин и пароль этого юзера.

Как настроить open-source мониторинг для вашей БД?

После этого метрики вашей бд должны начать собираться. Базовая настройка завершена.

5. Настраиваем дашборды и алерты

Много дашбордов доступны из коробки. Например можно смотреть прогноз, когда закончится место на диске или использовать Query analytics для поиска проблемных запросов.

Как настроить open-source мониторинг для вашей БД?

Также можно добавить алерты на случай, если что-то пойдёт не так.

Как настроить open-source мониторинг для вашей БД?

Всё готово! Open source мониторинг БД настроен. Это мощный бесплатный инструмент, с помощью которого можно улучшить доступность сервиса, оптимизировать приложения и сэкономить на инфраструктуре.

Если будете настраивать PMM для себя, попробуйте воспользоваться hostedpmm.com - это мой проект. Выглядит так:

Там 1 месяц бесплатно для всех - можно попробовать потыкать, понять подходит вам или нет. А если напишите мне (sergei.krupnik@hostedpmm.com), что вы с vc.ru, я начислю вам ещё бонус в $200.

Спасибо, что дочитали. Успехов!

44
Начать дискуссию