filebeat - logstash 多行合并 解决数据丢失以及无法读取最后一行

logstash处理多行日志数据,网上大部分方法是在input插件中添加codec => multiline,如下beats插件


beats {
        port => 5044
        codec => multiline {
            pattern => "^(%{TIMESTAMP_ISO8601}|%{MONTHNUM}\s%{WORD}\s%{YEAR}\s%{TIME})"
            negate => true
            what => "previous"
        }
    }


如果是使用beats插件,不仅会导致日志数据最后一行无法读取,还会丢失最后一行日志的所有filebeat字段。


使用logstash-filter-multiline插件可以解决此问题


logstash5.0 默认没有安装此插件,需要自行安装

./bin/logstash-plugin install logstash-filter-multiline

如果安装失败或者需要离线安装,可以到已安装的机器上复制gem文件

目录 ./logstash/vendor/bundle/jruby/1.9/cache/logstash-filter-multiline-3.0.2.gem (http://download.csdn.net/download/abnersunyh/9683875)

./bin/logstash-plugin install ./vendor/bundle/jruby/1.9/cache/logstash-filter-multiline-3.0.2.gem


logstash-filter-multiline插件使用示例

filter{
    multiline {
        pattern => "^(%{TIMESTAMP_ISO8601}|%{MONTHNUM}\s%{WORD}\s%{YEAR}\s%{TIME})" negate => true what => "previous" 
    }
}


后续:
logstash5.1貌似找不到logstash-filter-multiline插件,但仍然可以安装logstash-filter-multiline-3.0.2.gem,官方并没指明是否取消该插件。https://www.elastic.co/guide/en/logstash/5.1/breaking-changes.html#_logstash_with_all_plugins_download




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值