今日は巷で話題のfluentd(フルーエントディー)を使って、アクセスログを活用するための準備をしたいと思います。
- 簡単にfluentdを使って何をするのか
- 例えばこんなこと
という、知識や目的の準備です。
fluentd とは?
Linuxサーバなどのログを集約するためのツールです。ログ形式は良くあるテキスト形式ではなく、JSON形式にて構造化された形で保存されるため、集約されたログデータを解析したりするのがとってもやりやすくなります。
従来のテキストデータで出力されるApacheのログなどを読み込んで、fluentdでリモートログサーバに飛ばして、集約保存することなんてことができます。
集約されたログデータを解析サーバで解析して、グラフで出力とかするわけです。
具体的にどういうことができるの?
ログデータの活用は無限大なので、さまざまな事が想定できます。いくつかあげると、
Apacheのアクセスログを集約して
- ステータスコードを解析して、4xxや5xxのコードがないかを可視化
- レスポンススピードを解析して、ユーザーの体感スピードを可視化
というのが気軽におこなう一例です。今月発売のSoftware Designにも掲載されているような例です。
WEB開発をする人にとっては、以下のような活用法があります。
こういった言語のライブラリを使用すれば、WEBフレームワークからfluentへログを投げることができます。
これを利用すると、例えば、4つリンクを並べたときにどういう風にクリックされるか?クリックされる割合や傾向をログとして投げて、統計分析することができます。
これにより、4つのリンクをどう並べれば最適かのか、3つのリンクの方が効果的なのかなど、WEBアプリケーションの適切な改良方針が立てられ、検証できます。
新機能をリリースすればユーザーはついてくるという時代は終わった
なぜ、この様なデータ解析が巷で話題になっているかというと、WEBアプリケーションにおけるビジネスニーズが変わってきているからです。
数年前であれば、目新しいコンテンツや機能をリリースすればユーザは集まりましたが、今となっては、同様のコンテンツいくつも選択肢があり、ユーザーが自分の気に入ったサイトを選べるような時代です。
そこで、ユーザーに対してWEBアプリケーションを最適化することが求められるのです。これは、ユーザー体験を最大化するということです。
早急な最適化が求められる
リリースされてから、1週間2週間たってから、機能の改良がおこなわれるようなスピードでは既にユーザーは離れてしまっているでしょう。
こうかなぁ?あぁかなぁ?と、しゃべってる間に、ユーザーはもういません。
また、時間をかけて改修しても、改悪になることも十分にあります。
そこで、ほぼリアルタイムにログデータを解析していくことにより、リリースしてから1日や半日、数時間単位で、最適化していけば、ユーザの体験を向上させていくことが可能です。
数値化していくことにより、いくつかの解決策を比較検討することができます。
計測することの重要性はリーンスタートアップでも重要なことだとされています。
リーン・スタートアップ ―ムダのない起業プロセスでイノベーションを生みだす エリック・リース、伊藤 穣一(MITメディアラボ所長)、井口 耕二 |
ユーザーから直接フィードバックを得る
ユーザーから直接ヒアリングすることも大切ですが、やはり時間がかります。
そして、人間から直接ヒアリングした場合、言っている内容と行動があっていないようなこともあります。
感じて、口にしている言葉と、実際に良くするWEBアプリ上の行動が違ったりするということは意外と良くあることです。また、企業が実施するアンケートだったりするので、アンケートの背景を読んで、答えると言うことも良くあります。これは、企業が求めているデータではありません。
まとめ
WEBアプリケーションでは、ローカルにインストールするソフトウェアなどに比べて、改良版の提供は即座にシステムに反映できることが多いため、アグレッシブにユーザーへの最適化を実施できます。
そういった強みを最大限に活かして、ユーザーの体験を最大化するためにfluentdなどは重要な役割を担っているのです。
まずは気軽なデータを収集して、活用してみてはどうでしょうか。