1

在elasticsearch中,我记住了一系列具有以下结构的文档:

    {
      "_index": "logstash-2018.05.10",
      "_type": "doc",
      "_id": "VM-QSWMBq8te9tFe-bcj",
      "_version": 1,
      "_score": null,
      "_source": {
        "location": {
          "lat": 42,
          "lon": 12.5
        },
        "@timestamp": "2018-05-10T10:20:24.988Z",
        "port": 53950,
        "tags": [
          "geoinfo"
        ],
        "host": "gateway",
        "@version": "1",
        "message": "{\"@version\":1,\"level\":\"INFO\",\"logger_name\":\"it.test.elk.ELKTestApplication\",\"appName\":\"docker-elk-master\",\"thread_name\":\"main\",\"message\":\"LAT: 42, LON: 12.5\"}\r",
        "type": "java"
      },
      "fields": {
        "@timestamp": [
          "2018-05-10T10:20:24.988Z"
        ]
      },
      "sort": [
        1525947624988
      ]
    }

对应的索引是这样的(我只展示了一小部分):

{
  "logstash-2018.05.10": {
    "aliases": {},
    "mappings": {
      "doc": {
        ...
        "properties": {
          ...
          "geoip": {
            "dynamic": "true",
            "properties": {
              "ip": {
                "type": "ip"
              },
              "latitude": {
                "type": "half_float"
              },
              "location": {
                "type": "geo_point"
              },
              "longitude": {
                "type": "half_float"
              }
            }
          },
          ...
          "location": {
            "properties": {
              "lat": {
                "type": "float"
              },
              "lon": {
                "type": "float"
              }
            }
          },

          ...

        }
      }
    },
    ...
    }
  }
}

在 Kibana -> Coordinates Map 上,我尝试显示位置字段中包含的地理空间信息,但什么也没看到。也许位置应该是一个geo_point?

我哪里错了?

4

1 回答 1

0

在“发现”视图中,如果该字段显示为 ? 在它旁边(或者它旁边没有地球),这意味着 Kibana 不知道它是一个 geo_point(即使 Elasticsearch 知道)。要解决这个问题,您需要进入 kibana 索引设置 (for logstash-*) 并点击刷新按钮。

点击重新加载后,在索引定义屏幕上的搜索框中键入 location 并确保它显示为geo_point.

于 2018-05-11T16:16:45.220 回答