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

ELKStack日志平台——使用Logstash multiline插件收集Java日志

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

先看看一个Java日志,可以看到,每一行at其实都属于一个事件的信息,但是Logstash却使用了多行显示出来,这样会造成阅读不便。为了解决这个问题,可以使用Logstash input插件中的file插件,其中还有一个子功能是Codec-->multiline。官方对于multiline插件的描述是“Merges multiline messages into a single event”,翻译过来就是将多行信息合并为单一事件。

multiline1.png


查看Java日志可以看出每一个单独的事件都是以“[ ]”方括号开始的,所以可以把这个方括号当做特征,再结合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运维技术学习站点
文章标题:《ELKStack日志平台——使用Logstash multiline插件收集Java日志
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-312.html  [生成短网址]

已有 0/4647 人参与

发表评论:

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

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