天天看點

使用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堆棧資訊收集也類似,找出規則,然後進行比對即可,在此不重複測試