本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • ELK Stack
  • ELK Stack插件——使用multiline插件处理Java等多行日志

ELK Stack插件——使用multiline插件处理Java等多行日志

发布:TangLu2017-4-25 16:41分类: ELK Stack 标签: ELK ElasticSearch logstash kibana multiline ELKStack

在Java日志中每一行at其实都属于同一个事件,但是又被分行显示,所以如果不做处理的话会造成阅读上的不便。为了解决这个问题,可以使用multiline插件,该插件在Logstash和Filebeat中都可以进行配置。官方对于multiline插件的描述是“Merges multiline messages into a single event”,翻译过来就是将多行信息合并为单一事件。下图是没有经过处理的Java日志,可以看到每一行at都被当成了单独的日志:

multiline1.png


通过分析日志可以看出每一个单独的事件都是以“[ ]”方括号开始的,所以可以把这个方括号当做特征,一个“[”开头的行,与下一个“[“开头的行合并成一个事件如果是其他日志的话也有固定的特征,这个根据实际情况做调整即可。使用multiline插件语法如下

vim /etc/logstash.conf 
input{
  file{
    path => "/var/log/*"
    type => "java"
    start_position => "beginning"
    codec => multiline{
      pattern => "^\["  #正则表达式,用来做规则匹配
      negate => true  #negate是对pattern的结果做判断是否匹配,默认值是false代表匹配,而true代表不匹配,这里并没有反,因为negate本身是否定的意思,在这里就是不以大括号开头的内容才算符合条件,后续才会进行合并操作
      what => previous  #next或者previous二选一,previous代表codec将把匹配内容与之前的内容合并,next代表之后的内容
    }
  }
}

output{
  if [type] == "java" {
    elasticsearch {
    hosts=> ["192.168.44.129:9200"]
    index=> "javatest-%{+YYYY-MM}"
    }
  }
}


经过插件整理后的信息直观多了,如下图:

multiline2.png


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《ELK Stack插件——使用multiline插件处理Java等多行日志
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-312.html  [生成短网址]

已有 0/6231 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~