お手軽ログ解析 〜 Kibana編|アドカレ2013 : CFn #16

@smokeyonkeyです。12月も半月が過ぎ、いよいよ2013年の終わりが見えてきました。北海道では本格的に冬到来となり、毎日寒さに震えてます。

このエントリはアドベントカレンダー2013:AWS CloudFormationビッグバンテンプレート16日目の内容となります。

本稿はKibanaを使ったWebアクセスログ解析構成を一発構築するテンプレートになります。

Kibanaとは

Kibanaはログ解析、可視化を行うためのオープンソースソフトウェアです。Kibana2はSinatra + Thinで構成されていたのですが、Kibana3はHTML + JavaScriptで構成される仕組みになった為、WebサーバのコンテンツディレクトリにKibanaのコンテンツを置くだけで簡単に使い始められます。またKibanaを参照しているWebブラウザから直接ElasticSearchにアクセスする仕組みであるため、リアルタイムにログ解析が可能です。

構成

  • VPCを起動、2つのAZにそれぞれPublic Subnetを1つずつ作成。
  • ELB配下にApacheをセットアップしたEC2インスタンスを起動。外部からのWebアクセスはELB経由で行う。
  • Apacheのアクセスログをfluentdを使ってLogサーバに送る。
  • Logサーバではfluentdで送られてきたアクセスログをElasticSearchで受信。
  • 同じくLogサーバにnginx + Kibana3を構築。
  • 10080/tcpで起動したnginxにアクセスすることでWebアクセスログ解析を行えるようにする。

AWS_Design_cf-es-kibana_-_Cacoo

公開テンプレート

Kibana-demoを起動

スタックパラメータ

  • KeyName … 認証鍵名を指定します。
  • EC2InstanceType … EC2インスタンスのタイプを設定します。Defaultではt1.microが入力されています。
  • WebCapacity … ELB配下に配置するWebサーバの台数を指定します。Defaultは2です。
  • UserName … nginxで行っているBASIC認証用のユーザ名を入力します。
  • Password … 上記BASIC認証用ユーザのパスワードを入力します。

CloudFormation_Management_Console

アウトプット

  • WebEndpoint … WebサーバのURL。ロードバランサのFQDNになっています。
  • LogEndpoint … KibanaのURL。BASIC認証が掛かっているため、スタックパラメータで指定したUserNameとPasswordの入力が必要です。

LogEndpointにアクセスし、BASIC認証を通過するとこんな感じでKibanaの画面が表示されます。ログが少なくてすみません。

Kibana_3

まとめ

Kibanaはグラフィカルで分かりやすく、かつリアルタイムに分析が可能であることから、とてもパワフルなログ解析ツールだと思います。今回はWebアクセスログで行いましたが、例えばCloudTrailのログを解析するなども楽しそうですね!

本テンプレートも他のテンプレートと同様にGitHubにて公開しておりますのでご意見ご指摘pull-requestをお待ちしております。

以上、16日目でした。明日のAWS CloudFormationビッグバンテンプレートもお楽しみに!