You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak 17+(Quarkus版)日志输出到Logstash配置问题咨询

Keycloak 17+(Quarkus内核)GELF日志对接Logstash配置校验与故障排查

现有配置问题说明

你提供的配置存在3类问题,无法正常生效:

  • 无效配置项:所有前缀为quarkus.log.handler.gelf.json.*的参数均不属于Quarkus GELF日志扩展的合法配置。该扩展默认输出标准GELF格式JSON日志,不存在json开关、key-overrides、exception-output-type、json层级下的additional-field这类配置项,属于混淆Wildfly版Keycloak子系统配置、其他JSON日志扩展参数导致的错误。
  • 格式错误:${env-LOGSTASH_QUEUE:1000}的环境变量占位符写法错误,Quarkus配置中环境变量引用的分隔符为.,正确写法为${env.LOGSTASH_QUEUE:1000};quarkus.log.handler.gelf.host参数中添加的tcp:前缀为非法值,协议需通过独立的protocol参数配置,host字段仅需填写Logstash服务的IP或域名,前缀会直接导致域名解析失败,无法建立连接。
  • 逻辑错误:配置中填写的默认端口5044是Logstash Beats输入插件的默认端口,与GELF协议不兼容,GELF输入默认端口为12201,端口不匹配会导致流量被Logstash直接丢弃。

可直接使用的正确配置

以下配置可完全替代原Wildfly版本的CLI日志配置,适配Quarkus内核Keycloak:

# 启用GELF日志处理器
quarkus.log.handler.gelf.enabled=true
# GELF服务端连接配置
quarkus.log.handler.gelf.host=${env.LOGSTASH_DESTINATION:logstash服务地址}
quarkus.log.handler.gelf.port=${env.LOGSTASH_PORT:12201}
quarkus.log.handler.gelf.protocol=tcp
quarkus.log.handler.gelf.block-on-reconnect=true
# 异步发送配置
quarkus.log.handler.gelf.async=true
quarkus.log.handler.gelf.async.queue-length=${env.LOGSTASH_QUEUE:1000}
quarkus.log.handler.gelf.async.overflow=block
# 日志捕获级别
quarkus.log.handler.gelf.level=ALL
# 内置字段配置
quarkus.log.handler.gelf.facility=${env.LOGSTASH_APPNAME:keycloak}
quarkus.log.handler.gelf.include-full-mdc=true
# 自定义附加字段(按需添加,无json层级前缀)
quarkus.log.handler.gelf.additional-field."appname".value=${env.LOGSTASH_APPNAME:myApplicationName}
quarkus.log.handler.gelf.additional-field."@version".value=1

说明:标准GELF协议默认自带@timestamp字段,无需额外配置字段映射即可被Logstash、Kibana直接识别。

安装logging-gelf特性后Kibana无日志的排查方向

  • 配置加载验证:Keycloak 17+版本的自定义配置需写入conf/keycloak.conf文件,首次修改配置启动时需添加--auto-build参数触发配置构建。可开启DEBUG日志(启动参数添加--log-level=DEBUG)查看启动日志,确认GELF处理器初始化成功、无连接报错。仅安装logging-gelf特性未正确启用处理器时,不会向外发送日志。
  • 协议与端口匹配:确认Logstash侧已开启GELF类型输入,输入协议(TCP/UDP)、端口与Keycloak侧配置完全一致,禁止使用Beats、HTTP等其他输入插件的端口接收GELF流量,协议不兼容时流量会被直接丢弃。
  • 网络连通性验证:在Keycloak部署节点直接测试到Logstash对应端口的连通性,确认节点出站规则、Logstash入站规则、防火墙/安全组没有拦截对应端口流量。
  • 全链路验证:确认Logstash接收GELF日志后,过滤规则正常、输出到Elasticsearch无报错,Elasticsearch索引正常生成,Kibana侧索引模式匹配正确、查询时间范围覆盖日志产生时间。

内容的提问来源于stack exchange,提问作者Jaroslaw Pasiak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 23:03:31