我们正在使用keycloak 的掌舵图
,我可以为日志配置内部视图(在 web 界面中)。是否可以将这些日志也发送到logstash?
2 回答
您可以使用日志配置创建 jboss-cli 脚本,这些脚本在 Keycloak 映像构建或容器启动时运行,请参阅在启动时运行自定义脚本和Keycloak helm chart 自述文件。以下是基于此处找到的 Wildfly cli 参考。
创建 json 格式化程序
/subsystem=logging/json-formatter=json:add(key-overrides={timestamp="@timestamp"}, exception-output-type=formatted, meta-data={appname=${env.LOGSTASH_APPNAME:myApplicationName}, @version=1})
创建到logstash的出站套接字
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=log-server:add(host="${env.LOGSTASH_DESTINATION:someDefaultDestination}", port=${env.LOGSTASH_PORT:5044})
创建套接字日志处理程序
/subsystem=logging/socket-handler=log-server-handler:add(outbound-socket-binding-ref=log-server, named-formatter=json,protocol=TCP,block-on-reconnect=true)
创建异步处理程序以包装同步套接字处理程序
/subsystem=logging/async-handler=async-log-server-handler:add(level=ALL, queue-length=${env.LOGSTASH_QUEUE:1000}, overflow-action=BLOCK,subhandlers=[log-server-handler])
将异步处理程序添加到根记录器
/subsystem=logging/root-logger=ROOT:add-handler(name=async-log-server-handler)
standalone.xml根据Wildfly Logging 文档,您可以通过添加另一个记录器、格式化程序和/或日志处理程序来覆盖 Wildfly 配置文件(或您使用的任何部署模式)