从filebeat-tomcat模块配置多行



我使用带有tomcat模块的filebeat 7.15向kibana发送日志。我正在尝试将异常作为一条消息发送。

我的tomcat.yml配置是这样的。

- module: tomcat
log:
enabled: true
var.input: file
var.paths: ["catalina.out"]
input:
multiline.pattern: "^[[:space:]]*at |^Caused by:"
multiline.negate: false
multiline.match: after

现在,每当发生异常时,在kibana日志流中,异常的所有行都会丢失(所以我认为它们是粘在一起的(,但该事件缺少消息并打印";未能找到消息";。还有";log.flags:multiline";,但我搞不清楚到底出了什么问题。

编辑:无法实现这一点,最终禁用了tomcat模块,并在filebeat.yml.中使用多行和管道配置了日志输入

您可以在此处参考多行模式的文档:https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html

根据这个常见的Java异常,多行应该具有以下模式:

Exception in thread "main" java.lang.IllegalStateException: A book has a null property
at com.example.myproject.Author.getBookIds(Author.java:38)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Caused by: java.lang.NullPointerException
at com.example.myproject.Book.getId(Book.java:22)
at com.example.myproject.Author.getBookIds(Author.java:35)
... 1 more
multiline.type: pattern
multiline.pattern: '^[[:space:]]+(at|.{3})[[:space:]]+b|^Caused by:'
multiline.negate: false
multiline.match: after

在本例中,模式匹配以下行:

  • 一行,以空格开头,后跟单词at或
  • 以单词"由…引起"开头的一行:

最新更新