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