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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Существует множество проприетарных сервисов мониторинга БД, но есть отличная альтернатива с открытым исходным кодом — 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

    • И т.д.

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

Алерты

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

Query analysis

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

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

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

  • Client (Agent)

  • Server

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

Процесс настройки мониторинга БД с помощью 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.

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

Как видите, тут уже отображается информация про хост, на котором развернут 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, вы уже сможете видеть метрики машины, на которой работает ваша бд.

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

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

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

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

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

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

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

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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А вы мониторите ваши БД?
100% Да 4
0% Нет 0
Проголосовали 4 пользователя. Воздержался 1 пользователь.
Источник: https://habr.com/ru/post/694724/


Интересные статьи

Интересные статьи

Я любитель Fallout 4. Эту игру можно расширять бесконечно, поэтому мне до сих пор, даже спустя семь лет, интересно к ней возвращаться. Я постоянно что-то или в неё добавляю, или изменяю. Когда у ...
Привет, Хабр! Мы, Юлия Лузганова HiJulia и Наталия Прудникова balzaant, аналитики в команде Business Intelligence Delivery Club. Наш департамент аналитики стремительно вырос за последние полтора г...
Я создал прототип системы удалённого мониторинга рабочих мест. Эта система позволяет организациям, адаптирующимся к ограничениям, связанным с COVID-19, осуществлять наблюдение за сотрудни...
Единый агент для всех популярных технологий, динамическое отслеживание изменений инфраструктуры, низкий оверхед, искусственный интеллект, оценка эффективности релизов, контекстный мон...
Тематика искусственного интеллекта, зародившаяся еще в 60-х годах, сейчас переживает просто сумасшедший бум. Компьютеры обыгрывают шахматистов и поклонников Го, порой точнее врача ставят диагнозы...