Логирование в 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. Здесь содержится все, что выводится в потоки system.out и system.err сервиса Tomcat

access-localhost<date>

Логи доступа к Tomcat в день <date>

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. Здесь содержится все, что выводится в потоки system.out и system.err сервиса 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, следуйте шагам ниже:

  1. На странице Clusters выберите ваш кластер ADPS.

  2. Перейдите на вкладку Services и выберите Ranger.

  3. Перейдите на вкладку Components. На этой вкладке следует выбрать компонент, для которого вы хотите изменить настройки логирования.

  4. Измените параметр logback.xml под ваши нужды, сохраните конфигурацию и перезапустите Ranger.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней