LoginSignup
5

More than 5 years have passed since last update.

GeoIPを使って送信元アドレスの地理情報を可視化する

Last updated at Posted at 2017-08-23

GeoIPというIPアドレスから地理情報を確認することができるサービスをご存知でしょうか。以前の記事で、Fluent,Elasticsearch,Kibanaを利用したVyOSのNetFlow監視の環境を構築したので、これを応用させてVyOSにアクセスしてくる端末の位置情報をGeoIPを使って、Kibanaに可視化していきたいと思います。

GeoIPの設定

GeoIPコンパイルに必要なパッケージをインストールする。

$ sudo apt-get install libgeoip-dev

fluent-plugin-geoidのインストール

$ sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-geoip

Fluentdのconfファイルにgeoipタグの設定を書く

$ sudo vim /etc/td-agent/td-agent.conf
--省略--

<match geo.netflow.**>
  type geoip
  geoip_lookup_key ipv4_src_addr
  <record>
    geoip_country ${country_code['ipv4_src_addr']}
    geoip_city ${city['ipv4_src_addr']}
    geoip_lat ${latitude['ipv4_src_addr']}
    geoip_lon ${longitude['ipv4_src_addr']}
    geoip_pin ${latitude["ipv4_src_addr"]},${longitude["ipv4_src_addr"]}
  </record>
  remove_tag_prefix geo.
  add_tag_prefix es.
  skip_adding_null_record
</match>

<match es.netflow.**>
  type elasticsearch
  host localhost
  port 9200
  type_name netflow
  logstash_format true
  logstash_prefix flow
  logstash_dateformat %Y%m%d
</match>

<source>
  type netflow
  tag geo.netflow.event
  port 5141
  versions [5, 9]
</source>

今までに受信したflowのIndexを削除(しなくても良い。すぐに有効化するため)

curl -XDELETE 'localhost:9200/flow-*'

受信するflowのIndexに"type" : "geo_point"のフォーマットを追加

$ curl -XPUT http://localhost:9200/_template/flow -d '
{
  "template" : "flow-*",
  "mappings" : {
    "netflow" : {
      "properties" : {
        "@timestamp" : {
          "type" : "date",
          "format" : "dateOptionalTime"
        },
        "geoip_pin" : {
          "type" : "geo_point"
        }
      }
   }
  }
}'

以上、fluend(td-agent)を再起動する

$ /etc/init.d/td-agent restart

動作確認

以下のコマンドでflow-yyyymmddのIndexフォーマットにgeoipのタグがあるか確認

$ curl -XGET 'localhost:9200/_mapping?pretty'

実際のIndexにgeoipのタグがあるか確認

$ curl "http://localhost:9200/flow-yyyymmdd/_search?pretty"

Kiabnaで確認

スクリーンショット 2017-08-24 1.09.28.png

geoid_pinバーのVisualizeをクリックすれば、以下のように地理情報として可視化できる。

スクリーンショット 2017-08-23 21.26.36.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5