码迷,mamicode.com
首页 > 其他好文 > 详细

【踩坑】ELK6.0已取消filebeat配置document_type

时间:2018-03-28 16:43:43      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:document_type   elk   logstash   filebeat   

一、起因

?在使用ELK5.5的时候,如果遇到需要在同一台机器上收集不同类型的日志,比如:同时收集一台机器上的java log和nginx log!而又需要分别存储到不同索引的时候,我们会在filebeat的prospectors里面配置document_type类型,然后在logstash里面使用if [type] == "string" 来匹配,针对不同的判断做不同的处理。

?6.0以前filebeat部分配置如下:

- input_type: log
  paths:
    - /opt/tengine/logs/access.log
  document_type: nginx-log
  json.keys_under_root: true
  ignore_older: 24h

 - input_type: log
  paths:
    - /opt/java/logs/java.log
  document_type: java-log
  json.keys_under_root: true
  ignore_older: 24h

?6.0以前logstash部分配置如下:

output {
if [type] == "nginx-log" {
    elasticsearch {
        hosts => ["172.18.238.2:9200","172.18.238.3:9200","172.18.238.4:9200"]
        index => "%{type}-%{+YYYY.MM.dd}"

        }

} else if [type] == "java-log" {
    elasticsearch {
        hosts => ["172.18.238.2:9200","172.18.238.3:9200","172.18.238.4:9200"]
        index => "%{type}-%{+YYYY.MM.dd}"
        }
    }
}   

二、踩坑

?在使用了6.2.3版本的ELK以后,使用如上配置,if [type]匹配不到在filebeat里面使用document_type定义的字符串。在多次调试和询问后,发现在6.0版本以上已经取消了document_type的定义。如果要实现以上的配置只能使用如下配置

三、解决方案

?解决方案为在filebeat里面新增一个fields字段,service : GameStatis都是自己定义的,定义完成后使用Logstash的if 判断,条件为if [fields][service] == "GameStatis".就可以了。

?filebeat配置:

技术分享图片

?logstasht配置:

技术分享图片

【踩坑】ELK6.0已取消filebeat配置document_type

标签:document_type   elk   logstash   filebeat   

原文地址:http://blog.51cto.com/kexiaoke/2092029

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!