将geoip.location映射从number更改为geo_point

时间:2017-11-01 07:42:01

标签: elasticsearch logstash elasticsearch-plugin

我正在使用logstash过滤器将我的filebeat IIS日志转换为位置:

filter {

    geoip {
            source => "clienthost"
        }
}

但是elasticSearch中的数据类型是:

geoip.location.lon  = NUMBER
geoip.location.lat  = NUMBER

但是为了映射积分,我需要

geoip.location  = GEO_POINT

有没有办法改变映射?

我尝试发布更改的映射

sudo curl -XPUT "http://localhost:9200/_template/filebeat" -d@/etc/filebeat/geoip-mapping-new.json

有一个新的定义,但它没有什么区别:

{
  "mappings": {
            "geoip": {
                "properties": {
                    "location": {
                    "type": "geo_point"
                    }
                }
            }
    },
     "template": "filebeat-*"
}

编辑:我用ES / Kiabana / Logstash 5.6.3和5.5.0尝试了这个

1 个答案:

答案 0 :(得分:1)

这不是解决方案,但我删除了所有数据并重新安装了ES,Kiabana,Logstash和Filebeat 5.5

现在ES将位置识别为地理位置 - 我想之前即使我已经更改了数据映射,仍然有数据被错误地映射而且Kibana假设数据类型不正确 - 可能是完整数据的重新索引会有解决了问题