Docker Compose で Elastic Stack を起動し、NetFlow データを可視化する
ネットワーク機器の NetFlow 情報を Elastic Stack で簡単に可視化出来るよう、Docker Compose 用のファイルを用意しました。 とは言っても、deviantony/docker-elk の設定ファイルを少し修正しただけです。 具体的な利用方法は以下の通りです。
ネットワーク機器での設定例 (Cisco ASA)¶
Cisco ASA で NetFlow 情報を生成し、10.0.0.100
の 2055/UDP 宛に送信するには最低限、以下のように設定します。
1 2 3 4 5 |
|
Docker Compose で Elastic Stack を起動する¶
GitHub から clone し、docker-compose up -d
してバックグランドで実行します。
1 2 3 |
|
但し(理由を追求出来ていないのですが)これだけだとホストでは NetFlow (2055/UDP) を受信しているにも関わらず、logstash にパケットが届いておらず、結果的に kibana で見えない… という事象に何度か遭遇しました。 こういった場合は何度か再起動すると上手くいくようになりました…
1 |
|
kibana にアクセスする¶
しばらくして elasticsearch / logstash / kibana の全てが起動完了したら、http://[ADDRESS]:5601
で kibana にアクセス出来るはずです。
deviantony/docker-elk との差分¶
ベースにさせて頂いた deviantony/docker-elk との差分は下記 2 ファイルだけ、です。
docker-elk-netflow/versions/5.5.2/docker-compose.yml¶
logstash で NetFlow (2055/UDP) を受信出来るよう、以下の設定を追加しています。
1 2 |
|
docker-compose.yml
全体は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
docker-elk-netflow/versions/5.5.2/logstash/pipeline/logstash.conf¶
logstash の pipeline 用の logstash.conf は以下の通りです。 IndexPattern は「logstash_nf-*」としてあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|