KibanaのCoordinate Mapでiptablesのログを可視化してみた

ElasticsearchとLogstashとKibanaを使ってiptablesでドロップしたソースIPをCoordinate Map(世界地図)で可視化してみました。

環境

項目 バージョン
OS CentOS 7.6.1810
Logstash 6.5.4-1
Elasticsearch 6.5.4-1
Kibana 6.5.4-1

設定

Logstash設定

Logstashの設定は以下のようにしました。

input

/opt/iptables.log のログを頭から読み込みます。

filter

grok

iptablesログの正規表現を定義しています。

date

ログの時間を使用するためgrokの time で指定したフィールドを @timestamp に格納します。

geoip

geoipでマッピングするフィールドはgrokで定義した SRC フィールドを指定しています。

output

Elasticsearchに格納します。

indexテンプレート

geoipを独自のindex名で使用する場合はindexテンプレートを作成してテンプレートを作成します。
そうしないと、可視化で必要なフィールド(geoip.location)が作成されません。
標準のindex名(logstash)を使う場合は、デフォルトで設定されているためテンプレートを作成しなくても大丈夫です。

以下の手順でindexテンプレートを作成します。

このindexテンプレートは iptables-* のindex名に対応します。

可視化

Visualize をクリックして Create a visualization をクリックします。

Coordinate Map をクリックします。

index を選択します。

BucketsGeohash を選択します。

Fieldgeoip.location を選択します。

Apply changes をクリックします。

可視化した結果が以下になります。

接続拒否した国がぱっと見わかるようになりました 🙂

参考文献


Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください