logstash multiline 把多行文件处理为一个 event

Posted 小鱼#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logstash multiline 把多行文件处理为一个 event相关的知识,希望对你有一定的参考价值。

需求

多个文本文件需要存到 ES 中去。

每一个文件存放为一个 doc。

每一个文件都是多行的,行数不定,且没有固定的内容格式。

update time: Mon Jun 25 11:36:48 CST 2012
package name: AD-4.0-M6000-LiDuan(2012-03-16).ssu
SANGFOR-M6000-AD-4.0.0
BUILD mother_1.0

update time: Fri Mar 25 11:02:57 CST 2016
package name: AD5.6(20150105).ssu
SANGFOR-M6000-AD-5.6
BUILD20150105

update time: Fri Mar 25 11:11:59 CST 2016
package name: AD6.4(20160223).ssu
SANGFOR-M6000-AD-6.4
BUILD20160223
GCS_PRODUCT1.2.0

 

实现

可以通过 logstash-filter-multiline 插件,配置 pattern 为 "EOF",可以实现把每一个文档当作一个 Event 处理。

input {                                                                                       
    file {                                                                                    
        path => "/home/jdu/unzip/*/*/*/*/*"                              
        discover_interval => 1                                                            
        start_position => "beginning"                                                     
        ignore_older => 99999999999                                                       
        sincedb_path => "/dev/null"                                                       
        stat_interval => 1 
                                                                       
        codec => multiline {          //multiline 插件配置                                                    
            pattern => "EOF"          //每行对 EOF 进行匹配尝试,如果不匹配将应用 what 的操作
            negate => true            //为 true 才会应用 what 的操作                                                    
            what => "previous"        //不匹配 pattern 的行都当作前面一个 event 的内容                                                    
        }                                                                                 
    }                                                                                         
}                                                                                             

 

以上是关于logstash multiline 把多行文件处理为一个 event的主要内容,如果未能解决你的问题,请参考以下文章

logstash 安装插件multiline

logstash multiline处理csv单元格多行数据的double quotes问题(exception=>#<CSV::MalformedCSVError: Unclosed quoted)

logstash收集java日志,多行合并成一行

logstash multiline 过滤 mysql slowlog 和java log

logstash 中多行合并

使用logstash收集javanginx系统等常见日志