Keycloak 记录到 Logstash

kra*_*bra 0 logging logstash keycloak kubernetes-helm

我们正在使用keycloak 的 helm 图表,
我可以配置日志的内部视图(在网络界面中)。是否可以将这些日志也发送到logstash?

小智 8

您可以使用日志配置创建在 Keycloak 映像构建或容器启动时运行的 jboss-cli 脚本,请参阅在启动时运行自定义脚本Keycloak helm 图表自述文件。以下基于此处找到的 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)