logstash的Multiline插件

安裝插件

cd $LOGSTASH_HOME
./bin/logstash-plugin install logstash-filter-multiline

合併多行數據(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
  }
}
相關文章
相關標籤/搜索