概述
在通过ELK收集日志的时候,通常需要对日志进行分析,例如实时监控错误堆栈,并进行告警。
通常错误堆栈都是多行的,但通常ELK默认都是识别单行的,怎么才能多行呢?
logstash的codec、filter中均有multiline插件,可以匹配单行内容,并于上下行作为1个输入。
本文主要讲述如何使用logstash的multiline插件来识别错误堆栈。
测试环境
1个CentOS7系统:
* ELK服务器
测试思路
- logstash监控日志文件
- logstash配置识别multiline
- 手动向日志文件中写入python的错误堆栈
实战
logstash配置文件
logstash的配置文件(logstash.conf.stack)如下
input {
file {
path => "[your_path]/python_stack.log"
start_position => "beginning"
}
file {
path => "/var/log/messages"
}
}
filter {
multiline {
pattern => ".*TRACE.*"
what => "previous"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout {}
}
配置文件说明:
输入
- 监控
[your_path]/python_stack.log日志文件, - 监控
/var/log/messages日志文件
- 监控

本文介绍了如何通过Logstash的multiline插件在ELK环境中识别和处理多行错误堆栈。首先,概述了在实时监控日志时遇到的多行错误堆栈问题,然后详细说明了测试环境的配置,包括一个CentOS7系统的ELK服务器。接着,展示了logstash的配置文件,解释了如何设置过滤规则以合并多行日志。最后,通过手动写入错误堆栈到日志文件并验证在logstash输出和Kibana中的显示,证明了multiline插件的有效性。
最低0.47元/天 解锁文章
4841

被折叠的 条评论
为什么被折叠?



