cd $LOGSTASH_HOME
./bin/logstash-plugin install logstash-filter-multiline
input { stdin { codec =>multiline { charset=>... #可選 字符編碼 max_bytes=>... #可選 bytes類型 設置最大的字節數 max_lines=>... #可選 number類型 設置最大的行數,默認是500行 multiline_tag... #可選 string類型 設置一個事件標籤,默認是multiline pattern=>... #必選 string類型 設置匹配的正則表達式 patterns_dir=>... #可選 array類型 能夠設置多個正則表達式 negate=>... #可選 boolean類型 設置true是向前匹配,設置false向後匹配,默認是FALSE what=>... #必選 設置未匹配的內容是向前合併仍是前後合併,previous,next兩個值選擇 } } }
## negate 只支持布爾值,true 或者false,默認爲false。正則表達式
若是設置爲true,表示信息不跟上面正則表達式(pattern)匹配的內容都與匹配的整合,ruby
## what 前一行 或者後一行,指出上面對應的規則與前一行內容收集爲一行,仍是與後一行整合在一塊兒 app
簡單來講:編碼
negate默認是 false,不顯示 與patten匹配的行 由what決定 向前或向後 匹配 spa
negate 設置爲true 則與patten 不匹配的行 由what決定 向前或向後 匹配插件
日誌內容debug
2015-08-24 11:49:14,389[INFO ][env ] [Letha] using [1] data paths, mounts [[/111 (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs]1111
2015-08-24 11:49:14,389[INFO ][env ] [Letha] using [1] data paths, mounts [[/111 (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs]2222
2015-08-24 11:49:14,389[INFO ][env ] [Letha] using [1] data paths, mounts [[/111 (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs]3333
2015-08-24 11:49:14,389[INFO ][env ] [Letha] using [1] data paths, mounts [[/111 (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs]4444
2015-08-24 11:49:14,389[INFO ][env ] [Letha] using [1] data paths, mounts [[/111 (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs]5555
logstash配置日誌
input { file { path => "/var/log/someapp.log" codec => multiline { pattern => "^%{TIMESTAMP_ISO8601}" negate => true what => "previous" } } } output { stdout { codec => rubydebug } }