elasticsearch - Logstash和ElasticSearch中Mapper解析异常

标签 elasticsearch logstash

我在尝试使用 Logstash 解析日志并输出到 ElasticSearch 时遇到映射器解析异常,并显示错误消息:“字段名称不能包含点 (.)”
这在旧的 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}"
   }
}

最佳答案

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?'.' }
        "
    }
}

关于elasticsearch - Logstash和ElasticSearch中Mapper解析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33764010/

相关文章:

java - 无法将 csv 数据加载到 Elasticsearch,翻译问题

elasticsearch - Filebeat多行模式

elasticsearch - 无法为 Kibana 安装 sense 插件

elasticsearch - 父子关系的Elasticsearch路由问题-对象存储在不同的分片中

elasticsearch - ElasticSearch中的多键聚合

Logstash worker 无故死亡

csv - 将 csv 导入 elasticsearch

elasticsearch - 使用 grok Logstash 解析时为空字段插入虚拟值

elasticsearch - Elasticsearch查询不适用于@值

elasticsearch - 在Elasticsearch中,如何检索按销售商店分组的产品?