Как следить за MySQL или MariaDB с помощью Prometheus и Grafana

Чтобы убедиться, что сервер MySQL/MariaDB работает правильно, необходимо внедрить мониторинг в инфраструктуру. Это позволит вам оптимизировать производительность, выявить проблемы/узкие места и убедиться, что ваша база данных здорова. С помощью Prometheus и Grafana вы можете достичь этих целей и создать красивую панель мониторинга для серверов MySQL.

В этом руководстве вы узнаете, как осуществлять мониторинг серверов MySQL/MariaDB с помощью Prometheus и Grafana. Вы настроите ‘prometheus-mysqld-exporter’ для генерации метрик и добавите мониторинг конечных точек на сервер Prometheus. После этого вы создадите новую панель Grafana для мониторинга MySQL.

Настройка пользователя MySQL/MariaDB

Для мониторинга сервера MySQL/MariaDB необходимо создать нового выделенного пользователя MySQL. Этот пользователь будет обладать наименьшими привилегиями, такими как PROCESS, REPLICATION CLIENT и SELECT для всех ваших баз данных.

В этом разделе вы создадите нового пользователя MySQL для мониторинга вашего сервера MySQL.

Войдите на свой сервер MySQL/MariaDB, выполнив следующие действия. Введите свой ‘root‘ пароль при появлении запроса.

sudo mysql -u root -p

Теперь выполните следующие запросы, чтобы создать нового пользователя MySQL ‘prometheus‘ с ‘unix_socket’ аутентификация. Этот пользователь будет иметь привилегии для просмотра процессы, клиенты репликации, и выберите во всех базах данных на сервере MySQL.

CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;

создать пользователя mysql

Далее выполните запрос ниже, чтобы проверить пользователя MySQL ‘prometheus@localhost‘. Вы увидите символ ‘prometheus‘ пользователь с привилегиями SELECT, PROCESS и BINLOG MONITOR в качестве клиента репликации.

SHOW GRANTS FOR 'prometheus'@'localhost';

Введите ‘выйти из игры‘ для выхода из сервера MySQL/MariaDB.

проверка пользователя mysql

Установка prometheus-mysqld-exporter

В качестве опции можно использовать ‘prometheus-mysqld-exporter‘ – это экспортер для метрик MySQL. Он поддерживает MySQL >= 5.6 и MariaDB >= 10.3. Чтобы использовать ‘prometheus-mysqld-exporter’, вам нужно установить его на ваш сервер MySQL.

В этом примере сервер MySQL работает на сервере Debian 12. И по умолчанию ‘prometheus-mysqld-exporter’ доступен в официальном репозитории Debian, поэтому мы установим его через APT. Если вы используете другой дистрибутив, вы можете скачать и установить его вручную для GitHub.

Сначала выполните приведённую ниже команду, чтобы обновить индекс пакетов Debian.

sudo apt update

обновить репо

Как только репозиторий будет обновлен, установите ‘prometheus-mysqld-exporter‘ с помощью следующей команды. Введите ‘Y‘, чтобы подтвердить установку.

sudo apt install prometheus-mysqld-exporter

установить prometheus-mysqld-exporter

После завершения установки запустите команду ‘systemctl‘ команда ниже, чтобы перезагрузить менеджер systemd.

sudo systemctl daemon-reload

Затем вы можете запустить и включить ‘prometheus-mysqld-exporter‘ с помощью следующей команды. После этого служба ‘prometheus-mysqld-exporter’ должна быть запущена и включена в вашей системе.

sudo systemctl enable --now prometheus-mysqld-exporter

Добавление пользователя MySQL в prometheus-mysqld-exporter

Теперь, когда вы создали пользователя MySQL и установили ‘prometheus-mysqld-exporter’. Следующим шагом будет добавление вашего MySQL в конфигурацию ‘prometheus-mysqld-exporter’. Это позволит вам генерировать метрики вашего сервера MySQL и открывать конечную точку на стандартном порту ‘9104’.

Откройте файл ‘/etc/default/prometheus-mysqld-exporter‘ со следующим ‘nano‘ редактор.

sudo nano /etc/default/prometheus-mysqld-exporter

