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:

  1. Откройте раздел настройки агента

  2. Добавьте новый экспортер mysqld_exporter

  3. Укажите параметры запуска

Через файл конфигурации:

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:

Примечание

Подробнее о настройке mysqld_exporter читайте в официальной документации и на сайте Grafana.

Ключевые метрики для мониторинга

При настройке мониторинга обратите внимание на следующие группы метрик:

  • Производительность: время выполнения запросов, количество запросов в секунду, медленные запросы

  • Ресурсы: использование CPU, памяти, дискового пространства, размер баз данных

  • Соединения: количество активных соединений, максимальное количество соединений, время ожидания

  • Репликация: состояние реплик, задержки репликации, лаг репликации

  • Блокировки: количество блокировок, время ожидания блокировок, deadlocks

  • Буферы и кэши: использование InnoDB buffer pool, эффективность кэширования

  • Ошибки: количество ошибок в логах, ошибки подключений

Собираемые метрики mysqld_exporter

Ниже представлен список основных метрик, собираемых mysqld_exporter, с их описанием и назначением.

Метрики общего состояния (mysql_up, mysql_global_status_*)

Метрика

Тип

Описание

mysql_up

Gauge

Доступность MySQL/MariaDB (1 = доступен, 0 = недоступен)

mysql_global_status_uptime

Gauge

Время работы сервера в секундах

mysql_global_status_threads_connected

Gauge

Количество активных подключений

mysql_global_status_threads_running

Gauge

Количество выполняющихся потоков

mysql_global_status_questions

Counter

Общее количество запросов

mysql_global_status_queries

Counter

Количество запросов (включая хранимые процедуры)

mysql_global_status_slow_queries

Counter

Количество медленных запросов

mysql_global_status_com_select

Counter

Количество SELECT запросов

mysql_global_status_com_insert

Counter

Количество INSERT запросов

mysql_global_status_com_update

Counter

Количество UPDATE запросов

mysql_global_status_com_delete

Counter

Количество DELETE запросов

mysql_global_status_created_tmp_tables

Counter

Количество созданных временных таблиц

mysql_global_status_created_tmp_disk_tables

Counter

Количество временных таблиц, созданных на диске

mysql_global_status_table_locks_waited

Counter

Количество ожиданий блокировок таблиц

mysql_global_status_table_open_cache_hits

Counter

Количество попаданий в кэш открытых таблиц

mysql_global_status_table_open_cache_misses

Counter

Количество промахов в кэш открытых таблиц

Метрики InnoDB (mysql_global_status_innodb_*)

Метрика

Тип

Описание

mysql_global_status_innodb_buffer_pool_read_requests

Counter

Количество логических чтений из buffer pool

mysql_global_status_innodb_buffer_pool_reads

Counter

Количество физических чтений с диска

mysql_global_status_innodb_buffer_pool_pages_free

Gauge

Количество свободных страниц в buffer pool

mysql_global_status_innodb_buffer_pool_pages_total

Gauge

Общее количество страниц в buffer pool

mysql_global_status_innodb_buffer_pool_pages_data

Gauge

Количество страниц с данными в buffer pool

mysql_global_status_innodb_buffer_pool_pages_dirty

Gauge

Количество грязных страниц в buffer pool

mysql_global_status_innodb_rows_read

Counter

Количество прочитанных строк InnoDB

mysql_global_status_innodb_rows_inserted

Counter

Количество вставленных строк InnoDB

mysql_global_status_innodb_rows_updated

Counter

Количество обновленных строк InnoDB

mysql_global_status_innodb_rows_deleted

Counter

Количество удаленных строк InnoDB

mysql_global_status_innodb_data_read

Counter

Объем прочитанных данных InnoDB (байты)

mysql_global_status_innodb_data_written

Counter

Объем записанных данных InnoDB (байты)

mysql_global_status_innodb_log_writes

Counter

Количество записей в лог InnoDB

mysql_global_status_innodb_deadlocks

Counter

Количество обнаруженных deadlocks

Метрики репликации (mysql_slave_status_, mysql_master_status_)

Метрика

Тип

Описание

mysql_slave_status_slave_io_running

Gauge

Состояние IO потока репликации (1 = работает, 0 = остановлен)

mysql_slave_status_slave_sql_running

Gauge

Состояние SQL потока репликации (1 = работает, 0 = остановлен)

mysql_slave_status_seconds_behind_master

Gauge

Задержка репликации в секундах

mysql_slave_status_master_log_pos

Gauge

Позиция в логе мастера

mysql_slave_status_exec_master_log_pos

Gauge

Позиция выполнения в логе мастера

mysql_slave_status_relay_log_pos

Gauge

Позиция в relay логе

mysql_slave_status_slave_io_running

Gauge

Состояние IO потока репликации

mysql_slave_status_slave_sql_running

Gauge

Состояние SQL потока репликации

mysql_master_status_position

Gauge

Позиция бинарного лога на мастере

mysql_master_status_file

Gauge

Имя текущего бинарного лога на мастере

Метрики баз данных (mysql_info_schema_*)

Метрика

Тип

Описание

mysql_info_schema_size_bytes

Gauge

Размер базы данных в байтах

mysql_info_schema_table_rows

Gauge

Количество строк в таблице

mysql_info_schema_table_size_bytes

Gauge

Размер таблицы в байтах

mysql_info_schema_index_size_bytes

Gauge

Размер индексов таблицы в байтах

Метрики процессов (mysql_global_processlist_*)

Метрика

Тип

Описание

mysql_global_processlist_count

Gauge

Количество процессов по состоянию

mysql_global_processlist_time

Gauge

Время выполнения процесса (секунды)

Метрики переменных (mysql_global_variables_*)

Метрика

Тип

Описание

mysql_global_variables_max_connections

Gauge

Максимальное количество подключений

mysql_global_variables_innodb_buffer_pool_size

Gauge

Размер InnoDB buffer pool (байты)

mysql_global_variables_query_cache_size

Gauge

Размер query cache (байты)

mysql_global_variables_thread_cache_size

Gauge

Размер thread cache

mysql_global_variables_table_open_cache

Gauge

Размер кэша открытых таблиц

Системные метрики экспортера

Метрика

Тип

Описание

mysqld_exporter_last_scrape_duration_seconds

Gauge

Длительность последнего сбора метрик (секунды)

mysqld_exporter_scrapes_total

Counter

Общее количество сборов метрик

mysqld_exporter_scrape_errors_total

Counter

Количество ошибок при сборе метрик

Примечание

Важно: Данный список метрик может быть неполным или устаревшим, так как mysqld_exporter постоянно развивается и добавляет новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации mysqld_exporter на GitHub, где представлен актуальный список всех собираемых метрик с подробными описаниями.

Дополнительная информация

Связанные разделы