Журналирование и аудит#
Журналирование#
Для журналирования Corax использует Apache Log4j 2.
Для настройки уровней журналирования необходимо использовать log4j.properties.
Аудит#
Особенности настройки плагина аудита и брокера Corax#
Пример настройки логгера в файле log4j.properties:
log4j.appender.auditFileAppender = org.apache.log4j.RollingFileAppender //включение режима записи rolling update
log4j.appender.auditFileAppender.File = ${kafka.logs.dir}/kafka-audit.log //путь к log-файлу
log4j.appender.auditFileAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.auditFileAppender.layout.ConversionPattern = [%d] %p %m (%c)%n //формат даты и времени
log4j.logger.kafka.audit.provider.LogAuditProvider = INFO, auditFileAppender //уровень логирования
log4j.appender.auditFileAppender.MaxBackupIndex=10
log4j.appender.auditFileAppender.MaxFileSize=100MB
log4j.additivity.kafka.audit.provider.LogAuditProvider=false
Внимание
Для логирования Zookeeper необходим отдельный файл настроек log4j.
В файле KAFKA_DIR/config/server.properties необходимо задать настройку system.id — идентификатор системы, которая отправляет события аудита в централизованную систему аудита.
Аудит Schema Registry#
В каждом событии присутствуют следующие поля:
SystemID="SchemaRegistry";MetamodelVersion="1.0";UserLogin— логин пользователя, выполнившего запрос;UserNode— хост, откуда пользователь выполнил запрос;Session— идентификатор сессии, в рамках которой выполнен запрос.
Дополнительные поля для каждого типа событий:
ACL — события отправляются при модификации ACL.
{ "name": "ACL", "description": "ACL modification", "success": "true", "mode": "SPEED", "params": [ { "name": "op", "description": "Granted operation" }, { "name": "allow", "description": "Allow pattern" }, { "name": "subject", "description": "Subject(can be null)" }, { "name": "patternType", "description": "Subject pattern type()" }, { "name": "tombstone", "description": "Tombstone flag(true if removal)" } ] }Schema operation — события отправляются при выполнении любого запроса на запись.
{ "name": "operation", "description": "Regular schema registry operation", "success": "true", "mode": "SPEED", "params": [ { "name": "url", "description": "URL" }, { "name": "method", "description": "HTTP method" } ] }Access denied — события отправляются при попытке выполнения любого запроса (в том числе и на чтение), на который у пользователя нет прав.
{ "name": "access-denied", "description": "Attempt to execute forbidden operation", "success": "true", "mode": "SPEED", "params": [ { "name": "url", "description": "URL" }, { "name": "method", "description": "HTTP method" } ] }Not authenticated — события отправляются при попытке выполнения любого запроса (в том числе и на чтение) без аутентификации.
{ "name": "not-authenticated", "description": "Attempt to execute operation without authentication", "success": "true", "mode": "SPEED", "params": [ { "name": "url", "description": "URL" }, { "name": "method", "description": "HTTP method" } ] }