お手軽ログ解析 〜 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アクセスログ解析を行えるようにする。
公開テンプレート
スタックパラメータ
- KeyName … 認証鍵名を指定します。
- EC2InstanceType … EC2インスタンスのタイプを設定します。Defaultではt1.microが入力されています。
- WebCapacity … ELB配下に配置するWebサーバの台数を指定します。Defaultは2です。
- UserName … nginxで行っているBASIC認証用のユーザ名を入力します。
- Password … 上記BASIC認証用ユーザのパスワードを入力します。
アウトプット
- WebEndpoint … WebサーバのURL。ロードバランサのFQDNになっています。
- LogEndpoint … KibanaのURL。BASIC認証が掛かっているため、スタックパラメータで指定したUserNameとPasswordの入力が必要です。
LogEndpointにアクセスし、BASIC認証を通過するとこんな感じでKibanaの画面が表示されます。ログが少なくてすみません。
まとめ
Kibanaはグラフィカルで分かりやすく、かつリアルタイムに分析が可能であることから、とてもパワフルなログ解析ツールだと思います。今回はWebアクセスログで行いましたが、例えばCloudTrailのログを解析するなども楽しそうですね!
本テンプレートも他のテンプレートと同様にGitHubにて公開しておりますのでご意見ご指摘pull-requestをお待ちしております。
以上、16日目でした。明日のAWS CloudFormationビッグバンテンプレートもお楽しみに!