如何设置Keycloak单独输出Events日志?

Keycloak

1 前言

一个问题,一篇文章,一出故事。
最近笔者对Keycloak的跨数据中心冗余方案进行调整,实现了数据中心之间的两个Keycloak集群配置数据同步(本质是MySQL的数据同步,即逻辑导入导出)。
如果你需要,请参阅如下实现,
https://github.com/tanzhenchao/keycloaktool
但是问题随之而来,笔者担心被同步配置的从节点日志被覆盖,因此需要确保日志输出到文件并被上传的。
因此本章的重点是将Keycloak原本保存在数据库中的Events日志输出到文件。以便为上传到日志系统作准备。
题外话,如果需要知道如何将文件中的日志上传到日志系统,你可以参考如下方案,

如何部署带安全认证的Filebeat与logstash集成?

2 最佳实践

2.1 检查Event日志输出参数

grep ^log /etc/keycloak/keycloak.conf

确保以下配置已经启用,

log-level="INFO,org.keycloak.events:DEBUG"

更加详细的案例,笔者生产环境中日志配置如下,

log = console,file
log-level = INFO,org.keycloak.storage:debug,org.keycloak.services:debug,org.keycloak.broker:debug,org.keycloak.events:debug
log-file = /var/log/keycloak/keycloak.log
log-file-size = 10MB
log-file-count = 20

注意,当前配置会将Events的日志输出到“/var/log/keycloak/keycloak.log”中,如果你是新增日志需要重启Keycloak服务,

systemctl restart keycloak

2.2 设置Event日志输出到单独的问题

vim /etc/keycloak/quarkus.properties

加入如下配置,

quarkus.log.category."org.keycloak.events".handlers=events-handler
quarkus.log.category."org.keycloak.events".level=DEBUG
quarkus.log.category."org.keycloak.events".use-parent-handlers=false
quarkus.log.handler.file.events-handler.enable=true
quarkus.log.handler.file.events-handler.path=/var/log/keycloak/events.log
quarkus.log.handler.file.events-handler.rotation.max-file-size=50M
quarkus.log.handler.file.events-handler.rotation.max-backup-index=10

然后,你需要重启Keycloak服务使配置生效,

systemctl restart keycloak
没有评论

发表回复

Keycloak
如何定义Keycloak infinispan集群名称?

1 前言 一个问题,一篇文章,一出故事。 笔者的生产环境有两个数据中心,我们简称dg和hk,当前系统 …

Keycloak
如何监控Keycloak?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有一套keycloak集群需要正式上线,上线前 …

Keycloak
如何配置KeyCloak读取/etc/hosts的设置?

1 前言 一个问题,一篇文章,一出故事。 如何升级RHBK的版本? Quarkus/RHBK默认使用 …