很多时候应用程序出错是都是抛出一堆 堆栈信息(即在日志文件输出多行),此时logstash可以使用multiline的插件收集日志时需要把错误堆栈信息收集为一个记录。multiline字面意思是多行,顾名思义就是对多行日志进行处理。
multiline配置与用法
## pattern支持正则表达式,通过正则表达式匹配日志信息,grok pattern定义的参数也是支持,eg:%{timestamp_iso8601} ,具体信息可以查看grok-patterns
## negate 只支持布尔值,true 或者false,默认为false。如果设置为true,表示信息不跟上面正则表达式(pattern)匹配的内容都与匹配的整合,具体整合在前还是在后,看what参数。如果设置为false,即与pattern匹配的内容
## what 前一行 或者后一行,指出上面对应的规则与前一行内容收集为一行,还是与后一行整合在一起
官方原文
在这里用php-fpm的慢查询日志做个测试
php-fpm的慢查询日志如下:
添加logstash的配置文件logstash_php-fpm.conf
##测试配置文件是否符合语法
{logstash_home}/bin/logstash –t logstash_php-fpm.conf
运行logstash,查看输出内容
tomcat堆栈信息收集也类似,找出规则,然后进行匹配即可,在此不重复测试