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)匹配的内容都与匹配的整合,

 

具体整合在前还是在后,看what参数。如果设置为false,即与pattern匹配的内容

 

## what 前一行 或者后一行,指出上面对应的规则与前一行内容收集为一行,还是与后一行整合在一起

 

简单来说:

 

negate默认是 false,不显示 与patten匹配的行 由what决定 向前或向后 匹配

 

negate 设置为true 则与patten 不匹配的行 由what决定 向前或向后 匹配



示例

日志内容

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]11112015-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]11112015-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]11112015-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]11112015-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

logstash配置

input {
  file {
    path => "/var/log/someapp.log"
    codec => multiline {
      pattern => "^%{TIMESTAMP_ISO8601}"
      negate => true
      what => "previous"
    }
  }
}

output {
  stdout {
    codec => rubydebug
  }
}

 

上一篇:彻底删除mac上的Win分区


下一篇:信息安全技术网络等级基础要求