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の設定前は以下の様に何も表示されていません。
導入手順
地理情報の可視化については、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 down
とdocker 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
導入後
以下の様に地理情報が可視化されるようになりました。
最近のコメント