Мониторинг баз данных · 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.

Установка 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Распакуйте переменную окружения ‘ 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’ работает.

Наконец, откройте ваш веб-браузер и перейдите по адресу 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/MariaDB с помощью Prometheus и Grafana. Вы мониторили сервер MySQL с помощью ‘prometheus-mysqld-exporter’ и сгенерировали метрики для MySQL. Вы также добавили ‘prometheus-mysqld-exporter’ как конечную точку на ваш сервер Prometheus. Наконец, вы создали панель Grafana для мониторинга вашего сервера MySQL.
Get new posts in your inbox
No spam. Unsubscribe anytime.