LoginSignup
9

More than 5 years have passed since last update.

VPCフローログを Amazon Elasticsearch Service に取り込んで Kibana で分析する

Last updated at Posted at 2017-10-05

はじめに

VPCフローログ (VPC Flowlogs) はVPCを運用する上でシンプルで強力な情報です。
VPCユーザーガイド - VPCフローログより

VPC フローログは、VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。フローログのデータは、Amazon CloudWatch Logs を使用して保存されます。フローログを作成すると、そのデータを Amazon CloudWatch Logs で表示し、取得できます。

この記事では、マネジメントコンソールとKibanaのUIを用いてAmazon Elasticsearch ServiceKibanaによるVPCフローログのシンプルな分析ができるまでの手順をご紹介します。コーディングは必要なく、30分もかからずに実施できます。

VPCフローログの作成

まず、VPCフローログの格納先となるCloud Watch Logsのロググループを準備しましょう。

ロググループの作成

CloudWatchサービスに移動し、左側のメニューからログを選択します。初めてだと次のような画面になっているので、「ロググループの作成」を選択します。既にロググループを作られているのであれば新たにもう1つ作成して下さい。

スクリーンショット 2017-10-05 15.01.56.png

ロググループ名の入力を求められるので「flowlogs/defaultvpc」など、わかりやすい名前を付けておきます。なお、VPC毎にロググループは分けることもできますし、同じロググループにまとめることもできます。1秒間5回までのPutLogEventsスロットリングがあることを考えると、VPC毎にロググループを作成すべきでしょう。

フローログの作成

VPCサービスのVPCメニューにおいて、フローログを取得したいVPCを選択して「フローログの作成」を実行します。

スクリーンショット 2017-10-05 14.52.32.png

フィルターではキャプチャしたい方向(すべてを選択すると送受信両方をキャプチャします)を選択します。送信先ロググループは先の手順で作成したロググループを選択します。また初めて作成する場合は、フローログのためのIAMロールを作成する必要がありますので、「アクセス権限の設定」というリンクをクリックします。
スクリーンショット 2017-10-05 15.21.19.png

すると次のような画面が表示されます。特に何も変えずに「許可」をクリックすることでフローログ作成用の「flowlogsRole」が作成されます。
スクリーンショット 2017-10-05 15.24.30.png

元の画面に戻ると、次のように「flowlogsRole」が選択できるようになっていますので選択し、「フローログの作成」をクリックします。
スクリーンショット 2017-10-05 15.26.35.png

作成したフローログのステータスがアクティブになっていればOKです。
VPC Management Console 2017-10-05 16-03-47.png

Amazon Elasticsearch Serviceドメインの作成

Amazon Elasticsearch Serviceに移動し、「新しいドメインの作成」をクリックします。ドメイン名を入力し、「次へ」をクリックします(バージョンはそのままでOKです)。
スクリーンショット 2017-10-05 16.10.30.png

「クラスタの設定」画面では主に1インスタンスあたりのボリューム、インスタンスタイプ、そしてインスタンス数などを指定します。とりあえず試すのであればデフォルトのまま(m4.xlarge, EBS 10GB, 1台)で問題ありませんが、継続的に運用するのであれば、こちらの記事などを参考にサイズを算出して下さい。

「アクセスポリシーの設定」において、とりあえず試すのであれば「ドメインへのオープンアクセスを許可」を選択することができます。本来はIPアドレスなどでフィルタリングする必要があり、オープンアクセスが許可されたドメインにセキュアなデータはアップロードすべきではないことに注意して下さい。
スクリーンショット 2017-10-05 16.26.55.png

最後に確認を押せばドメインが作成開始されます。ステータスが「黄色(またはグリーン)」になるまで10分ほどかかりますので待ちます。

CloudWatchログからAmazon ESへのストリーミング

CloudWatchサービスのログから、先に作成したロググループを選択し、アクションメニューから「Amazon Elasticsearch Serviceへのストリーミングの開始」を実行します。
スクリーンショット 2017-10-05 16.33.25.png

Amazon ESクラスターで先ほど作成したESクラスターが選択可能になっていますので選択します(ESクラスターがまだ作成中であればキャンセルしてもう一度ストリーミングの開始をやり直します)。選択すると下段にLambda IAM実行ロールの選択が表示されますので、予め作成していなければ「新しいIAMロールの作成」を選択します。

スクリーンショット 2017-10-05 16.47.16.png

表示されているロール名で特に問題なければ「許可」をクリックし、元の画面に戻って次の画面に進みます。
スクリーンショット 2017-10-05 16.49.29.png

ログ形式は「Amazon VPC フローログ」を選択し、次の画面に進みます。
スクリーンショット 2017-10-05 16.52.21.png

レビューの画面で確認して次の画面に進み、「ストリーミングの開始」をクリックすればESクラスタへのログ送信が開始されます。
スクリーンショット 2017-10-05 16.55.22.png
スクリーンショット 2017-10-05 16.56.44.png

Kibanaでの可視化

取り込まれたログの索引名を確認します。Amazon Elasticsearch Serviceから作成したESドメインのインデックスを見ると、「cwl-日付」のようなインデックスが新たに作成されていることが確認できます。もし「.kibana」しか存在しなければ待ちます(念のため:通信が行われていないと当然フローログは生成されませんので注意して下さい)。
Amazon Elasticsearch Service Management Console 2017-10-05 17-24-12.png

上の画面にも表示されている「Kibana」のリンクをクリックします。Index Patternの設定画面となりますので、Index name or patternの欄に先ほど確認した「cwl-*」を入力し、Createをクリックします。
スクリーンショット 2017-10-05 17.28.22.png

これでログを可視化することができるようになりました。左側のメニューのDiscoverからデータを見たり、Visualizeで色々なチャートを作成するなどを試してみて下さい!
スクリーンショット 2017-10-05 17.31.28.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
9