前言

不管是PHP各种框架的日志
还是java的 Java Stack Traces
他们都是多行日志模式
这个时候如果使用
filebeat + elasticsearch + kibana 做日志的采集,存储,展示那么就需要用到
filebeat的 multiline 配置
一词日志是多行记录,其实这种多行的日志会有日志分段的分隔符
写出对于的分隔符正则即可解决filebeat采集一次日志记录为多行的情况

配置示例

例如我们有日志文件

分析日志后得出某一次日志通过什么标识作为分隔符

filebeat中配置文件
/etc/filebeat/filebeat.yml

写正则的时候推荐用正则可视化工具检查正则
例如本文的正则

扩展

这种非自己能定义的日志,思路是寻找多行日志分段规律写出对于的正则即可
那么自己打日志的情况下,不太推荐这种多行日志了,采用结构化的json日志,一行一条是比较推荐的方式
这样在后期的处理分析中将会便利太多太多

参考

Filebeat Reference [7.0] » Configuring Filebeat » Manage multiline messages