Cloudn \ 技術ブログ tech blog

クラウド・エヌの活用方法についてご紹介していきます。
Cloudn Information

前の記事・次の記事

ログ解析でサービス品質向上にも役立つ!Cloudn Loggingで今日からKibana × Elasticsearch(理論編)

ブログ記事

こんにちは。
Cloudnで開発を担当している今村です。

今回はCloudnのLoggingサービスをご紹介します。
Cloudn Loggingは、サーバに蓄積されるログを一元的に収集・管理し、 ログの退避・保管、検索、アラート機能をWEBのインタフェースとともに提供するサービスです。このようなログの解析基盤を用意することで、現状を正確に分析し、サービス改善や売上向上のための戦略策定に活用していくことが可能になります。

ログデータの活用例

例えば、コンビニエンスストアを考えてみましょう。コンビニでは、店員が商品をレジへ入力後、購入客の年代や性別を入力します。これらのデータは本部へ送信され、時刻や購入品目、購入点数などの情報から、「商品がどの商品と一緒に、どのような客層に購入されるか」といったマーケットバスケット分析が行われます。いわゆるPOS(Point of Sales)システムですね。
ECサイトでは、より詳細にこのような情報を得ることができます。アカウント情報があれば、どのお客様がどのような商品を閲覧したか、POSシステムとは異なり、購入していない商品の情報までも把握することができます。Amazonのように、購入者の好みに合わせて商品をレコメンドする機能はご存知の方も多いでしょう。
どちらも、全国に何千店とあるコンビニ店舗の情報や、大量のアクセス情報を集約し、分析者の好きな「軸」(メトリクスと呼ばれます)で切り出せるような「ログデータの解析基盤」が無ければ成り立ちません。Cloudn Loggingは、収集されたログデータに対して任意のクエリを叩き、分析可能とする基盤を提供します。

 

Cloudn Loggingの構成

Cloudn Loggingは、ログ解析基盤としてオープンソースであるKibanaとElasticsearchを利用しています。また、ElasticsearchへデータをインポートするツールとしてFluentdを利用しています。gooで検索するとKibanaやElasticsearchのインストール手順を紹介したサイトが多く出てきますが、Cloudn Loggingでは面倒なインストールや設定作業は必要なく、コンソール画面からすぐに、両者を組み合わせたログ管理サーバを操作することができます。

・Kibanaとは?

Kibanaとは、Elasticsearch社が開発しているクライアントサイドのログ解析・可視化ツールで、JavaScriptで構築されたWEBのインタフェースとして提供されます。もともとはログ収集ツールのlogstashと連携するために作成されました。ダッシュボードを追加することで、任意の条件のもとにログの解析・可視化を行うことができます。以下は一例ですが、アクセスが何件あったか(青色のグラフ)、またエラーが何件あったか(黄色のグラフ)といった形に、時系列で可視化することができます。綺麗で見やすいですね。

540_logging_2

従来のログ解析は、エンジニアがSSHでログインし、必要なデータをawkやsedなどのコマンドで切り出したのちに、ログの分析者へ提供する必要がありました。しかし、このようなWEBのインタフェースを用意しておくことで、技術に詳しいエンジニアでなくてもWEBブラウザから好きな形にデータを切り出すことができるようになります。

・Elasticsearchとは?

KibanaはあくまでWEBのインタフェースを提供しているだけですので、ログを保存する場所とログの中身を解析するプログラムが必要です。この役割を果たすのがElasticsearchです。Elasticsearchは、Shay Bannonにより2010年にオープンソースとしてリリースされた全文検索サーバです。特徴として、スキーマを指定せずに任意形式でデータを格納できる点が挙げられます。そのため、各レコードごとにデータ形式が異なっていても問題ありません。このあたりはMySQLやPostgreSQLのようなRDBMSと異なる部分で、ログの保存と相性がよい性質と言えます。

・Fluentdとは?

最後にFluentdをご紹介します。Fluentdとは、”Log Everything as JSON”をテーマに、従来はCSVやタブ区切りなどバラバラの形式であったログデータをインプットして、JSON形式にアウトプットするログコレクターです。アウトプットされるログには、出力日時、事前に設定した任意のタグ、さらにインプットされたログ情報がJSON形式で含まれます。例えば以下のようなログになります。

Cloudn Loggingでは、様々なサーバから送信されるログ情報を一元的にFluentdで受け取り、検索サーバであるElasticsearchにインポートしています。

 

Cloudn Loggingの使い方

Cloudn Loggingはログの解析基盤ですので、ここに解析対象のログをサーバから転送する必要があります。ログを転送する方法はrsyslog等いくつかありますが、先ほどご紹介したFluentdにはログを外部のサーバへ転送する機能も有していますので、ログの転送元サーバでも同じくFluentdを利用することができます。

各サーバにインストールされたFluentdによるログの送信先をCloudn Loggingのサーバに向けることで、サーバ内の様々なログをCloudn Loggingに転送し、検索などの解析作業を行うことができるようになります。また、Fluentdでは、ログの種別によりタグを設定することが可能ですので、Kibanaから検索する際にはこのタグ情報をもとにして検索クエリを実行することもできます。

Cloudn Loggingは、あくまで解析対象のログを保存しておく場所ですので、解析の必要がないログは外部へ退避する必要があります。Cloudn Loggingではログデータの退避のため、1時間ごとに自動でCloudn Object Storageというストレージサービスへバックアップを行っています(別途、利用料金がかかります)。Cloudn Object Storageは複数データセンタにまたがった堅牢性99.999999999%(eleven nine)の高信頼なストレージサービスですので、各サーバにログデータを保存しておく場合と比較して、データを喪失するリスクは非常に低くなります。下図はCloudn Object Storageのコンソール画面ですが、Cloudn Loggingを使うと自動的にログデータがgz形式にて圧縮され、順次保存されます。ファイル名をクリックすることで、ご自身の端末にダウンロードすることが可能です。

540_logging_3

これらバックアップされたデータのうち、不要となったものを消す場合、Cloudn Object Storageのコンソール画面から削除することが可能です。下図のように不要なデータにチェックを入れ、削除ボタンをクリックすることで、データがCloudn Object Storageから削除されます。

540_logging_4

最後に、Cloudn Loggingを取り巻く構成を図にまとめてみました。ざっくりですが、このような構成図になります。

540_logging_5

 

今回は、Cloudn Loggingサービスについて内容をご紹介させていただきました。次回の記事では、実際にCloudn Loggingサービスを用いてログ解析を行うまでの手順をご案内いたします。ぜひ次回の記事も続けて御覧ください。

※本記事の内容は、Cloudnの活用方法の一例を示したものであり、お客様の環境・構成において動作することをお約束するものではありません。 従いまして、本記事の内容によって生じたトラブルや損害についても、弊社では責任を負いかねますのでご了承ください。
また、本記事の内容に関してのサポートは行っておりませんので、予めご了承ください。

ブログフッダ

投稿日:

カテゴリ:

前の記事・次の記事

サイドニュー

カテゴリー

最近の記事

バックナンバー