logstash Keycloak 17记录到日志存储区

hfyxw5xn  于 2022-12-16  发布在  Logstash
关注(0)|答案(1)|浏览(142)

有人知道我该怎么做吗(热门评论建议的):Keycloak logging to logstash但是对于使用Quarkus而不是Wildfly的最新密钥斗篷版本17+来说呢?

编辑1:在我成功地将logstash特性添加到我的keycloak+quarkus构建版本中之后,logging-gelf显示在已安装特性下

我仍然看不到Kibana上的日志,就好像日志没有被发送,但功能已经安装。
我认为此配置是link中Wildfly cli的正确“替代品”,这是否正确:

quarkus.log.handler.gelf.enabled=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=tcp:${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

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

qcbq4gxm

qcbq4gxm1#

首先:目前keycloak还没有直接支持gelf/logstash.也就是说,使用quarkus logging gelf扩展是可以做到的.为了让它工作,这是有点复杂,但一般来说你必须:
1.下载quarkiverse-logging-gelf - both的jar,“部署”和运行时jar,用于您的keycloak版本使用的quarkus版本(2.7.0?不确定,iirc I在17.0.1中更新为2.7.5).另外,您还需要下载这个 quarkus 扩展的 transient 依赖项,也就是正确版本的logstash-gelf jar,把这些jar放到kc的“providers”目录下。
1.在quarkus.propertiesconf目录下创建一个www.example.com文件并添加你想要的配置。2在quarkus主页上有一个集中的日志管理指南。
1.运行“构建”
1.启动Keycloak.你的日志现在应该显示

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

而且它应该能让你的日志按照你想要的方式输出。
这些步骤也通过示例进行了描述,例如此处。
注意:我是Keycloak团队的一员。目前还没有直接的开箱即用支持,BC。我们正在考虑更好地利用Quarkus的扩展方法(这样你就不必手动下载jar和 transient 依赖项),但我想对于这个特定的案例,我们将来会做一些事情:)

编辑:打开pr以获得使用keycloak配置的支持:- 〉https://github.com/keycloak/keycloak/pull/12843
编辑2:PR合并,一流的支持应该可以从下一个主要版本(19我猜)

相关问题