6.1. Логирование
Мониторинг и диагностика Apache Ozone: Логирование
Логирование — важная часть мониторинга и диагностики Apache Ozone, которая помогает отслеживать состояние системы, выявлять ошибки и обеспечивать стабильную работу кластера. Логи записываются для каждого компонента Ozone, включая Ozone Manager (OM), Storage Container Manager (SCM), DataNode Service, S3 Gateway и Recon. В этом разделе описываются принципы логирования в Apache Ozone, настройка уровней логирования и расположение лог-файлов.
1. Основные компоненты логирования
Apache Ozone использует Log4j для управления логированием. Каждый компонент ведёт отдельный лог, что позволяет легко отслеживать работу конкретного сервиса и находить источники ошибок.
Основные лог-файлы Ozone:
- Ozone Manager (OM):
/var/log/ozone/om.log
- Storage Container Manager (SCM):
/var/log/ozone/scm.log
- DataNode:
/var/log/ozone/datanode.log
- S3 Gateway (S3G):
/var/log/ozone/s3g.log
- Recon:
/var/log/ozone/recon.log
2. Уровни логирования
Log4j поддерживает несколько уровней логирования, которые можно настроить для каждого компонента:
- ERROR: Логируются только критические ошибки, требующие немедленного внимания.
- WARN: Логируются предупреждения, которые не критичны, но могут указывать на потенциальные проблемы.
- INFO: Логируются информационные сообщения о выполнении ключевых операций.
- DEBUG: Логируются подробные сообщения для диагностики и отладки.
- TRACE: Логируются наиболее подробные данные, используемые для глубокого анализа системы.
Рекомендуется использовать уровень INFO для рабоч их сред и DEBUG или TRACE для отладки и тестирования.
3. Настройка логирования
Настройка логирования осуществляется в файле log4j.properties
, который находится в директории конфигурации Ozone ($OZONE_HOME/conf
). Для каждого компонента можно указать свой уровень логирования и местоположение логов.
Пример файла log4j.properties
:
# Уровень логирования для Ozone Manager
log4j.logger.ozone.om=INFO, omAppender
log4j.appender.omAppender=org.apache.log4j.RollingFileAppender
log4j.appender.omAppender.File=/var/log/ozone/om.log
log4j.appender.omAppender.MaxFileSize=10MB
log4j.appender.omAppender.MaxBackupIndex=5
log4j.appender.omAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.omAppender.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c: %m%n
# Уровень логирования для Storage Container Manager
log4j.logger.ozone.scm=INFO, scmAppender
log4j.appender.scmAppender=org.apache.log4j.RollingFileAppender
log4j.appender.scmAppender.File=/var/log/ozone/scm.log
log4j.appender.scmAppender.MaxFileSize=10MB
log4j.appender.scmAppender.MaxBackupIndex=5
log4j.appender.scmAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.scmAppender.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c: %m%n
4. Переопределение уровня логирования в режиме реального времени
Для изменения уровня логирования в режиме реального времени без перезапуска компонента используйте команду:
bin/ozone debug setLogLevel --class <class_name> --level <log_level>
Пример изменения уровня логирования для Ozone Manager на DEBUG:
bin/ozone debug setLogLevel --class org.apache.hadoop.ozone.om --level DEBUG
5. Просмотр логов в реальном времени
Для просмотра логов в реальном времени можно использовать команду tail -f
:
tail -f /var/log/ozone/om.log
tail -f /var/log/ozone/scm.log
Эти команды позволяют следить за записями логов по мере их появления, что удобно для оперативного отслеживания событий в кластере.
6. Ротация логов
Для управления размером лог-файлов и предотвращения их переполнения в Log4j предусмотрена ротация логов. Она позволяет создавать резервные копии лог-файлов при достижении заданного размера и хранить несколько последних копий.
В log4j.properties
можно задать настройки ротации:
log4j.appender.omAppender.MaxFileSize=10MB
log4j.appender.omAppender.MaxBackupIndex=5
- MaxFileSize: Максимальный размер файла лога. Когда файл достигает этого размера, создаётся новый файл.
- MaxBackupIndex: Количество резервных копий, которые будут храниться.
7. Примеры логов
-
Информационные сообщения (INFO):
2023-04-10 12:00:00 INFO org.apache.hadoop.ozone.om.OzoneManager: Volume myvolume created successfully.
-
Сообщения об ошибках (ERROR):
2023-04-10 12:05:00 ERROR org.apache.hadoop.ozone.scm.SCM: Failed to allocate container: DataNode not available.
-
Предупреждения (WARN):
2023-04-10 12:10:00 WARN org.apache.hadoop.ozone.datanode.DataNodeService: DataNode is running low on disk space.
Эти сообщения помогают оперативно выявлять и решать проблемы, возникающие в кластере.
8. Использование логов для диагностики и решения проблем
Логи предоставляют ценную информацию о состоянии кластера, производительности и возникающих проблемах. Вот несколько способов использования логов для диагностики:
- Проблемы с DataNode: Проверяйте логи DataNode на наличие ошибок и предупреждений, связанных с дисковым пространством, подключением и репликацией.
- Проблемы с SCM: Логи SCM помогают обнаруживать проблемы с контейнерами и распределением реплик, а также отслеживать состояние узлов.
- Ошибки аутентификации: Логи S3 Gateway содержат информацию о попытках подключения, что полезно для диагностики проблем с доступом.
- Веб-интерфейс Recon: Логи Recon помогают отслеживать состояние кластера, включая отчёты о неконсистентных контейнерах и недостающих репликах.
Итог
Логирование — это важный аспект мониторинга и диагностики Apache Ozone, обеспечивающий прозрачность работы кластера и упрощающий решение проблем. Логи для каждого компонента Ozone ведутся отдельно и могут быть настроены для различных уровней детализации. Понимание и правильное использование логов позволяет администраторам кластера своевременно выявлять и устранять проблемы, обеспечивая стабильную работу хранилища данных.