Плагин MySQL
Мониторинг серверов баз данных MySQL и MariaDB с подробными метриками, отслеживающими запросы, соединения, репликацию, движок хранения InnoDB и многое другое.
Обзор
Плагин MySQL собирает детальные метрики с серверов MySQL/MariaDB, включая:
- Статистика соединений - Активные соединения, попытки подключения, прерванные соединения
- Производительность запросов - Запросы в секунду, медленные запросы, производительность кэша запросов
- Блокировки таблиц - Немедленные и ожидающие блокировки таблиц
- Метрики InnoDB - Буферный пул, операции со строками, запись в лог, deadlock'и
- Репликация - Статус master/slave, лаг репликации, позиция relay log
- Потоки - Выполняющиеся потоки, подключённые потоки, кэшированные потоки
- Временные объекты - Временные таблицы, временные файлы на диске
Требования
Версия MySQL/MariaDB
- MySQL: 5.7 или новее
- MariaDB: 10.3 или новее
- Протестировано с: MySQL 5.7, 8.0, 8.1; MariaDB 10.3, 10.5, 10.6, 10.11
Зависимости Python
pip install pymysql>=1.0.0
Устанавливается автоматически при использовании PLUGINS=mysql во время установки агента.
Сетевой доступ
Агент должен иметь возможность подключиться к MySQL:
# Test connectivity
mysql -h localhost -u monitor -p -e "SELECT 1"
Конфигурация
Базовая конфигурация
plugins:
mysql:
enabled: true
host: localhost
port: 3306
user: monitor
password: 'monitoring-password'
С выбором базы данных
plugins:
mysql:
enabled: true
host: localhost
port: 3306
user: monitor
password: 'monitoring-password'
database: 'information_schema' # Optional test database
Удалённый сервер MySQL
plugins:
mysql:
enabled: true
host: mysql-server.example.com
port: 3306
user: monitor
password: 'secure-password'
С SSL/TLS
plugins:
mysql:
enabled: true
host: mysql.example.com
port: 3306
user: monitor
password: 'secure-password'
ssl: true
ssl_ca: '/path/to/ca-cert.pem' # Optional
ssl_cert: '/path/to/client-cert.pem' # Optional
ssl_key: '/path/to/client-key.pem' # Optional
Все параметры конфигурации
plugins:
mysql:
enabled: true # Enable/disable plugin
host: localhost # MySQL hostname or IP
port: 3306 # MySQL port (default: 3306)
user: monitor # MySQL username
password: '' # MySQL password
database: '' # Database to connect to (optional)
charset: utf8mb4 # Connection charset (default: utf8mb4)
connect_timeout: 10 # Connection timeout in seconds
ssl: false # Use SSL/TLS (default: false)
ssl_ca: '' # Path to CA certificate file
ssl_cert: '' # Path to client certificate file
ssl_key: '' # Path to client key file
Переменные окружения
Конфигурацию можно переопределить переменными окружения:
export MYSQL_HOST="localhost"
export MYSQL_PORT="3306"
export MYSQL_USER="monitor"
export MYSQL_PASSWORD="secret"
export MYSQL_DATABASE=""
Настройка MySQL
Создание пользователя мониторинга
Для MySQL 5.7 и MariaDB:
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'your-secure-password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost';
FLUSH PRIVILEGES;
Для MySQL 8.0+:
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'your-secure-password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost';
FLUSH PRIVILEGES;
Для удалённого мониторинга:
CREATE USER 'monitor'@'%' IDENTIFIED BY 'your-secure-password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'%';
FLUSH PRIVILEGES;
Необходимые привилегии
Минимально необходимые:
PROCESS- Просмотр всех потоков и процессовREPLICATION CLIENT- Просмотр статуса репликации
Почему именно эти привилегии?
PROCESSразрешаетSHOW FULL PROCESSLISTиSHOW ENGINE INNODB STATUSREPLICATION CLIENTразрешаетSHOW MASTER STATUSиSHOW SLAVE STATUS
Примечание по безопасности: Это привилегии только для чтения. Пользователь мониторинга не может изменять данные.
Проверка прав пользователя
SHOW GRANTS FOR 'monitor'@'localhost';
Ожидаемый вывод:
+----------------------------------------------------------------+
| Grants for monitor@localhost |
+----------------------------------------------------------------+
| GRANT PROCESS, REPLICATION CLIENT ON *.* TO `monitor`@`localhost` |
+----------------------------------------------------------------+
Собираемые метрики
Метрики соединений
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
threads_connected |
Текущее число подключённых потоков | Количество | Gauge |
threads_running |
Текущее число выполняющихся потоков | Количество | Gauge |
max_used_connections |
Пиковое число одновременных соединений | Количество | Gauge |
max_connections |
Максимально допустимое число соединений | Количество | Gauge |
aborted_connections |
Неудачные попытки подключения | Количество | Counter |
connection_errors_max_connections |
Соединения, отклонённые из-за лимита | Количество | Counter |
connection_percent |
Процент использования соединений | Проценты | Gauge |
Мониторинг:
threads_connectedприближается кmax_connections= нужно увеличить лимит- Высокое
aborted_connections= проблемы с аутентификацией или наплыв соединений - Скачок
threads_running= узкое место по запросам
Метрики запросов
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
questions_total |
Всего выполненных операторов | Количество | Counter |
queries_total |
Всего запросов (включая хранимые процедуры) | Количество | Counter |
slow_queries_total |
Запросы, превышающие long_query_time | Количество | Counter |
com_select |
Операторы SELECT | Количество | Counter |
com_insert |
Операторы INSERT | Количество | Counter |
com_update |
Операторы UPDATE | Количество | Counter |
com_delete |
Операторы DELETE | Количество | Counter |
Расчёт запросов в секунду:
qps = (questions_total_now - questions_total_before) / time_elapsed
Метрики блокировок таблиц
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
table_locks_immediate |
Немедленно предоставленные блокировки таблиц | Количество | Counter |
table_locks_waited |
Блокировки таблиц, которым пришлось ждать | Количество | Counter |
Коэффициент конкуренции за блокировки:
lock_contention = table_locks_waited / (table_locks_immediate + table_locks_waited)
Здоровое значение: < 0.01 (1%)
Буферный пул InnoDB
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
innodb_buffer_pool_pages_total |
Всего страниц буферного пула | Страницы | Gauge |
innodb_buffer_pool_pages_data |
Страницы, содержащие данные | Страницы | Gauge |
innodb_buffer_pool_pages_free |
Свободные страницы | Страницы | Gauge |
innodb_buffer_pool_read_requests |
Логические запросы на чтение | Количество | Counter |
innodb_buffer_pool_reads |
Чтения с диска | Количество | Counter |
innodb_buffer_pool_hit_rate |
Hit rate кэша буферного пула | Проценты | Gauge |
innodb_buffer_pool_usage_percent |
Процент использования буферного пула | Проценты | Gauge |
Hit rate буферного пула:
hit_rate = ((read_requests - reads) / read_requests) * 100
Здоровое значение: > 99%
Операции со строками InnoDB
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
innodb_rows_read |
Прочитано строк | Количество | Counter |
innodb_rows_inserted |
Вставлено строк | Количество | Counter |
innodb_rows_updated |
Обновлено строк | Количество | Counter |
innodb_rows_deleted |
Удалено строк | Количество | Counter |
Блокировки InnoDB
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
innodb_row_lock_waits |
Количество ожиданий блокировки строк | Количество | Counter |
innodb_row_lock_time |
Общее время ожидания блокировки строк | Миллисекунды | Counter |
Среднее время ожидания блокировки:
avg_wait = innodb_row_lock_time / innodb_row_lock_waits
Метрики репликации (только slave)
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
replication_running |
Потоки SQL/IO slave запущены (1=да, 0=нет) | Boolean | Gauge |
replication_lag_seconds |
Лаг репликации (-1 если NULL) | Секунды | Gauge |
Здоровье репликации:
replication_runningдолжно быть 1 (оба потока — IO и SQL — запущены)replication_lag_secondsдолжно быть < 10 секунд
Временные объекты
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
created_tmp_tables |
Создано временных таблиц | Количество | Counter |
created_tmp_disk_tables |
Создано временных таблиц на диске | Количество | Counter |
tmp_disk_table_ratio |
Процент временных таблиц на диске | Проценты | Gauge |
Доля дисковых временных таблиц:
tmp_disk_table_ratio = (created_tmp_disk_tables / created_tmp_tables) * 100
Высокая доля (> 25%) = увеличьте tmp_table_size и max_heap_table_size
Конфигурация памяти
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
innodb_buffer_pool_size_mb |
Размер буферного пула InnoDB | MB | Gauge |
key_buffer_size_mb |
Размер кэша ключей MyISAM | MB | Gauge |
Системные метрики
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
uptime_seconds |
Время работы сервера MySQL | Секунды | Gauge |
bytes_sent |
Всего байт, отправленных клиентам | Байты | Counter |
bytes_received |
Всего байт, полученных от клиентов | Байты | Counter |
Кэш запросов (только MySQL 5.7 и более ранние версии)
| Метрика | Описание | Единица | Тип |
|---|---|---|---|
query_cache_size_mb |
Размер кэша запросов | MB | Gauge |
qcache_hits |
Попадания в кэш запросов | Количество | Counter |
qcache_inserts |
Вставки в кэш запросов | Количество | Counter |
Примечание: Кэш запросов был удалён в MySQL 8.0. Эти метрики появляются только на серверах MySQL 5.7 и MariaDB.
Метрики дашборда
Дашборд StatusRadar отображает:
Карточка обзора
- Status - Сервер MySQL работает/не работает
- Version - Версия MySQL/MariaDB
- Uptime - Время работы сервера
- QPS - Запросы в секунду
График соединений
- Подключённые потоки
- Выполняющиеся потоки
- Попытки подключения
- Прерванные соединения
График производительности запросов
- Запросы в секунду
- Разбивка SELECT/INSERT/UPDATE/DELETE
- Медленные запросы
График буферного пула InnoDB
- Размер буферного пула (страницы)
- Страницы данных
- Грязные страницы
- Hit rate буферного пула
График операций InnoDB
- Прочитано/вставлено/обновлено/удалено строк в секунду
Статус репликации (если slave)
- Лаг репликации (секунды)
- Статус IO-потока
- Статус SQL-потока
Блокировки таблиц
- Немедленные блокировки
- Ожидающие блокировки
- Коэффициент конкуренции за блокировки
Установка
Быстрая установка
PLUGINS='mysql' \
MYSQL_USER='monitor' \
MYSQL_PASSWORD='your-password' \
TOKEN='your-agent-token' \
bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"
Установка на существующий агент
-
Создайте пользователя MySQL:
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'secure-password'; GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost'; FLUSH PRIVILEGES; -
Установите зависимость Python:
cd /opt/statusradar source venv/bin/activate # If using venv pip install pymysql -
Включите плагин в конфигурации:
sudo nano /opt/statusradar/config/agent.yamlДобавьте:
plugins: mysql: enabled: true host: localhost port: 3306 user: monitor password: 'secure-password' -
Перезапустите агент:
sudo systemctl restart statusradar-agent -
Проверьте:
sudo journalctl -u statusradar-agent -n 50 --no-pager | grep mysqlОжидаемо:
INFO: Plugin mysql: Metrics collected successfully
Тестирование
Ручной тест плагина
cd /opt/statusradar
python3 plugins/mysql_plugin.py
Ожидаемый вывод:
Plugin: mysql
Enabled: True
Available: True
Collecting metrics...
{
"threads_connected": 15,
"threads_running": 2,
"threads_cached": 8,
"connections": 1250,
"questions": 45000,
"slow_queries": 5,
"innodb_buffer_pool_pages_total": 8192,
"innodb_buffer_pool_pages_data": 7500,
"innodb_buffer_pool_read_requests": 1000000,
"innodb_buffer_pool_reads": 1000,
"innodb_rows_read": 500000,
"innodb_rows_inserted": 10000,
"slave_running": 0,
...
}
Тест подключения к MySQL
# Basic connection test
mysql -h localhost -u monitor -p -e "SELECT 1"
# Test with password from command line
mysql -h localhost -u monitor -p'your-password' -e "SELECT 1"
# Remote server
mysql -h mysql.example.com -u monitor -p'password' -e "SELECT 1"
# Check permissions
mysql -h localhost -u monitor -p'password' -e "SHOW GRANTS"
Тест команд статуса
# Test SHOW STATUS
mysql -h localhost -u monitor -p'password' -e "SHOW GLOBAL STATUS LIKE 'Threads_connected'"
# Test SHOW VARIABLES
mysql -h localhost -u monitor -p'password' -e "SHOW GLOBAL VARIABLES LIKE 'max_connections'"
# Test replication status (slave only)
mysql -h localhost -u monitor -p'password' -e "SHOW SLAVE STATUS\G"
Устранение неполадок
Плагин не собирает метрики
Проверка 1: Запущен ли MySQL?
sudo systemctl status mysql
# or
sudo systemctl status mariadb
Проверка 2: Может ли агент подключиться?
mysql -h localhost -u monitor -p'password' -e "SELECT 1"
Проверка 3: Верны ли учётные данные?
# Check config
cat /opt/statusradar/config/agent.yaml | grep -A8 mysql
Проверка 4: Установлен ли Python-пакет?
python3 -c "import pymysql; print(pymysql.__version__)"
Проверка 5: Проверьте логи агента
sudo journalctl -u statusradar-agent -n 100 --no-pager | grep mysql
Распространённые ошибки
"Access denied for user"
Ошибка:
ERROR: Plugin mysql: (1045, "Access denied for user 'monitor'@'localhost' (using password: YES)")
Причины:
- Неверный пароль в конфигурации
- Пользователь не существует
- У пользователя нет доступа с хоста агента
Решение:
-- Check if user exists
SELECT User, Host FROM mysql.user WHERE User = 'monitor';
-- Check user permissions
SHOW GRANTS FOR 'monitor'@'localhost';
-- Recreate user if needed
DROP USER 'monitor'@'localhost';
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'new-secure-password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost';
FLUSH PRIVILEGES;
Обновите конфигурацию агента правильным паролем и перезапустите.
"Can't connect to MySQL server"
Ошибка:
ERROR: Plugin mysql: (2003, "Can't connect to MySQL server on 'localhost' (111)")
Причины:
- MySQL не запущен
- Неверный host/port
- Файрвол блокирует соединение
- MySQL не слушает на ожидаемом интерфейсе
Решение:
# Check if MySQL is running
sudo systemctl status mysql
# Check MySQL port
sudo netstat -tlnp | grep 3306
# Check MySQL bind address
mysql -e "SHOW VARIABLES LIKE 'bind_address'"
# If bind_address is 127.0.0.1, can only connect from localhost
# To allow remote connections, edit /etc/mysql/my.cnf:
# bind-address = 0.0.0.0
"No module named 'pymysql'"
Ошибка:
ERROR: No module named 'pymysql'
Решение:
pip install pymysql
# Or if using venv:
cd /opt/statusradar && source venv/bin/activate && pip install pymysql
"Command denied to user"
Ошибка:
ERROR: (1227, 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation')
Причина: Отсутствует привилегия PROCESS или REPLICATION CLIENT
Решение:
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost';
FLUSH PRIVILEGES;
Метрики показывают ноль
Симптом: Некоторые метрики всегда показывают 0
Проверьте переменные статуса:
mysql -u monitor -p -e "SHOW GLOBAL STATUS"
Распространённые причины:
slow_queries = 0- Нет медленных запросов (это хорошо!)innodb_deadlocks = 0- Нет deadlock'ов (это хорошо!)seconds_behind_master = NULL- Сервер не является slaveaborted_connects = 0- Нет неудачных соединений (это хорошо!)
Влияние на производительность
На MySQL
Незначительное влияние:
- Плагин выполняет
SHOW GLOBAL STATUSиSHOW SLAVE STATUSодин раз за интервал сбора - Это легковесные запросы только для чтения (время выполнения < 10 мс)
- Без сканирования таблиц, без блокировок, без изменения данных
- Использует внутренние счётчики статистики MySQL
Бенчмарк:
- QPS MySQL с мониторингом: 10,000+ queries/sec
- QPS MySQL без мониторинга: 10,000+ queries/sec
- Накладные расходы: < 0.01%
На агент
Использование ресурсов:
- Память: +15 MB
- CPU: +3% во время сбора (0.2-0.5 секунды)
- Сеть: +2 KB за сбор
Сценарии использования
1. Мониторинг производительности запросов
Отслеживайте:
- Запросы в секунду
- Медленные запросы
- Соотношение SELECT и INSERT/UPDATE/DELETE
Настройте оповещения на:
- Падение QPS (проблема приложения)
- Скачок медленных запросов
- Внезапное изменение типов запросов
2. Мониторинг пула соединений
Отслеживайте:
- Подключённые потоки
- Выполняющиеся потоки
- Прерванные соединения
- Максимально использованные соединения
Настройте оповещения на:
- Соединения приближаются к max_connections
- Высокое aborted_connects (> 5%)
- Множество простаивающих соединений
3. Тюнинг буферного пула InnoDB
Отслеживайте:
- Hit rate буферного пула
- Процент грязных страниц
- Свободные страницы
Настройте оповещения на:
- Hit rate < 99%
- Свободные страницы = 0 (буферный пул слишком мал)
- Грязные страницы > 75% (проблемы с контрольными точками)
4. Мониторинг лага репликации
Отслеживайте:
- seconds_behind_master
- Статус IO/SQL-потоков slave
- Позицию relay log
Настройте оповещения на:
- Лаг > 30 секунд
- Потоки slave остановлены
- Ошибки репликации
5. Анализ конкуренции за блокировки
Отслеживайте:
- Ожидающие блокировки таблиц
- Ожидания блокировки строк InnoDB
- Deadlock'и
Настройте оповещения на:
- Конкуренция за блокировки > 5%
- Скачок deadlock'ов
- Среднее ожидание блокировки > 100 мс
Лучшие практики
1. Используйте выделенного пользователя мониторинга
Нельзя:
-- Don't use root or application user
user: root
password: root_password
Нужно:
-- Create dedicated read-only user
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'secure-random-password';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor'@'localhost';
2. Установите надёжный пароль
# Generate strong password
openssl rand -base64 32
Используйте в конфигурации:
plugins:
mysql:
password: 'Y8jK9mN4pQ3rS2tU7vW1xZ5aB6cD0eF=='
3. Следите за ключевыми метриками InnoDB
Важнейшие метрики для наблюдения:
- Hit rate буферного пула (должен быть > 99%)
- Грязные страницы (должны быть < 75%)
- Ожидания блокировки строк (должны быть минимальны)
- Deadlock'и (разбирайтесь, если > 0)
4. Настройте подходящие оповещения
Оповещения по соединениям:
threads_connected > max_connections * 0.8
aborted_connects > 100/hour
Оповещения по производительности:
slow_queries > 10/minute
innodb_buffer_pool_hit_rate < 0.99
seconds_behind_master > 30 (slaves only)
5. Регулярное обслуживание
Еженедельно:
- Просматривайте лог медленных запросов
- Проверяйте тренды лага репликации
- Следите за эффективностью буферного пула
Ежемесячно:
- Оптимизируйте таблицы при фрагментации > 20%
- Пересматривайте и корректируйте размер буферного пула
- Проверяйте неиспользуемые индексы
6. Защитите файл конфигурации
chmod 600 /opt/statusradar/config/agent.yaml
chown root:root /opt/statusradar/config/agent.yaml
Расширенная конфигурация
MySQL с подключением через сокет
plugins:
mysql:
enabled: true
unix_socket: '/var/run/mysqld/mysqld.sock'
user: monitor
password: 'password'
MySQL с другой кодировкой
plugins:
mysql:
enabled: true
host: localhost
user: monitor
password: 'password'
charset: utf8mb4 # or latin1, utf8, etc.
Несколько экземпляров MySQL
Чтобы мониторить несколько экземпляров MySQL на одном сервере:
Вариант 1: несколько агентов (рекомендуется)
- Установите отдельный агент для каждого экземпляра
- Каждый агент мониторит один экземпляр MySQL
Вариант 2: пользовательская конфигурация
- Сейчас не поддерживается
- Функция запланирована для будущего релиза
Примеры конфигураций
Сервер разработки
plugins:
mysql:
enabled: true
host: localhost
port: 3306
user: monitor
password: 'dev-password'
Продакшен-master
plugins:
mysql:
enabled: true
host: localhost
port: 3306
user: monitor
password: 'strong-production-password'
connect_timeout: 10
Продакшен-slave
plugins:
mysql:
enabled: true
host: localhost
port: 3306
user: monitor
password: 'strong-production-password'
# Plugin automatically detects slave status
Удалённый MySQL (SSL)
plugins:
mysql:
enabled: true
host: mysql-prod.example.com
port: 3306
user: monitor
password: 'secure-password'
ssl: true
ssl_ca: '/etc/ssl/certs/mysql-ca.pem'
connect_timeout: 15
MySQL в Docker
plugins:
mysql:
enabled: true
host: 172.17.0.2 # Docker container IP
port: 3306
user: monitor
password: 'password'
Справочник по метрикам
Полный список метрик
Плагин собирает 30+ метрик из SHOW GLOBAL STATUS и SHOW GLOBAL VARIABLES:
Метрики соединений:
- threads_connected, threads_running
- max_used_connections, max_connections
- aborted_connections, connection_errors_max_connections
- connection_percent (вычисляется)
Метрики запросов:
- questions_total, queries_total, slow_queries_total
- com_select, com_insert, com_update, com_delete
Метрики блокировок таблиц:
- table_locks_immediate, table_locks_waited
Буферный пул InnoDB:
- innodb_buffer_pool_pages_total, innodb_buffer_pool_pages_data
- innodb_buffer_pool_pages_free
- innodb_buffer_pool_read_requests, innodb_buffer_pool_reads
- innodb_buffer_pool_hit_rate (вычисляется)
- innodb_buffer_pool_usage_percent (вычисляется)
Операции со строками InnoDB:
- innodb_rows_read, innodb_rows_inserted
- innodb_rows_updated, innodb_rows_deleted
Блокировки InnoDB:
- innodb_row_lock_waits, innodb_row_lock_time
Репликация (только slave):
- replication_running, replication_lag_seconds
Временные объекты:
- created_tmp_tables, created_tmp_disk_tables
- tmp_disk_table_ratio (вычисляется)
Конфигурация памяти:
- innodb_buffer_pool_size_mb, key_buffer_size_mb
Система:
- uptime_seconds, bytes_sent, bytes_received
Кэш запросов (только MySQL 5.7):
- query_cache_size_mb, qcache_hits, qcache_inserts
Дальнейшие шаги
- Обзор
- Требования
- Версия MySQL/MariaDB
- Зависимости Python
- Сетевой доступ
- Конфигурация
- Базовая конфигурация
- С выбором базы данных
- Удалённый сервер MySQL
- С SSL/TLS
- Все параметры конфигурации
- Переменные окружения
- Настройка MySQL
- Создание пользователя мониторинга
- Необходимые привилегии
- Проверка прав пользователя
- Собираемые метрики
- Метрики соединений
- Метрики запросов
- Метрики блокировок таблиц
- Буферный пул InnoDB
- Операции со строками InnoDB
- Блокировки InnoDB
- Метрики репликации (только slave)
- Временные объекты
- Конфигурация памяти
- Системные метрики
- Кэш запросов (только MySQL 5.7 и более ранние версии)
- Метрики дашборда
- Карточка обзора
- График соединений
- График производительности запросов
- График буферного пула InnoDB
- График операций InnoDB
- Статус репликации (если slave)
- Блокировки таблиц
- Установка
- Быстрая установка
- Установка на существующий агент
- Тестирование
- Ручной тест плагина
- Тест подключения к MySQL
- Тест команд статуса
- Устранение неполадок
- Плагин не собирает метрики
- Распространённые ошибки
- Метрики показывают ноль
- Влияние на производительность
- На MySQL
- На агент
- Сценарии использования
- 1. Мониторинг производительности запросов
- 2. Мониторинг пула соединений
- 3. Тюнинг буферного пула InnoDB
- 4. Мониторинг лага репликации
- 5. Анализ конкуренции за блокировки
- Лучшие практики
- 1. Используйте выделенного пользователя мониторинга
- 2. Установите надёжный пароль
- 3. Следите за ключевыми метриками InnoDB
- 4. Настройте подходящие оповещения
- 5. Регулярное обслуживание
- 6. Защитите файл конфигурации
- Расширенная конфигурация
- MySQL с подключением через сокет
- MySQL с другой кодировкой
- Несколько экземпляров MySQL
- Примеры конфигураций
- Сервер разработки
- Продакшен-master
- Продакшен-slave
- Удалённый MySQL (SSL)
- MySQL в Docker
- Справочник по метрикам
- Полный список метрик
- Дальнейшие шаги