Логирование в 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