ElastiFlowで地理情報の可視化をする

以下の関連記事もご覧下さい。

こんばんは。tukapiyoです。
先日、Elastiflowの導入を行いましたが、今回はGeoIP(GeoLite2)を利用して地理情報を可視化してみます。

導入環境

  • Red Hat Enterprise Linux 9.5 (Plow)
  • Docker Community Edition 28
  • SELinux有効
  • Elasticsearch 8.16.4
  • Kibana 8.16.4
  • ElastiFlow 7.7.2

以下の手順で導入した環境です。

現状

GeoIPの設定前は以下の様に何も表示されていません。

GeoIP

ASN

導入手順

地理情報の可視化については、Maxmind社が提供するGeoLite2データベースを利用します。
一般的な手順では、Mixmindに登録をし無料ライセンスの発行を受けてダウンロードするのですが、今回は登録が面倒なのでGithubに上がっているファイルを使うことにします。

地理データベースのダウンロード

mmdb形式のファイルをダウンロードし、/etc/elastiflow/maxmind/配下に保存します。

# wget https://git.io/GeoLite2-ASN.mmdb -O /etc/elastiflow/maxmind/GeoLite2-ASN.mmdb
# wget https://git.io/GeoLite2-City.mmdb -O /etc/elastiflow/maxmind/GeoLite2-City.mmdb

このファイルは定期的に更新されるので、自動的にアップデートするようにします。
今回は手抜きでcrontabに直書きします。

# crontab -e
0 0 * * 3 wget https://git.io/GeoLite2-ASN.mmdb -O /etc/elastiflow/maxmind/GeoLite2-ASN.mmdb
0 0 * * 3 wget https://git.io/GeoLite2-City.mmdb -O /etc/elastiflow/maxmind/GeoLite2-City.mmdb

設定ファイルの更新

elastiflow_flow_compose.ymlファイルを編集して、GeoIPを利用する設定を行います。
元々コメントアウトされた行があるので、コメントアウトを外して以下の様に修正します。

..(snip)..
      EF_PROCESSOR_ENRICH_IPADDR_MAXMIND_ASN_ENABLE: 'true'
..(snip)..
      EF_PROCESSOR_ENRICH_IPADDR_MAXMIND_GEOIP_ENABLE: 'true'
..(snip)..
      EF_PROCESSOR_ENRICH_IPADDR_MAXMIND_GEOIP_LANG: 'ja'
..(snip)..

ElastiFlowの再起動

docker compose downdocker compose up -dでコンテナを再作成し、設定を反映します。

# docker compose -f elasticsearch_kibana_compose.yml -f elastiflow_flow_compose.yml down
# docker compose -f elasticsearch_kibana_compose.yml -f elastiflow_flow_compose.yml up -d

導入後

以下の様に地理情報が可視化されるようになりました。

GeoIP

 

ASN

おすすめ

コメントを残す