Kibanaでgeoip.locationが見えなくなった時の対策

バージョン

Kibana 5.6.3

問題

  • Logstashのgeoipフィルタでlocationのフィールドを付加した
  • LogstashからElasticsearchへデータをoutputする時、indexにlogstash-*(デフォルトの名前)ではなく、特別な名前をつけている
  • Elasticsearchで確認したらgeoip.locationのフィールドは間違いなく存在する

という場合、Kibanaでgeoip.locationのフィールドが見えなくなってることがあります

解決策

答えはここにありました

discuss.elastic.co

indexの名前をlogstash-*、つまりデフォルトのままにすればよいです。実際このようにしたらKibanaでgeoip.locationのフィールドが確認できました。

余談

わたしの場合

  • filebeatでCaddyのアクセスログをLogstashへinput
  • ログをgrok patternのCOMBINEDAPACHELOG_CUSTOMでパース
  • フィールドclientipをgeoipのフィルターにかける
  • LogstashからElasticsearchへデータをoutputする時インデックス名をcaddy-%{+YYYY.MM.dd}にして転送
  • Elasticsearchで確認したらgeoip.locationのフィールドは間違いなく存在する
  • Kibanaの「Management -> Index Patterns」を見たらgeoip.locationがない。ただしgeoip.location.lon, geoip.location.latなどは存在する

こんな感じの経緯でこの問題にぶちあたりました。geoip.locationのデータ型はgeo_pointなんですが、これはVisualizeのCoordinate Mapを作るときに必要不可欠なんですよね...。