有人知道我该怎么做吗(热门评论建议的):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
或者有一些配置是我刚刚“编造”的?
1条答案
按热度按时间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.你的日志现在应该显示
而且它应该能让你的日志按照你想要的方式输出。
这些步骤也通过示例进行了描述,例如此处。
注意:我是Keycloak团队的一员。目前还没有直接的开箱即用支持,BC。我们正在考虑更好地利用Quarkus的扩展方法(这样你就不必手动下载jar和 transient 依赖项),但我想对于这个特定的案例,我们将来会做一些事情:)
编辑:打开pr以获得使用keycloak配置的支持:- 〉https://github.com/keycloak/keycloak/pull/12843
编辑2:PR合并,一流的支持应该可以从下一个主要版本(19我猜)