Мониторинг баз данных · 4 min read · Sep 15, 2025

Как мониторить MySQL или MariaDB с помощью Prometheus и Grafana

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

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

Предварительные требования

Чтобы начать, убедитесь, что у вас есть следующее:

  • Установленный сервер MySQL/MariaDB
  • Пользователь без прав root с административными привилегиями
  • Установленные Prometheus и Grafana на вашем сервере

Настройка пользователя 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';

Введите ‘ quit ‘, чтобы выйти из сервера 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

Распакуйте переменную окружения ‘ DATA_SOURCE_NAME ‘, чтобы интегрировать 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 ‘ работает на ‘ server1 ‘ с 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 и выберите меню ‘ Status > Targets ‘. Убедитесь, что вы видите ‘ server1 ‘, который является конечной точкой вашего мониторинга MySQL.

Настройка панели Grafana для сервера MySQL

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

Если у вас нет установленной Grafana, установите ее с помощью Как установить Grafana и Prometheus на Ubuntu 24.04

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

Скопируйте номер ID Grafana и вставьте его, затем нажмите ‘ Load ‘, чтобы подтвердить.

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

Теперь выберите ‘ Prometheus ‘ в качестве вашего источника данных и нажмите ‘ Import ‘.

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

Если все прошло успешно, вы увидите панель для мониторинга MySQL/MariaDB с помощью Prometheus и Grafana.

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

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.