Чтобы убедиться, что сервер 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 ‘prometheus@localhost‘. Вы увидите символ ‘prometheus‘ пользователь с привилегиями SELECT, PROCESS и BINLOG MONITOR в качестве клиента репликации.
SHOW GRANTS FOR 'prometheus'@'localhost';
Введите ‘выйти из игры‘ для выхода из сервера MySQL/MariaDB.
Установка 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
После завершения установки запустите команду ‘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’ запущен.
Наконец, откройте веб-браузер и зайдите на сайт 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.
Настройка 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/MariaDB с помощью Prometheus и Grafana. Вы провели мониторинг сервера MySQL с помощью ‘prometheus-mysqld-exporter’ и сгенерировали метрики для MySQL. Вы также добавили ‘prometheus-mysqld-exporter’ в качестве конечной точки на ваш сервер Prometheus. Наконец, вы создали приборную панель Grafana для мониторинга сервера MySQL.