Мониторинг MySQL в Prometheus

Алгоритм действий состоит из следующих шагов:

1.Создание пользователя с необходимымы привилегиями для сбора метрик с mysql
2.Запуск MySQL-экспортера для сбора метрик с MySQL и отдачи их Prometheus-у
3.Настройка Prometheus-а для сбора метрик с MySQL-экспортера
4.Импортирование/настройка dashboard Grafana для визуализации метрик
5.Настрйка правил Prometheus для мониторинга MySQL показателей

Описание параметров, которые испоьзуются для поcтроения дашбоарада в Grafana, изложено в статье

 

1.Создание пользователя с необходимыми привилегиями для сбора метрик с mysql

Доступ для этого пользователя предоставим с Docker-подсети(172.16.0.0/12)
Запрос на mysql-контейнер будет идти с mysql-exporter-контейнера, который будет запущен в одной docker-сети с mysql-контейнером
Необходимо отметить, что mysql не понимает формат бесклассовой маршрутизации(CIDR) маски подсети, поэтому необходимо использовать стандартный тип маски( вместо 12 необходимо использовать 255.240.0.0)

 

2.Запуск MySQL-экспортера для сбора метрик с MySQL и отдачи их Prometheus-у

Если не используется docker-compose

Если используется docker-compose

Также здесь пробрасывается порт,на котором слушает запросы mysql-exporter наружу на, например, туннельный IP-адрес(10.130.15.2) и на порт, например,9104, чтобы Prometheus смог подключиться к с mysql-экспортеру для сбора метрик с него.

Определяем имя пользователя и пароль в файле с переменными — .env-файле, который читает docker-compose

Проверка синтаксиса docker-compose-файла

Создание и запуск mysql-exporter контейнера

Проверяем наличие запущенного mysql-exporter контейнера, который будет собирать метрики с mysql-сервера

С хоста, на котором запущен mysql-контейнер проверяем доступность метрик с mysql-экспортера

Список показателей достаточно длинный, поэтому вывел только их количество

С мониторинг хоста получаем такой же успешный ответ

 

3.Настройка Prometheus-а для сбора метрик с MySQL-экспортера

Добавляем mysql-экпортер в service discovery файл

Подключаем этот service discovery файл в Prometheus

Проверка синтаксиса конфиг.файла Prometheus и файлов с правилами

Перечитываем конф.файл Prometheus

После чего проверяем в Prometheus наличие новой цели для мониторинга
Prometheus->Status->Target

 

4.Импортирование/настройка dashboard Grafana для визуализации метрик
Импортируем дашбоард отсюда
https://grafana.com/grafana/dashboards/7362

Я слегка изменил его под свои задачи
MySQL-dashboard.zip

 

5.Настрйка правил Prometheus для мониторинга MySQL показателей

Добавляем несколько правил для мониторинга MySQL показателей
1.Запущен ли MySQL (mysql_is_running)
2.Максимального количества одновременных клиентских подключений (mysql_used_connections)
3.Текущего количества активных тредов(соединений, которые выполняются в данный момент, а не находятся в статусе idle(простоя))( mysql_active_threads)
4.Запущена ли репликация (mysql_replication_is_running)
5.Отставание репликации (mysql_replication_lagging)

 


Источник:

https://github.com/prometheus/mysqld_exporter
https://grafana.com/grafana/dashboards/7362
https://www.percona.com/doc/percona-monitoring-and-management/dashboard.mysql-overview.html

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика