Перейти к основному содержимому
Версия: 2.0.x

logs

При развёртывании и эксплуатации Selena понимание и правильное использование системы журналирования критически важно для устранения неполадок, анализа производительности и настройки системы. В этой статье подробно описаны типы файлов журналов, типичное содержимое, методы настройки, а также стратегии ротации и хранения журналов для компонентов Frontend (FE) и Backend (BE или CN) Selena.

Информация в этом документе основана на версии Selena 3.5.x.

Подробное описание журналирования FE

fe.log

Основные журналы FE включают процесс запуска, изменения состояния cluster, запросы DML/DQL и информацию, связанную с планированием. Эти журналы в основном фиксируют поведение FE во время его работы.

Конфигурация

  • sys_log_dir: Каталог хранения журналов. По умолчанию: ${SELENA_HOME}/log
  • sys_log_level: Уровень журналирования. По умолчанию: INFO
  • sys_log_roll_num: Контролирует количество сохраняемых файлов журналов для предотвращения неограниченного роста, потребляющего слишком много дискового пространства. По умолчанию: 10
  • sys_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию журналов
  • sys_log_delete_age: Контролирует, как долго хранить старые файлы журналов перед удалением. По умолчанию: 7 дней
  • sys_log_roll_mode: Режим ротации журналов. По умолчанию: SIZE-MB-1024, что означает создание нового файла журнала при достижении текущим размера 1024 МБ. Вместе с sys_log_roll_interval это указывает, что журналы FE могут ротироваться либо ежедневно, либо по размеру файла
  • sys_log_enable_compress: Контролирует, включено ли сжатие журналов. По умолчанию: false, что означает отключённое сжатие

fe.warn.log

fe.warn.log — важный файл журнала для мониторинга системы и устранения неполадок:

  • Мониторинг операций — отслеживает состояние работоспособности системы
  • Диагностика неисправностей — быстро находит критические проблемы
  • Анализ производительности — выявляет узкие места и аномалии системы
  • Аудит безопасности — записывает ошибки прав доступа

В отличие от fe.log, который записывает журналы всех уровней, fe.warn.log фокусируется на предупреждениях и ошибках, требующих внимания, помогая оперативно выявлять и устранять проблемы системы.

fe.gc.log

fe.gc.log — журнал сборки мусора Java для Selena FE, используемый для мониторинга и анализа поведения сборки мусора JVM.

Важно отметить, что этот файл журнала использует нативный механизм ротации журналов JVM. Например, вы можете включить автоматическую ротацию на основе размера файла и количества файлов со следующей конфигурацией:

-Xlog:gc*:${LOG_DIR}/fe.gc.log:time,tags:filecount=7,filesize=100M

fe.out

fe.out — файл стандартного вывода Selena FE. Он записывает содержимое, выводимое в стандартный вывод (stdout) и стандартный поток ошибок (stderr) во время работы процесса FE. Основное содержимое включает:

  • Вывод консоли при запуске FE
    • Информация о запуске JVM (например, настройки кучи, параметры GC)
    • Порядок инициализации модулей FE (Catalog, Scheduler, RPC, HTTP Server и т.д.)
  • Трассировки стека ошибок из stderr
    • Исключения Java (Exception/StackTrace)
    • Неперехваченные ошибки, такие как ClassNotFound, NullPointerException и т.д.
  • Вывод, не захваченный другими системами журналирования
    • Некоторые сторонние библиотеки, использующие System.out.println() или e.printStackTrace()

Следует проверять fe.out в следующих ситуациях:

  • FE не запускается: проверьте fe.out на наличие исключений Java или сообщений о недопустимых параметрах.
  • FE неожиданно аварийно завершается: ищите трассировки стека неперехваченных исключений.
  • Неопределённость системы журналирования: если fe.out — единственный файл журнала с выводом в каталоге журналов FE, вероятно, log4j не удалось инициализировать или конфигурация неверна.

По умолчанию fe.out не поддерживает автоматическую ротацию журналов.

fe.profile.log

Назначение fe.profile.log — записывать подробную информацию о выполнении запросов для анализа производительности. Его основные функции включают:

  • Анализ производительности запросов: записывает подробные данные выполнения каждого запроса, включая:
    • ID запроса, пользователь, база данных, SQL-выражение
    • Временные метки выполнения (startTime, endTime, latency)
    • Использование ресурсов (CPU, память, количество/размер просканированных строк)
    • Статус выполнения (RUNNING, FINISHED, FAILED, CANCELLED)
  • Отслеживание метрик времени выполнения: захватывает ключевые показатели через класс QueryDetail:
    • scanRows / scanBytes: объём просканированных данных
    • returnRows: количество возвращённых строк результата
    • cpuCostNs: потреблённое время CPU (в наносекундах)
    • memCostBytes: использование памяти
    • spillBytes: объём данных, сброшенных на диск
  • Диагностика ошибок: записывает сообщения об ошибках и трассировки стека для неудачных запросов
  • Мониторинг групп ресурсов: отслеживает метрики выполнения запросов в различных группах ресурсов

fe.profile.log хранится в формате JSON.

Конфигурация

  • enable_profile_log: Включить ли журналирование профиля
  • profile_log_dir: Каталог для хранения журналов профиля
  • profile_log_roll_size_mb: Размер ротации журнала (в МБ)
  • profile_log_roll_num: Контролирует количество сохраняемых файлов журналов профиля для предотвращения неограниченного роста и чрезмерного использования диска. По умолчанию: 5
  • profile_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 5 файлов, а более старые удаляются
  • profile_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 1 день

fe.internal.log

Назначение fe.internal.log — записывать журналы, посвящённые внутренним операциям FE (Frontend), в основном для аудита и отладки на системном уровне. Его основные функции включают:

  1. Аудит внутренних операций: записывает выполнение внутренних SQL-запросов системой отдельно от пользовательских запросов
  2. Отслеживание статистики: специально записывает операции, связанные со сбором статистики
  3. Поддержка отладки: предоставляет подробные журналы для устранения проблем с внутренними операциями

Записи журнала включают такие элементы, как:

  • Модуль статистики (internal.statistic)
  • Основной системный модуль (internal.base)

Этот журнал особенно полезен для анализа внутреннего процесса сбора статистики Selena и диагностики проблем, связанных с внутренними операциями.

Конфигурация

  • internal_log_dir: Контролирует каталог хранения этого журнала
  • internal_log_modules: Массив, настраивающий внутренние модули журналирования, определяющий, какие модули внутренних операций должны записываться в файл fe.internal.log. По умолчанию: {"base", "statistic"}
  • internal_log_roll_num: Количество сохраняемых файлов. По умолчанию: 90
  • internal_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 90 файлов, а более старые удаляются
  • internal_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 7 дней

fe.audit.log

Это журнал аудита запросов Selena, который записывает подробную информацию обо всех пользовательских запросах и подключениях. Используется для мониторинга, анализа и аудита. Его основные цели включают:

  1. Мониторинг запросов: записывает статус выполнения и метрики производительности всех SQL-запросов
  2. Аудит пользователей: отслеживает поведение пользователей и доступ к базе данных
  3. Анализ производительности: предоставляет метрики, такие как время выполнения запросов и потребление ресурсов
  4. Диагностика проблем: записывает статусы ошибок и коды ошибок для облегчения устранения неполадок

Конфигурация

  • audit_log_dir: Контролирует каталог хранения этого журнала
  • audit_log_roll_num: Количество сохраняемых файлов. По умолчанию: 90
  • audit_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 90 файлов, а более старые удаляются
  • audit_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 7 дней
  • audit_log_json_format: Записывать ли журнал в формате JSON. По умолчанию: false
  • audit_log_enable_compress: Включено ли сжатие

