2015年10月9日金曜日

CloudTrailのログをKibanaで確認する(CloudWatch → Lambda → Elasticsearch)


AWSから「Elasticsearch Service (ES)」というものが発表され使えるようになりました。
(東京リージョンでも使えます)
【AWS発表】Amazon Elasticsearch Service
このサービスはKibanaも同時に利用でき、簡単にElasticsearchのデータを
Kibanaで分析することが可能となります。

また、AWSコンソールからのみの設定で、下記のようにCloudTrailのログを
ESまで持っていくことが可能にもなっていました。


ということで、早速、CloudTrailのログをKibanaみるところまでを、
AWSコンソールを「ポチポチ」するだけで実現することを試してみました。

大雑把な流れは次の通りです。

  1. CloudTrailの設定
    • 有効化とCloudWatch Logsへの配信設定を行います。
  2. ESの設定
    • ES(クラスター)の作成を行います
  3. CloudWatchの設定
    • 配信されたCloudTrailのログをESにストリーミングする設定を行います。
  4. Kibanaの設定
    • ESの情報を設定しデータが表示されるようにします。

それでは、具体的な手順をを紹介していきます。

CloudTrailの設定


当然、CloudTrailを有効にします。


適当にS3のバケットを指定します。(重要でない)


ログをCloudWatch Logsに配信する設定をします。(重要!)



最後に確認です。


少し時間を置いてS3を確認すると、上記で指定したバケットに
CloudTrailのログが出力されていることがわかります。


CLoudWatch Logsを確認すると、上記で指定した(デフォルト値)ロググループが
作成されていることも確認できます。


ES(Elasticsearch Service)の設定


まずはドメインを作成します。



クラスターの設定をします。(とりあえずデフォルト)



アクセスポリシーの設定をします。(とりあえずデフォルト)
※このままだとKibanaにアクセスできなかったので、後ほど変更します。


最後に確認です。


作成すると、まずはLoading状態になります。


しばらくすると状態がActiveになり、利用できるようになります。


CloudWatchの設定


ES作成時に作られたロググループに対して、
ESにログをストリーミングする設定をします。


ESのクラスターを指定します。クラスターは上記で作成したものとしています。


IAMロールは新規に(デフォルトで)作成します。



ログフォーマットの指定は当然CloudTrailです。


最後に確認です。


作成すると、Kibanaへのリンクが表示されます。


Kibanaにアクセスすると、アクセス制限に引っかかりました。これは、
ESのアクセスポリシーの設定時にデフォルト(全部不許可)にしてしまったためです。


ということで、アクセスポリシーをESのコンソールから変更します。


とりあえずオープンアクセスにしちゃいました。(要注意!)


変更の反映に少し時間がかかります。


反映が終わるとステータスが再びActiveになります。


再度Kibanaにアクセスすると、今度は表示されました。


Kibanaの設定


まずはESのコンソールからKibanaに設定すべき情報の確認を行います。



Kibanaにアクセスして最初に表示される設定画面で上記の値を設定します。


設定後、Discoverのタブを開きます。


するとCloudWatchのログと集計結果(グラフが)が、それっぽく表示しているのを
確認することができると思います。


ちなみに自動で作成されたLambda Functionです。




0 コメント: