我在公司内部运行 Jira 和 Confluence。我希望将日志文件发送到 Kibana。

这很容易做到,但我不想重写 Grok 过滤器。我无法想象没有人已经这样做了。

有没有人有一个logstash 托运人配置的例子。大多数像 catalina.log 这样的日志记录都是标准的。

请帮我举例

最佳答案

有人会认为 Java 应用程序日志只有一种形式,但我的经验是通常存在细微的差异。有时线程名称在方括号中,有时在括号中,有时线程名称在前面,有时在记录器名称之后,依此类推。当您尝试解析不止一种类型的日志时,这会变得更加痛苦。

我强烈支持使用 github.com/logstash/log4j-jsonevent-layout 中的 Log4j 布局来生成基于 JSON 的日志,Logstash 无需任何过滤器即可直接读取这些日志,而不是使用各种过滤器来加入多行消息并了解所有字段。除了不必维护过滤器之外,您还可以从每个日志事件中获取所有字段。由于我不知道您的 catalina.log 是什么样子,因此我无法通过解析其内容而不是使用 JSON 布局来判断您会遗漏什么。

缺点是它在部署方面需要更多的工作。显然,您必须部署布局 jar 文件本身,但它有几个自己的依赖项(net.minidev:jsonsmart 和 commons-lang:commons-lang),您也需要使其可用。

10-06 14:08
查看更多