fe.big_query.log

Это специальный файл журнала больших запросов Selena, используемый для мониторинга и анализа запросов с высоким потреблением ресурсов. Его структура аналогична журналу аудита, но включает три дополнительных поля:

  • bigQueryLogCPUSecondThreshold: порог времени CPU
  • bigQueryLogScanBytesThreshold: порог размера сканирования (в байтах)
  • bigQueryLogScanRowsThreshold: порог количества просканированных строк

Конфигурация

  • big_query_log_dir: Контролирует каталог хранения этого журнала
  • big_query_log_roll_num: Количество сохраняемых файлов. По умолчанию: 10
  • big_query_log_modules: Типы внутренних модулей журналирования. По умолчанию: query
  • big_query_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 10 файлов, а более старые удаляются
  • big_query_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 7 дней

fe.dump.log

Это журнал дампа запросов Selena, специально используемый для детальной отладки запросов и диагностики проблем. Его основные цели включают:

  • Отладка исключений: автоматически записывает полный контекст запроса при возникновении исключений во время выполнения запроса
  • Воспроизведение проблем: предоставляет достаточно подробную информацию для воспроизведения проблем с запросами
  • Углублённая диагностика: содержит отладочную информацию, такую как метаданные, статистика, планы выполнения и многое другое
  • Техническая поддержка: предоставляет исчерпывающие данные для анализа проблем командой технической поддержки

Можно включить с помощью следующей команды:

SET enable_query_dump = true;

Конфигурация

  • dump_log_dir: Контролирует каталог хранения этого журнала
  • dump_log_roll_num: Количество сохраняемых файлов. По умолчанию: 10
  • dump_log_modules: Типы внутренних модулей журналирования. По умолчанию: query
  • dump_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 10 файлов, а более старые удаляются
  • dump_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 7 дней

fe.features.log

Это журнал характеристик планов запросов Selena, используемый для сбора и записи информации о характеристиках планов выполнения запросов. Он в основном служит для машинного обучения и анализа оптимизации запросов. Ключевые цели включают:

  1. Сбор характеристик планов запросов: извлечение различных характеристик из планов выполнения запросов
  2. Источник данных для машинного обучения: предоставление обучающих данных для моделей прогнозирования стоимости запросов
  3. Анализ паттернов запросов: анализ паттернов выполнения и распределения характеристик
  4. Улучшение оптимизатора: предоставление данных для поддержки улучшений оптимизатора на основе стоимости (CBO)

Можно включить через конфигурацию.

// Включить сбор характеристик плана
enable_plan_feature_collection = false // По умолчанию отключено

// Включить прогнозирование стоимости запроса
enable_query_cost_prediction = false // По умолчанию отключено

Конфигурация

  • feature_log_dir: Контролирует каталог хранения этого журнала
  • feature_log_roll_num: Количество сохраняемых файлов. По умолчанию: 5
  • feature_log_roll_interval: Определяет частоту ротации. По умолчанию: DAY, что означает ежедневную ротацию. При достижении условий ротации сохраняются последние 5 файлов, а более старые удаляются
  • feature_log_delete_age: Контролирует, как долго хранить старые файлы перед удалением. По умолчанию: 3 дня
  • feature_log_roll_size_mb: Размер ротации журнала. По умолчанию: 1024 МБ, что означает создание нового файла каждые 1 ГБ

Подробное описание журналирования BE/CN

{be или cn}.INFO.log

В основном записывает различные журналы поведения во время выполнения, генерируемые узлами BE/CN, и эти журналы находятся на уровне INFO. Например:

  • Информация о запуске системы:
    • Запуск и инициализация процесса BE
    • Обнаружение аппаратных ресурсов (CPU, память, диск)
    • Загрузка параметров конфигурации
  • Информация о выполнении запросов:
    • Приём и распределение запросов
    • Статус выполнения фрагментов
  • Информация, связанная с хранилищем:
    • Загрузка и выгрузка tablet
    • Процесс выполнения compaction
    • Статус импорта данных
    • Управление дисковым пространством

