elasticsearch 地理IP过滤器未创建地理点类型弹性堆栈

50pmv0ei  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(116)

我正在处理一个logstash管道。我正在使用geoip过滤器。在查看日志时,我可以看到location.lat和location.lon,它们都是浮点数,但我看不到geoPoint类型
我的管道筛选器

geoip {
       id => "f5_bigip_ltm_src_geo"
       source => "[clientip]"
       #fields => [ "city_name", "continent_code", "country_name", "latitude", "longitude", "location", "postal_code", "region_name", "isp", "timezone" ]
       cache_size => "4096"
       #tag_on_failure => ["_geoip_failure_ltm"]
    }

生成的字段:

vsdwdz23

vsdwdz231#

Logstash不支持geo_point数据类型。您必须在Elasticsearch中使用mapping。禁用ECS兼容性时(以前是默认值)geoip过滤器的默认目标是[geoip],而elasticsearch输出的默认模板将该字段的Map设置为geo_point。logstash会将geoip字段作为JSON对象{ "geoip": { "location": { "lat": 41.12, "lon": -71.34 } }发送给elasticsearch,这是elasticsearch将转换为geo_point的几种格式之一,前提是有一个Map告诉它这样做。
启用ECS兼容性后,目标会发生变化,但在ElasticSearch中仍需要Map。

相关问题