使用 geoid 将 ip 与地理位置匹配并在 kibana 上可视化

Use geoid to match ip to geo locations and visualize that on kibana

我正在学习 this 教程。

我的部分 logstash 配置看起来像(这一切都在 filter 中):

 grok {
    match => {
      "message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
    }
  }

geoip {
      source => "clientip"
      target => "geoip"
      database => "/Users/purajain/Desktop/purak/GeoLiteCity.dat"
      add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
      add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
    }
    mutate {
      convert => [ "[geoip][coordinates]", "float"]
    }

映射包括:

"geoip": {
              "dynamic": true,
              "properties": {
                 "location": {
                    "type": "geo_point"
                 }
              },
              "type": "object"
           },

现在当我 运行 kibana :

这里我没有获取 geoip 信息,因此我无法创建瓦片地图可视化。它只是说没有数据。

我在这里做错了什么?请询问我是否遗漏了任何重要信息。

将我的 logstash 配置文件中的 grok 模式更改为此解决了我的问题:

grok {
 match => {
   "message" => '%{COMMONAPACHELOG} %{QS}%{QS}'
 }
}