Конфигурация

  • sys_log_level: Уровень журналирования, по умолчанию INFO
  • sys_log_dir: Каталог хранения журналов, по умолчанию ${SELENA_HOME}/log
  • sys_log_roll_mode: Режим ротации журналов, по умолчанию SIZE-MB-1024, что означает создание нового файла журнала при достижении текущим размера 1024 МБ
  • sys_log_roll_num: Количество сохраняемых файлов журналов, по умолчанию 10

{be или cn}.WARN.log

be.WARN.log хранит записи журнала уровня WARNING и выше. Примеры включают: Предупреждения о выполнении запросов:

  • Слишком долгое время выполнения запроса
  • Предупреждение о сбое выделения памяти
  • Исключение выполнения оператора

Предупреждения, связанные с хранилищем:

  • Ненормальный статус tablet
  • Медленное выполнение compaction
  • Предупреждение о повреждении файла данных
  • Исключение ввода-вывода хранилища

Конфигурация

  • sys_log_level: Уровень журналирования, по умолчанию INFO
  • sys_log_dir: Каталог хранения журналов, по умолчанию ${SELENA_HOME}/log
  • sys_log_roll_mode: Режим ротации журналов, по умолчанию SIZE-MB-1024, что означает создание нового файла журнала при достижении текущим размера 1024 МБ
  • sys_log_roll_num: Количество сохраняемых файлов журналов, по умолчанию 10

{be или cn}.ERROR.log

be.ERROR.log хранит записи журнала уровня ERROR и выше. Типичное содержимое журнала ошибок: Ошибки выполнения запросов

  • Тайм-аут или отмена запроса
  • Сбой запроса из-за нехватки памяти

Ошибки обработки данных

  • Сбои загрузки данных (например, ошибки формата, нарушения ограничений)
  • Сбои записи данных
  • Ошибки чтения данных (например, повреждение файла, ошибки ввода-вывода)

Ошибки системы хранения

  • Сбои загрузки tablet
  • Сбои выполнения compaction
  • Повреждённые файлы данных
  • Ошибки ввода-вывода диска

Конфигурация

  • sys_log_level: Уровень журналирования, по умолчанию INFO
  • sys_log_dir: Каталог хранения журналов, по умолчанию ${SELENA_HOME}/log
  • sys_log_roll_mode: Режим ротации журналов, по умолчанию SIZE-MB-1024, что означает создание нового файла журнала при достижении текущим размера 1024 МБ
  • sys_log_roll_num: Количество сохраняемых файлов журналов, по умолчанию 10

{be или cn}.FATAL.log

В основном записывает различные журналы поведения во время выполнения, генерируемые узлами BE/CN, и эти журналы находятся на уровне FATAL. При генерации такого журнала процесс узла BE/CN завершится.

Конфигурация

  • sys_log_level: Уровень журналирования, по умолчанию INFO
  • sys_log_dir: Каталог хранения журналов, по умолчанию ${SELENA_HOME}/log
  • sys_log_roll_mode: Режим ротации журналов, по умолчанию SIZE-MB-1024, что означает создание нового файла журнала при достижении текущим размера 1024 МБ
  • sys_log_roll_num: Количество сохраняемых файлов журналов, по умолчанию 10

error_log

Этот журнал в основном записывает различные ошибки, отклонённые записи и проблемы ETL, возникающие на узлах BE/CN во время импорта данных. Пользователи могут получить основные причины ошибок импорта через http://be_ip:be_port/api/get_log_file. Файлы журналов хранятся в каталоге ${SELENA_HOME}/storage/error_log.

Конфигурация

  • load_error_log_reserve_hours: Как долго хранятся файлы журналов ошибок. По умолчанию: 48 часов, что означает удаление файлов журналов через 48 часов после их создания.