logstash AWS上的OpenSearch无法将GeoIP的位置识别为GEOJSON类型

ttp71kqs  于 2022-12-09  发布在  Logstash
关注(0)|答案(1)|浏览(172)

我已经让logstash处理日志,并将其上传到作为服务运行在AWS上的opensearch示例。
我已经在我的logstash中添加了一个geoip过滤器来将IP处理为地理数据。根据文档,geoip过滤器应该生成一个location字段,该字段包含lonlat,并且应该被识别为geo_point类型,然后可以用来填充Map可视化。
我已经尝试了几个小时了,但是opensearch总是把location字段分成数字location.lonlocation.lat,而不是把location识别为geo_point,因此我不能把它用于Map可视化。
下面是我的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上成功地做到了这一点吗?

fsi0uk1n

fsi0uk1n1#

在获取数据之前,你有没有尝试过在索引中将位置字段设置为geo_point类型?我不认为opensearch会自动检测到geo_point类型。

相关问题