Логирование в Ranger
Доступные логи
Во время работы компоненты Ranger сохраняют свои логи в несколько файлов. По умолчанию файлы логов хранятся по пути /var/log/ranger/<component>/<file>, где <component>
— название компонента Ranger, а <file>
— название файла логов. Эти логи можно просмотреть только на хосте, так как они не отображаются в Ranger Admin UI. Например, вывод одного из логов Ranger Admin:
$ cat /var/log/ranger/admin/ranger_admin_sql.log
В таблице ниже представлено описание файлов и к какому компоненту они относятся.
Компонент | Файл логов | Назначение |
---|---|---|
Admin |
catalina.out |
Логи работы сервиса Tomcat. Здесь содержится все, что выводится в потоки |
access-localhost<date> |
Логи доступа к Tomcat в день |
|
ranger_admin_sql.log |
Логи обращения к DBService (см. схему в статье Архитектура Ranger) |
|
gc-worker.log |
Логи сборщика мусора Ranger Admin |
|
ranger-admin-<host_fqdn>-ranger.log |
Логи работы компонента Ranger Admin |
|
ranger_admin_perf.log |
Логи производительности Ranger |
|
ranger_db_patch.log |
Логи патчей при апгрейдах, установках, миграциях |
|
KMS |
catalina.out |
Логи работы сервиса Tomcat. Здесь содержится все, что выводится в потоки |
kms-audit-<host_fqdn>-kms.log |
Логи аудита компонента Ranger KMS |
|
ranger-kms-<host_fqdn>-kms.log |
Логи работы компонента Ranger KMS |
|
UserSync |
auth.log |
Логи запуска сервиса до перехвата стандартным логером |
usersync-<host_fqdn>-ranger.log |
Логи работы компонента Ranger UserSync |
Настройки логирования
Для логирования в Ranger используется фреймворк logback. Он является идейным преемником широко известного Log4j с улучшенной производительностью, нативной поддержкой slf4j и расширенными опциями фильтрации.
Структура Logback-файла
Ниже представлено содержимое конфигурационного файла logback.xml для Ranger KMS по умолчанию (без информации о лицензии, комментариев и некоторых повторяющихся тегов):
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<appender name="kms-audit" class="ch.qos.logback.core.rolling.RollingFileAppender"> (1)
<Append>true</Append> (2)
<File>${kms.log.dir}/kms-audit-${hostname}-${user}.log</File> (3)
<encoder> (4)
<pattern>%d{ISO8601} %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> (5)
<fileNamePattern>${kms.log.dir}/kms-audit-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern> (6)
<maxHistory>15</maxHistory> (7)
<cleanHistoryOnStart>true</cleanHistoryOnStart> (8)
</rollingPolicy>
</appender>
<appender name="kms" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${kms.log.dir}/ranger-kms-${hostname}-${user}.log</File>
<Append>true</Append>
<encoder>
<pattern>%d{ISO8601} %-5p [%t] %c{1} \(%F:%L\) - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${kms.log.dir}/ranger-kms-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<logger name="kms-audit" additivity="false" level="INFO"> (9)
<appender-ref ref="kms-audit"/> (10)
</logger>
<root level="WARN"> (11)
<appender-ref ref="kms"/>
</root>
</configuration>
Файл logback.xml может содержать множество секций, о которых вы можете узнать в подробностях в документации logback, а ниже представлено краткое описание используемых секций:
1 | appender. Тег <appender> представляет собой объект, содержащий информацию, необходимую для логирования: путь к файлу вывода, формат логов, что и когда логировать. Logback предоставляет несколько видов объектов appender, но в Ranger по умолчанию используется только RollingFileAppender. |
2 | Append. Тег <Append> является флагом, определяющим, стоит ли очищать файл перед записью каждый раз. |
3 | File. Тег <File> содержит путь к файлу вывода логов. Если файл по указанному пути не существует, то он будет создан. |
4 | encoder. Объект <encoder> трансформирует событие в массив байтов. Его параметр <pattern> представляет собой layout и определяет как будет выглядеть запись в логах. Здесь можно настроить необходимый формат логов. |
5 | rollingPolicy. Политика, отвечающая за операцию ротации, которая включает в себя перемещение и переименование файлов. Существует несколько политик ротации, но в Ranger используется только TimeBasedRollingPolicy, которая определяет ротацию по времени (например, по дням, неделям и т.д.). |
6 | fileNamePattern. Этот параметр состоит из имени файла и секции %d , которая может содержать формат даты и времени. Если формат не указан, то используется стандартный yyyy-MM-dd . Период ротации выводится исходя из значения этого параметра. |
7 | maxHistory. Определяет, сколько файлов логов может находиться одновременно перед удалением. Когда указанное значение превышается, старые файлы логов асинхронно удаляются. |
8 | cleanHistoryOnStart. Определяет, следует ли очищать историю логов перед началом работы объекта appender. |
9 | logger. Объявление логера. Здесь можно указать уровень логирования. |
10 | appender-ref. Объект appender , который будет использовать этот логер. |
11 | root. Объявление root-логера. |
Уровни логирования
В logback доступны следующие уровни логирования:
-
OFF
— логирование отключено. -
ERROR
— запись всех ошибок и событий, которые могут привести к непредвиденному поведению. -
WARN
— запись всех событий, сигнализирующих о неправильном использовании. -
INFO
— запись редких или нерегулярных событий, например, загрузка файла конфигурации. -
DEBUG
— запись всех основных событий. Используется для локализации ошибок. -
TRACE
— запись всех событий. Имеет смысл использовать для локализации ошибок, если уровеньDEBUG
недостаточен.
Каждый последующий уровень логирования также включает в себя логи всех предыдущих уровней.
Настройка в ADCM
У каждого компонента Ranger в настройках есть файл-параметр logback.xml, в котором хранятся текущие настройки логирования: формат логирования, файл вывода логов, уровень логирования и максимальное количество записей в истории логов. Чтобы отредактировать этот файл в ADCM, следуйте шагам ниже:
-
На странице Clusters выберите ваш кластер ADPS.
-
Перейдите на вкладку Services и выберите Ranger.
-
Перейдите на вкладку Components. На этой вкладке следует выбрать компонент, для которого вы хотите изменить настройки логирования.
-
Измените параметр logback.xml под ваши нужды, сохраните конфигурацию и перезапустите Ranger.