КраткоСобирайте и визуализируйте журнал ошибок MySQL и журнал медленных запросов в ClickStack с помощью приёмника OTel
filelog. Включает демо-набор данных и преднастроенный дашборд.Интеграция с существующим 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 секунд. Настройте этот порог в соответствии с требованиями к производительности вашего приложения. Если установить его слишком низким, будет создаваться слишком много записей журнала.Создайте пользовательскую конфигурацию 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 и убедитесь, что журналы поступают:- Перейдите в Search view
- Установите для source значение Logs
- Отфильтруйте по
source:mysql-errorилиsource:mysql-slow, чтобы увидеть журналы MySQL - Вы должны увидеть структурированные записи журнала с такими полями, как
level,error_code,message(для журналов ошибок), а такжеquery_time,rows_examined,query(для журналов медленных запросов)
Демо-набор данных
Скачайте пример набора данных
Скачайте примеры файлов журналов:- Записи журнала ошибок (сообщения о запуске, предупреждения, ошибки подключения, сообщения InnoDB)
- Медленные запросы с реалистичными характеристиками производительности
- События жизненного цикла подключения
- Последовательности запуска и остановки сервера базы данных
Создайте конфигурацию тестового коллектора
Создайте файл с именемmysql-logs-demo.yaml со следующей конфигурацией:Запустите ClickStack с демонстрационной конфигурацией
Запустите ClickStack с демонстрационными журналами и конфигурацией:Проверьте логи в HyperDX
После запуска ClickStack:- Подождите немного, пока ClickStack полностью инициализируется (обычно 30–60 секунд)
- Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется создать её)
- Перейдите в представление поиска и установите для источника значение
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 часов для более наглядных визуализаций.
Панели мониторинга и визуализация
конфигурацию панели мониторинга
Импортируйте преднастроенный дашборд
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу в меню с многоточием
- Загрузите файл
mysql-logs-dashboard.jsonи нажмите Finish Import
Откройте панель мониторинга
Панель мониторинга будет создана со всеми преднастроенными визуализациями.Для демо-набора данных установите временной диапазон 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC) (с учётом вашего локального часового пояса). По умолчанию у импортированной панели мониторинга временной диапазон не задан.
Устранение неполадок
Пользовательская конфигурация не загружается
Журналы не отображаются в HyperDX
Журналы медленных запросов не появляются
Журналы разбираются неправильно
Следующие шаги
- Настройте оповещения для критических событий (сбоев подключения, медленных запросов с превышением порога, всплесков ошибок)
- Создайте пользовательские панели мониторинга для анализа медленных запросов по шаблону запроса
- Настройте
long_query_timeс учетом наблюдаемых закономерностей производительности запросов