filebeat合并多行日志示例


声明:本文转载自https://my.oschina.net/openplus/blog/1589846,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

译文

多行配置示例

本节中的示例包括以下内容:

  • 将Java堆栈跟踪日志组合成一个事件
  • 将C风格的日志组合成一个事件
  • 结合时间戳处理多行事件

Java堆栈跟踪

Java示例一:

Java堆栈跟踪由多行组成,每一行在初始行之后以空格开头,如本例中所述:

Exception in thread "main" java.lang.NullPointerException         at com.example.myproject.Book.getTitle(Book.java:16)         at com.example.myproject.Author.getBookTitles(Author.java:25)         at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

要将这些行整合到Filebeat中的单个事件中,请使用以下多行配置:

multiline.pattern: '^[[:space:]]' multiline.negate: false multiline.match: after

此配置将以空格开头的所有行合并到上一行。

Java示例二:

下面是一个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

要将这些行整合到Filebeat中的单个事件中,请使用以下多行配置:

multiline.pattern: '^[[:space:]]+(at|\.{3})\b|^Caused by:' multiline.negate: false multiline.match: after

此配置解释如下:

  • 将以空格开头的所有行合并到上一行
  • 并把以Caused by开头的也追加到上一行

C风格的日志

一些编程语言在一行末尾使用反斜杠(\)字符,表示该行仍在继续,如本例中所示:

printf ("%10.10ld  \t %10.10ld \t %s\   %f", w, x, y, z );

要将这些行整合到Filebeat中的单个事件中,请使用以下多行配置:

multiline.pattern: '\\$' multiline.negate: false multiline.match: before

此配置将以\字符结尾的任何行与后面的行合并。

时间戳
来自Elasticsearch等服务的活动日志通常以时间戳开始,然后是关于特定活动的信息,如下例所示:

[2015-08-24 11:49:14,389][INFO ][env                      ] [Letha] using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs] 

要将这些行整合到Filebeat中的单个事件中,请使用以下多行配置:

multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' multiline.negate: true multiline.match: after

此配置使用negate: truematch: after设置来指定任何不符合指定模式的行都属于上一行。

应用程序事件

有时您的应用程序日志包含以自定义标记开始和结束的事件,如以下示例:

[2015-08-24 11:49:14,389] Start new event [2015-08-24 11:49:14,395] Content of processing something [2015-08-24 11:49:14,399] End event

要在Filebeat中将其整合为单个事件,请使用以下多行配置:

multiline.pattern: 'Start new event' multiline.negate: true multiline.match: after multiline.flush_pattern: 'End event'

此配置把指定字符串开头,指定字符串结尾的多行合并为一个事件。

来源:elastic

实践

待续...

本文发表于2017年12月14日 16:33
(c)注:本文转载自https://my.oschina.net/openplus/blog/1589846,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 4781 讨论 0 喜欢 1

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1