天天看点

使用Logstash multiline 收集PHP、tomcat等应用服务多行堆栈日志

很多时候应用程序出错是都是抛出一堆 堆栈信息(即在日志文件输出多行),此时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堆栈信息收集也类似,找出规则,然后进行匹配即可,在此不重复测试