【发布时间】:2022-11-04 07:34:09
【问题描述】:
我有 logstash 处理日志并上传到在 AWS 上作为服务运行的 opensearch 实例。
我在我的logstash 中添加了一个geoip 过滤器,以将IP 处理为地理数据。根据文档,geoip 过滤器应该生成一个包含lon 和lat 的location 字段,并且应该被识别为geo_point 类型,然后可以使用它来填充地图可视化。
我已经尝试了几个小时,但opensearch总是将location字段拆分为数字location.lon和location.lat,而不是仅仅将location识别为geo_point,因此我不能将它用于地图可视化.
这是我的logstash配置:
input {
file {
...
codec => json {
target => "[log_message]"
}
}
}
filter {
...
geoip {
source => "[log_message][forwarded_ip_address]"
}
}
output {
...
opensearch {
...
ecs_compatibility => disabled
}
}
我的 opensearch 实例上的模板是标准模板,因此它确实包含以下内容:
"geoip": {
"dynamic": true,
"properties": {
"ip": {
"type": "ip"
},
"latitude": {
"type": "half_float"
},
"location": {
"type": "geo_point"
},
"longitude": {
"type": "half_float"
}
}
},
我不确定这是否相关,但 AWS OpenSearch 要求将 ECS 兼容性设置为 disabled,我这样做了。
有人在 AWS OpenSearch 上成功地做到了这一点吗?
【问题讨论】:
-
是的,这很蹩脚,你有没有想过如何创建 geo_point 字段类型?
标签: amazon-web-services logstash geoip opensearch