Логирование в Knox

Настройки логирования

Настройки логирования Knox определяются в формате log4j 2. Компонент Knox Gateway содержит два параметра, отвечающих за логирование:

  • gateway-log4j2.xml template — настройки логов для аудита и шлюза.

  • knoxshell-log4j2.xml — настройки логов для HTTP-клиента.

Содержимое этих файлов по умолчанию можно найти в конфигурационных параметрах Knox.

Для изменения настроек логирования отредактируйте эти файлы в соответствии с синтаксисом log4j 2.

Доступные логи

Компонент Knox Gateway генерирует несколько файлов с различной информацией. Все представленные ниже файлы хранятся в директории var/log/knox:

  • gateway-audit.log — логи аудита, который отслеживает действия в Knox.

  • gateway.log — логи внутренних операций шлюза.

  • gateway.err — логи с описанием ошибок (например, SLF4J: Class path contains multiple SLF4J bindings).

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

$ cat var/log/knox/<log_file>

Логи аудита

Логи аудита сохраняются в следующем формате:

EVENT_PUBLISHING_TIME ROOT_REQUEST_ID|PARENT_REQUEST_ID|REQUEST_ID|LOGGER_NAME|TARGET_SERVICE_NAME|USER_NAME|PROXY_USER_NAME|SYSTEM_USER_NAME|ACTION|RESOURCE_TYPE|RESOURCE_NAME|OUTCOME|LOGGING_MESSAGE

где:

  • EVENT_PUBLISHING_TIME — время записи.

  • ROOT_REQUEST_ID — на данный момент пусто.

  • PARENT_REQUEST_ID — на данный момент пусто.

  • REQUEST_ID — уникальный идентификатор запроса.

  • LOGGER_NAME — наименование логера.

  • TARGET_SERVICE_NAME — название сервиса Hadoop. Может быть пустым, если запись не привязана ни к одному сервису, например, запись о развертывании топологии.

  • USER_NAME — имя пользователя, инициировавшего сессию с Knox.

  • PROXY_USER_NAME — сопоставленное имя пользователя.

  • SYSTEM_USER_NAME — на данный момент пусто.

  • ACTION — тип исполненного действия. Определены следующие виды действий: authentication, authorization, redeploy, deploy, undeploy, identity-mapping, dispatch, access.

  • RESOURCE_TYPE — тип ресурса, для которого было выполнено действие. Определены следующие виды ресурсов: uri, topology, principal.

  • RESOURCE_NAME — наименование ресурса. Для типа ресурса topology это название топологии. Для uri — путь к ресурсу. Для principal — имя сопоставленного пользователя.

  • OUTCOME — результат действия. Определены следующие возможные результаты: success, failure, unavailable.

  • LOGGING_MESSAGE — сообщение с дополнительной информацией.

Например, так выглядит запись в логах, соотнесенная с форматом записи:

EVENT_PUBLISHING_TIME   25/01/23 12:25:31
ROOT_REQUEST_ID
PARENT_REQUEST_ID       |
REQUEST_ID              |27742083-7b22-4a87-8aa8-9befa06efcdc
LOGGER_NAME             |audit
TARGET_SERVICE_NAME     |
USER_NAME               |
PROXY_USER_NAME         |
SYSTEM_USER_NAME        |
ACTION                  |access
RESOURCE_TYPE           |uri
RESOURCE_NAME           |/gateway/homepage/favicon.ico
OUTCOME                 |success
LOGGING_MESSAGE         |Response status: 404

Логи шлюза

Логи шлюза записываются в следующем формате:

EVENT_PUBLISHING_TIME REQUEST_ID LOG_LEVEL TARGET_SERVICE_NAME LOGGING_MESSAGE

где:

  • EVENT_PUBLISHING_TIME — время, когда произошло событие.

  • REQUEST_ID — уникальный идентификатор запроса.

  • LOG_LEVEL — уровень логирования, соответствующий событию (см. уровни логирования).

  • TARGET_SERVICE_NAME — наименование сервиса Hadoop.

  • LOGGING_MESSAGE — сообщение с дополнительной информацией.

Например, запись в gateway.log может выглядеть следующим образом:

2025-01-23 12:25:31,908 27742083-7b22-4a87-8aa8-9befa06efcdc WARN  knox.gateway (GatewayFilter.java:doFilter(202)) - Failed to match path /favicon.ico
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней