MariaDB
MariaDB — форк MySQL с открытым исходным кодом, полностью совместимый с MySQL. Мониторинг MariaDB позволяет отслеживать производительность запросов, использование ресурсов, состояние репликации, блокировки и другие критичные метрики для обеспечения стабильной работы базы данных.
Примечание
Данные с экспортеров могут использоваться для различных продуктов.
Обратите внимание на использование тегов product и component в документации к конкретному продукту
Способы мониторинга
Для мониторинга MariaDB используется экспортер mysqld_exporter, который также поддерживает мониторинг MySQL.
mysqld_exporter
mysqld_exporter — стандартный экспортер для сбора метрик MariaDB и MySQL в формате Prometheus. Предоставляет детальную информацию о состоянии сервера, производительности запросов, использовании ресурсов и репликации.
Поддерживаемые версии
MariaDB >= 10.3
MySQL >= 5.6
Предупреждение
Не все методы сбора данных поддерживаются при использовании с MySQL/MariaDB версии ниже 5.6. Для полного функционала рекомендуется использовать более новые версии.
Шаг 1: Подготовка MariaDB
Для корректной работы mysqld_exporter требуется создать пользователя с необходимыми правами для сбора статистики.
Подключитесь к MariaDB как администратор:
-- Создайте пользователя для мониторинга
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'your_secure_password';
-- Предоставьте необходимые права
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
-- Для сбора метрик по таблицам и индексам (опционально)
GRANT SELECT ON performance_schema.* TO 'exporter'@'localhost';
-- Примените изменения
FLUSH PRIVILEGES;
Важно
Для работы mysqld_exporter требуется пользователь с правами PROCESS, REPLICATION CLIENT и SELECT. Не используйте суперпользователя root для мониторинга.
Шаг 2: Настройка подключения
Настройте строку подключения через переменную окружения или файл конфигурации.
Вариант 1: Переменная окружения
export DATA_SOURCE_NAME="exporter:your_secure_password@(localhost:3306)/"
Вариант 2: Файл .my.cnf
Создайте файл ~/.my.cnf с правами доступа 600:
[client]
user=exporter
password=your_secure_password
host=localhost
port=3306
chmod 600 ~/.my.cnf
Шаг 3: Настройка агента
Добавьте экспортер в конфигурацию агента через UI или файл конфигурации.
Через UI:
Откройте раздел настройки агента
Добавьте новый экспортер
mysqld_exporterУкажите параметры запуска
Через файл конфигурации:
exporters:
enabled: true
exporters:
- name: mysqld_exporter
start_type: args
args: "--web.listen-address=0.0.0.0:9104"
address: 127.0.0.1:9104
labels:
product: mariadb
component: database
environment: production
Примечание
Если используется переменная окружения DATA_SOURCE_NAME или файл .my.cnf, они должны быть доступны агенту при запуске экспортера.
Шаг 4: Проверка работы
Убедитесь, что метрики доступны:
curl http://localhost:9104/metrics
Должны отображаться метрики в формате Prometheus, включая метрики MariaDB.
Шаг 5: Визуализация
Рекомендуемый дашборд для Grafana:
MySQL Dashboard (ID: 14057)
Примечание
Подробнее о настройке mysqld_exporter читайте в официальной документации и на сайте Grafana.
Ключевые метрики для мониторинга
При настройке мониторинга обратите внимание на следующие группы метрик:
Производительность: время выполнения запросов, количество запросов в секунду, медленные запросы
Ресурсы: использование CPU, памяти, дискового пространства, размер баз данных
Соединения: количество активных соединений, максимальное количество соединений, время ожидания
Репликация: состояние реплик, задержки репликации, лаг репликации
Блокировки: количество блокировок, время ожидания блокировок, deadlocks
Буферы и кэши: использование InnoDB buffer pool, эффективность кэширования
Ошибки: количество ошибок в логах, ошибки подключений
Собираемые метрики mysqld_exporter
Ниже представлен список основных метрик, собираемых mysqld_exporter, с их описанием и назначением.
Метрики общего состояния (mysql_up, mysql_global_status_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Доступность MySQL/MariaDB (1 = доступен, 0 = недоступен) |
|
Gauge |
Время работы сервера в секундах |
|
Gauge |
Количество активных подключений |
|
Gauge |
Количество выполняющихся потоков |
|
Counter |
Общее количество запросов |
|
Counter |
Количество запросов (включая хранимые процедуры) |
|
Counter |
Количество медленных запросов |
|
Counter |
Количество SELECT запросов |
|
Counter |
Количество INSERT запросов |
|
Counter |
Количество UPDATE запросов |
|
Counter |
Количество DELETE запросов |
|
Counter |
Количество созданных временных таблиц |
|
Counter |
Количество временных таблиц, созданных на диске |
|
Counter |
Количество ожиданий блокировок таблиц |
|
Counter |
Количество попаданий в кэш открытых таблиц |
|
Counter |
Количество промахов в кэш открытых таблиц |
Метрики InnoDB (mysql_global_status_innodb_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Количество логических чтений из buffer pool |
|
Counter |
Количество физических чтений с диска |
|
Gauge |
Количество свободных страниц в buffer pool |
|
Gauge |
Общее количество страниц в buffer pool |
|
Gauge |
Количество страниц с данными в buffer pool |
|
Gauge |
Количество грязных страниц в buffer pool |
|
Counter |
Количество прочитанных строк InnoDB |
|
Counter |
Количество вставленных строк InnoDB |
|
Counter |
Количество обновленных строк InnoDB |
|
Counter |
Количество удаленных строк InnoDB |
|
Counter |
Объем прочитанных данных InnoDB (байты) |
|
Counter |
Объем записанных данных InnoDB (байты) |
|
Counter |
Количество записей в лог InnoDB |
|
Counter |
Количество обнаруженных deadlocks |
Метрики репликации (mysql_slave_status_, mysql_master_status_)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Состояние IO потока репликации (1 = работает, 0 = остановлен) |
|
Gauge |
Состояние SQL потока репликации (1 = работает, 0 = остановлен) |
|
Gauge |
Задержка репликации в секундах |
|
Gauge |
Позиция в логе мастера |
|
Gauge |
Позиция выполнения в логе мастера |
|
Gauge |
Позиция в relay логе |
|
Gauge |
Состояние IO потока репликации |
|
Gauge |
Состояние SQL потока репликации |
|
Gauge |
Позиция бинарного лога на мастере |
|
Gauge |
Имя текущего бинарного лога на мастере |
Метрики баз данных (mysql_info_schema_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Размер базы данных в байтах |
|
Gauge |
Количество строк в таблице |
|
Gauge |
Размер таблицы в байтах |
|
Gauge |
Размер индексов таблицы в байтах |
Метрики процессов (mysql_global_processlist_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Количество процессов по состоянию |
|
Gauge |
Время выполнения процесса (секунды) |
Метрики переменных (mysql_global_variables_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Максимальное количество подключений |
|
Gauge |
Размер InnoDB buffer pool (байты) |
|
Gauge |
Размер query cache (байты) |
|
Gauge |
Размер thread cache |
|
Gauge |
Размер кэша открытых таблиц |
Системные метрики экспортера
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Длительность последнего сбора метрик (секунды) |
|
Counter |
Общее количество сборов метрик |
|
Counter |
Количество ошибок при сборе метрик |
Примечание
Важно: Данный список метрик может быть неполным или устаревшим, так как mysqld_exporter постоянно развивается и добавляет новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации mysqld_exporter на GitHub, где представлен актуальный список всех собираемых метрик с подробными описаниями.