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