Logstash和ElasticSearch中的Mapper解析异常

时间:2015-11-17 18:06:56

标签: elasticsearch logstash

我在尝试使用Logstash解析日志并输出到ElasticSearch时收到Mapper Parsing Exception并显示错误消息:"字段名称不能包含点(。)"
这与旧的Logstash版本一起正常工作,我最近升级到Logstash 2.0:
我的Logstash配置文件如下所示:

input {
  kafka {
    topic_id => "topic1"
    zk_connect => "111.222.333.444:2181"
    type => "log_type"
    reset_beginning => true
  }
}

output {
#  stdout { codec => rubydebug }

  elasticsearch {
    hosts => "127.0.0.1:9200"
    flush_size => 200
    idle_flush_time => 1
    index => "index-name-%{+YYYY.MM.dd}"
   }
}

1 个答案:

答案 0 :(得分:3)

https://discuss.elastic.co/t/field-name-cannot-contain/33251/5所述,字段名称不能支持名称中的点。
正如页面上指定的那样,使用以下过滤器可以轻松修复所有带下划线的点:

filter {
  ruby {
        code => "
          event.to_hash.keys.each { |k| event[ k.sub('.','_') ] = event.remove(k) if k.include?'.' }
        "
    }
}