概述
在通过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.
- 监控