Снимите комментарий с ‘ИМЯ_ИСТОЧНИКА_ДАННЫХ‘ переменная окружения для интеграции MySQL с ‘prometheus-mysqld-exporter‘. В этом примере пользователь MySQL ‘prometheus‘ будет использоваться для мониторинга сервера MySQL через ‘mysqld.sock‘ файл.

DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"

Сохраните файл и выйдите из редактора.

Теперь запустите программу ‘systemctl‘ команда ниже, чтобы перезапустить ‘prometheus-mysqld-exporter‘ и примените изменения. А затем проверьте ее статус, чтобы убедиться, что она запущена.

sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter

Ниже вы можете видеть, что ‘prometheus-mysqld-exporter’ запущен.

настройка prometheus-mysql-exporter

Наконец, откройте веб-браузер и зайдите на сайт http://192.168.10.41:9104/. Это конечная точка по умолчанию для ‘prometheus-mysqld-exporter‘. Если настройка прошла успешно, будет сгенерирована метрика, которая будет показана следующим образом:

сгенерированная метрика

Добавление конечной точки prometheus-mysqld-exporter в Prometheus

Теперь, когда ‘prometheus-mysqld-exporter‘ конфигурация завершена, и метрика сгенерирована. Теперь вам нужно добавить параметр ‘prometheus-mysqld-exporter‘ в качестве конечной точки на вашем сервере Prometheus. В данном руководстве используется ‘prometheus-mysqld-exporter‘ конечная точка доступна по адресу ‘192.168.10.41:9104‘.

Если у вас нет сервера Prometheus, установите его через Как установить Prometheus и Node Exporter на Debian 12

Перейдите на ваш сервер Prometheus и откройте конфигурацию ‘/etc/prometheus/prometheus.yml‘ файл с помощью редактора ‘nano’.

sudo nano /etc/prometheus/prometheus.yml

Внутри файла ‘scrape_configs‘, добавьте конечную точку вашего ‘prometheus-mysqld-exporter‘ вот так. Для этого примера используется ‘prometheus-mysqld-exporter‘ запущен на ‘сервер1‘ с IP-адресом и портом ‘192.168.10.41:9104‘.

scrape_configs:

– job_name: server1
static_configs:
– targets: [‘192.168.10.41:9104’]
labels:
alias: db1

Сохраните файл и выйдите из редактора после завершения работы.

Теперь запустите следующую команду ‘systemctl‘ команда для перезапуска ‘prometheus‘ и примените изменения.

sudo systemctl restart prometheus

Наконец, откройте панель управления сервером Prometheus и выберите ‘Статус > Цели‘ меню. Убедитесь, что вы видите ‘сервер1‘, который является конечной точкой вашего мониторинга MySQL.

prometheus с конечной точкой экспортера mysqld

Настройка Grafana Dashboard для сервера MySQL

После добавления конечной точки ‘prometheus-mysqld-exporter’ на сервер Prometheus вы теперь готовы создать дашборд Grafana для мониторинга сервера MySQL. В этом разделе вы импортируете дашборд мониторинга MySQL через GrafanaLabs.

Если у вас не установлена Grafana, установите ее с помощью How to Install Grafana and Prometheus on Ubuntu 24.04

На приборной панели Grafana нажмите кнопку ‘Dashboard > New > Import‘ меню. В этом примере мы будем использовать шаблоны Grafana от GrafanaLabs для мониторинга сервера MySQL.

Скопируйте идентификационный номер Grafana и вставьте его, затем нажмите ‘Загрузить‘ для подтверждения.

импорт приборной панели

Теперь выберите ‘Прометей‘ в качестве источника данных и нажмите кнопку ‘Импорт‘.

импортировать приборную панель

В случае успеха вы увидите приборную панель для мониторинга MySQL/MariaDB с помощью Prometheus и Grafana.

панель мониторинга mysql

Заключение

Поздравляем! Вы завершили мониторинг сервера MySQL/MariaDB с помощью Prometheus и Grafana. Вы провели мониторинг сервера MySQL с помощью ‘prometheus-mysqld-exporter’ и сгенерировали метрики для MySQL. Вы также добавили ‘prometheus-mysqld-exporter’ в качестве конечной точки на ваш сервер Prometheus. Наконец, вы создали приборную панель Grafana для мониторинга сервера MySQL.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *