繁体   English   中英

Keycloak 17 记录到logstash

[英]Keycloak 17 logging to logstash

有没有人知道我该如何做到这一点(顶级评论建议): Keycloak logging to logstash但是对于使用 Quarkus 而不是 Wildfly 的最新 keycloak 版本 17+?

编辑 1 :在我成功将 logstash 功能添加到我的 keycloak+quarkus 构建之后

我是否认为此配置是来自链接的 Wildfly cli 的正确“替换”:

quarkus.log.handler.gelf.enable=true
quarkus.log.handler.gelf.json=true
quarkus.log.handler.gelf.json.key-overrides={timestamp="@timestamp"}
quarkus.log.handler.gelf.json.exception-output-type=formatted
quarkus.log.handler.gelf.json.additional-field."appname".value=${env.LOGSTASH_APPNAME:myApplicationName}
quarkus.log.handler.gelf.json.additional-field."@version".value=1

quarkus.log.handler.gelf.host="${env.LOGSTASH_DESTINATION:someDefaultDestination}"
quarkus.log.handler.gelf.port=${env.LOGSTASH_PORT:5044}

#Default vale is tcp
#quarkus.log.handler.gelf.protocol=tcp
quarkus.log.handler.gelf.block-on-reconnect=true

quarkus.log.handler.gelf.async=true
#Default value is ALL
#quarkus.log.handler.gelf.level=ALL
quarkus.log.handler.gelf.async.queue-length=${env-LOGSTASH_QUEUE:1000}
#Default value is block
#quarkus.log.handler.gelf.async.overflow=block

还是有一些我刚刚“编造”的配置?

首先:目前 keycloak 没有直接对 gelf/logstash 的原生支持。 也就是说,可以肯定地使用 quarkus logging gelf 扩展。 为了使它起作用,它有点复杂,但总的来说你必须:

  1. 下载 quarkiverse-logging-gelf 的 jar-“部署”和运行时 jar,用于您的 keycloak 版本使用的 quarkus 版本(2.7.0?不确定,iirc 我在 17.0.1 中更新到 2.7.5) . 您还需要下载此 quarkus 扩展的瞬态依赖项,即正确版本的 logstash-gelf jar。 将这些 jars 放在你的 kc 的“providers”目录中。

  2. 在 conf 目录中创建一个 quarkus.properties 文件并添加所需的配置。 quarkus 主页上有集中的日志管理指南。

  3. 运行“构建”

  4. 启动密钥斗篷。 您的日志现在应该显示

[io.quarkus] (main) Installed features: [..., logging-gelf, ...]

它应该可以按照您想要的方式获取您的日志。

这些步骤也通过示例进行了描述,例如此处

注意:我在 Keycloak 团队。 现在直接没有开箱即用的支持,bc。 我们正在考虑更好地利用 quarkus 的扩展方法(因此您不必手动下载 jar 和瞬态依赖项),但我想对于这种特定情况,我们将来会做一些事情:)

编辑:使用 keycloak 配置打开 pr 以获得支持:-> https://github.com/keycloak/keycloak/pull/12843

编辑2 :pr合并,下一个主要版本应该提供一流的支持(我猜是19)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM