从 karaf 登录到 ELK 堆栈

logging to ELK stack from karaf

我一直在努力设置 ELK 堆栈以集中我们的日志并更易于检查,但我 运行 遇到了一些障碍。

我已经修改了一些 java 程序以使用来自 log4j 的套接字附加程序,并且每次都运行良好。现在我正在尝试将它添加到 karaf 以记录我们所有的 karaf 日志,但它似乎没有用。

我补充道:

log4j.rootLogger=INFO, logstash, osgi:*

# Logstash appender
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.Port=PORT
log4j.appender.logstash.RemoteHost=HOST
log4j.appender.logstash.ReconnectionDelay=10000

{karaf_home}/etc/org.ops4j.pax.logging.cfg 中的文件(显然 port/host 正确)然后重新启动 karaf 只是为了确保(我读到的东西说它会自动获取更改但我不知道如果我信任它,那么无论如何我都会重新启动它)但似乎没有任何东西从 karaf 到我们的 ELK 堆栈。当我在 karaf 控制台上执行 log:display 时,我看到大量消息被写入日志,但在 ELK 中 none。

关于为什么这对 karaf 不起作用,但对使用相同 appender 的其他项目起作用的任何线索?

你应该看看 karaf decanter。它已经包含可用于将日志发送到 ELK 堆栈的连接器,decanter-collector-log 可能就是您正在寻找的