Мониторинг логов MySQL с помощью ClickStack
В этом руководстве показано, как осуществлять мониторинг MySQL с помощью ClickStack, настраивая OTel collector для приёма серверных логов MySQL. Вы узнаете, как:
- Настроить MySQL на вывод логов ошибок и логов медленных запросов
- Создать пользовательскую конфигурацию OTel collector для ингестии логов
- Развернуть ClickStack с вашей пользовательской конфигурацией
- Использовать готовую панель мониторинга для визуализации данных логов MySQL (ошибки, медленные запросы, соединения)
Демонстрационный набор данных с примерами логов доступен, если вы хотите протестировать интеграцию перед настройкой боевого экземпляра MySQL.
Требуемое время: 10–15 минут
Интеграция с существующим MySQL
В этом разделе описывается настройка вашей существующей установки MySQL для отправки логов в ClickStack путем изменения конфигурации ClickStack OTel collector.
Если вы хотите протестировать интеграцию логов MySQL до настройки вашей собственной среды, вы можете воспользоваться нашей заранее сконфигурированной средой и демонстрационными данными в разделе "Демонстрационный датасет".
Предварительные требования
- Развернутый и запущенный экземпляр ClickStack
- Установленный MySQL (версии 5.7 или новее)
- Доступ для изменения файлов конфигурации MySQL
- Достаточно дискового пространства для файлов журналов
Настройка логирования MySQL
MySQL поддерживает несколько типов журналов. Для комплексного мониторинга с OpenTelemetry рекомендуется включить журнал ошибок и журнал медленных запросов.
Конфигурационный файл my.cnf или my.ini обычно расположен по адресу:
- Linux (apt/yum):
/etc/mysql/my.cnfили/etc/my.cnf - macOS (Homebrew):
/usr/local/etc/my.cnfили/opt/homebrew/etc/my.cnf - Docker: конфигурация обычно задаётся через переменные окружения или с помощью примонтированного файла конфигурации
Добавьте или измените следующие настройки в разделе [mysqld]:
Журнал медленных запросов фиксирует запросы, выполнение которых занимает более long_query_time секунд. Настройте этот порог в соответствии с требованиями к производительности вашего приложения. Слишком низкое значение приведёт к избыточному количеству записей в журнале.
После внесения этих изменений перезапустите MySQL:
Проверьте, что логи записываются:
Создание пользовательской конфигурации OTel collector
ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, смонтировав пользовательский файл конфигурации и задав переменную окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, управляемой HyperDX через OpAMP.
Создайте файл mysql-logs-monitoring.yaml со следующей конфигурацией:
Эта конфигурация:
- Считывает журналы ошибок MySQL и журналы медленных запросов из стандартных расположений
- Обрабатывает многострочные записи логов (медленные запросы часто занимают несколько строк)
- Разбирает оба формата логов, чтобы извлечь структурные поля (level, error_code, query_time, rows_examined)
- Сохраняет исходные временные метки логов
- Добавляет атрибуты
source: mysql-errorиsource: mysql-slowдля фильтрации в HyperDX - Маршрутизирует логи в экспортер ClickHouse через выделенный конвейер обработки
Требуются два приемника, поскольку журналы ошибок MySQL и журналы медленных запросов имеют совершенно разные форматы. time_parser использует схему gotime для обработки временных меток MySQL в формате ISO8601 с указанием часовых поясов.
Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развёртывании ClickStack, смонтируйте файл пользовательской конфигурации по пути /etc/otelcol-contrib/custom.config.yaml и задайте переменную окружения CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml.
Обновите конфигурацию развёртывания ClickStack:
Убедитесь, что коллектор ClickStack имеет необходимые разрешения для чтения файлов журналов MySQL. Используйте монтирование в режиме только для чтения (:ro) и следуйте принципу наименьших привилегий.
Проверка логов в HyperDX
После настройки войдите в HyperDX и проверьте, что логи поступают:
- Перейдите на экран поиска
- В качестве источника выберите Logs
- Отфильтруйте по
source:mysql-errorилиsource:mysql-slow, чтобы увидеть логи MySQL - Вы должны увидеть структурированные записи журналов с полями
level,error_code,message(для журналов ошибок) иquery_time,rows_examined,query(для журналов медленных запросов)


Демонстрационный датасет
Для пользователей, которые хотят протестировать интеграцию логов MySQL до настройки своих продуктивных систем, мы предоставляем образец датасета с заранее сгенерированными логами MySQL и реалистичными паттернами.
Загрузите пример набора данных
Загрузите примеры файлов логов:
Набор данных включает:
- Записи журнала ошибок (сообщения при запуске, предупреждения, ошибки подключения, сообщения InnoDB)
- Медленные запросы с реалистичными показателями производительности
- События жизненного цикла соединения
- Последовательность запуска и завершения работы сервера базы данных
Создание тестовой конфигурации коллектора
Создайте файл mysql-logs-demo.yaml со следующей конфигурацией:
Запуск ClickStack с демонстрационной конфигурацией
Запустите ClickStack с демонстрационными логами и конфигурацией:
Проверьте логи в HyperDX
После запуска ClickStack:
- Подождите немного, пока ClickStack полностью запустится (обычно это занимает 30–60 секунд)
- Откройте HyperDX и войдите в свою учетную запись (вам может понадобиться сначала её создать)
- Перейдите в представление Search и в качестве источника выберите
Logs - Задайте диапазон времени 2025-11-13 00:00:00 - 2025-11-16 00:00:00
- Вы должны увидеть в общей сложности 40 логов (30 ошибок с
source:mysql-demo-error+ 10 медленных запросов сsource:mysql-demo-slow).
Если вы не видите все 40 записей журнала сразу, подождите около минуты, пока коллектор завершит обработку. Если записи журнала так и не появились, выполните команду docker restart clickstack-demo и проверьте снова через минуту. Это известная проблема приемника filelog в OpenTelemetry при массовой загрузке существующих файлов с параметром start_at: beginning. Производственные развертывания с параметром start_at: end обрабатывают записи журнала по мере их записи в режиме реального времени и не сталкиваются с этой проблемой.


HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC). Широкий временной диапазон гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. Увидев логи, вы можете сузить диапазон до 24-часового периода для более чёткой визуализации.
Дашборды и визуализация
Чтобы помочь вам начать мониторинг MySQL с помощью ClickStack, мы предоставляем базовые визуализации для логов MySQL.
Импортируйте преднастроенный дашборд
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу под значком с многоточием

- Загрузите файл
mysql-logs-dashboard.jsonи нажмите Finish Import

Просмотр дашборда
Дашборд будет создан со всеми преднастроенными визуализациями.

Для демонстрационного набора данных установите интервал времени 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC) (откорректируйте в соответствии с вашим часовым поясом). В импортированном дашборде по умолчанию не задан интервал времени.
Устранение неполадок
Пользовательская конфигурация не загружается
Убедитесь, что переменная окружения задана:
Убедитесь, что пользовательский конфигурационный файл смонтирован и доступен для чтения:
В HyperDX не отображаются логи
Убедитесь, что ваш приёмник filelog включён в фактическую конфигурацию:
Проверьте журналы коллектора на наличие ошибок:
Если вы используете демонстрационный набор данных, убедитесь, что файлы журналов доступны:
Журнал медленных запросов не появляется
Проверьте, что в MySQL включён журнал медленных запросов:
Проверьте, записывает ли MySQL медленные запросы в лог:
Создайте тестовый медленный запрос:
Логи разбираются некорректно
Убедитесь, что формат логов MySQL соответствует ожидаемому формату. Шаблоны регулярных выражений в этом руководстве рассчитаны на форматы по умолчанию в MySQL 5.7+ и 8.0+.
Проверьте несколько строк из журнала ошибок:
Ожидаемый формат:
Если формат ваших логов существенно отличается, отредактируйте шаблоны регулярных выражений в конфигурации.
Следующие шаги
После настройки мониторинга логов MySQL:
- Настройте алерты для критических событий (ошибки подключения, медленные запросы, превышающие пороговые значения, всплески ошибок)
- Создайте пользовательские дашборды для анализа медленных запросов по шаблонам запросов
- Настройте значение
long_query_timeна основе наблюдаемых характеристик производительности запросов
Переход в продакшен
Это руководство использует встроенный в ClickStack OTel collector для быстрой начальной настройки. Для продакшен-развертываний мы рекомендуем запускать собственный OTel collector и отправлять данные в OTLP-эндпоинт ClickStack. См. раздел Отправка данных OpenTelemetry для продакшен-конфигурации.