我正在处理一个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"]
}
生成的字段:
1条答案
按热度按时间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。