Перейти к основному содержимому

Сбор событий аудита

Описание системы аудита событий в YuChat

Сервис System audit предназначен для сбора событий во внутренних сервисах YuChat, может быть интегрирован с системами SIEM по протоколу syslog. Существует возможность настроить персистентного хранение событий в базе данных (Mongo) при необходимости. Типы событий описаны в документации: структуры данных сервиса system audit

Конфигурация system-audit-service producer

Актуально для сервисов, которые эмитируют события (backend, admin-dashboard) В application.yaml backend

rabbitmq:
servers:
system-audit:
uri: ${AUDIT_RABBITMQ_URI} # Хост для доступа в RMQ для событий аудита (возможно использовать один и тот же хост)
username: ${AUDIT_RABBITMQ_USERNAME} # Имя пользователя для доступа в RMQ для событий аудита
password: ${AUDIT_RABBITMQ_PASSWORD} # Пароль для доступа в RMQ для событий аудита
virtual-host: ${AUDIT_RABBITMQ_VHOST} # Vhost для доступа в RMQ для событий аудита
client:
sas:
host: ${CLIENT_SAS_HOST} # Хост для доступа в System audit storage service
micronaut:
executors:
system-audit: #конфигурация thread-pool продусера событий
type: fixed
nThreads: 2

В application.yaml admin-dashboard

system:
audit:
rmq:
uri: ${AUDIT_RABBITMQ_URI} # Хост для доступа в RMQ для событий аудита (возможно использовать один и тот же хост)
username: ${AUDIT_RABBITMQ_USERNAME} # Имя пользователя для доступа в RMQ для событий аудита
password: ${AUDIT_RABBITMQ_PASSWORD} # Пароль для доступа в RMQ для событий аудита
client:
sas:
host: ${CLIENT_SAS_HOST} # Хост для доступа в System audit storage service

Конфигурация system-audit-service

В application.yaml system-audit-store

spring:
rabbitmq:
addresses: ${AUDIT_RABBITMQ_URI} # Хост для доступа в RMQ для событий аудита (возможно использовать один и тот же хост)
username: ${AUDIT_RABBITMQ_USERNAME} # Имя пользователя для доступа в RMQ для событий аудита
password: ${AUDIT_RABBITMQ_PASSWORD} # Пароль для доступа в RMQ для событий аудита
virtual-host: ${AUDIT_RABBITMQ_VHOST}
system:
audit:
config:
systemAuditEnabled: true
loggingMode: BODY

Конфигурация log4j

Configuration:
status: "debug"
monitorInterval: 300
appenders:
Console:
- name: ConsoleAppender
target: SYSTEM_OUT
GelfLayout:
compressionType: "OFF"
includeNewLineDelimiter: true
Syslog:
name: SyslogAppender
host: ${SYSLOG_HOST}
port: ${SYSLOG_PORT}
protocol: UDP
facility: LOCAL0
format: RFC5424
appName: system-audit
mdcId: mdc
includeMDC: true
PatternLayout:
pattern: "%m"
connectTimeoutMillis: 30000
reconnectionDelayMillis: 5000
Loggers:
Root:
level: debug
AppenderRef:
- ref: ConsoleAppender
Logger:
- name: ru.yuchat.system.audit.service.LoggingStorageService
level: info
additivity: false
AppenderRef:
- ref: SyslogAppender

В deployment.yaml в разделе spec.template.spec.containers.args проверить наличие аргумента -Dlogging.config=$(LOG4J_CONFIG_FILE)