Logstash之日志多行合一行(日志错行)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Logstash之日志多行合一行(日志错行),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1822字,纯文字阅读大概需要3分钟。
内容图文
![Logstash之日志多行合一行(日志错行)](/upload/InfoBanner/zyjiaocheng/1117/e5801c6ea9e541c696dc8645e4dea6a1.jpg)
我们在用Logstash收集日志的时候会碰到日志会错行,这个时候我们需要把错的行归并到上一行,使某条数据完整;也防止因为错行导致其他字段的不正确。
在Logstash-filter插件中,multiline插件可以解决这个问题,举个例子如下:
假如我们的日志形式如下:
2016-04-05 13:39:52.534 1.28.253.193 201603110904 07705e58772f6c 22863457 10.0.251.146 http://q.hexun.com/102148/quickmessage.aspx 2016-04-05 13:39:52.534 114.81.254.169 201604051339 0 10.0.251.146 http://forex
上面这两条日志由于第一条日志错行,如果不处理错行,可能会收集到三条日志。
下面我们可以配置filter处理错行:
input{ kafka { zk_connect => "bdc41.hexun.com:2181,bdc40.hexun.com:2181,bdc46.hexun.com:2181,bdc54.hexun.com:2181,bdc53.hexun.com:2181" group_id => "logstash" topic_id => "TrackLogT" reset_beginning => false # boolean (optional) consumer_threads => 3 # number (optional) decorate_events => true # codec => plain { # charset => "UTF-8" # } } } filter { multiline { pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}" negate => true what => "previous" } ruby { init =>"@kname =['dateday','datetime','ip','cookieid','userid','logserverip','referer']" code =>"event.append(Hash[@kname.zip(event['message'].split(/ /))])" remove_field => ["message"] } } output{ # stdout{ # codec=>rubydebug # } elasticsearch{ hosts => [ "10.130.2.53:9200","10.130.2.46:9200","10.130.2.54:9200" ] flush_size=>50000 workers => 5 index=> "logstash-tracklog" } }
multiline { pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}" negate => true what => "previous" }
这里所采用的是正则匹配行头的方式来实现合并错行的:假如某一行行头不能匹配\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2},则把此行归并到上一行,如此可以实现错行合一的效果。
在这里第二行开头为:07705e58772f6c 228,此行不能匹配\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}这个正则,所以把第二行归并到第一行。
这种方式会造成延迟一条的现象:因为如果没有下一条数据能匹配这个正则,则说明此条数据还有可能继续错行,所以在第三行数据来之后,匹配成功,错行结束,第一条日志才会往下走(进行分割,直至索引进ES)。
原文:http://blog.csdn.net/shan1369678/article/details/51353909
内容总结
以上是互联网集市为您收集整理的Logstash之日志多行合一行(日志错行)全部内容,希望文章能够帮你解决Logstash之日志多行合一行(日志错行)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。