Splunkを使ったCloudStackのログ解析入門

このエントリは、CloudStack Advent Calendar jp: 2013 12月7日分のエントリです。


みなさまは、CloudStackのログをどのように解析していますか?

管理者ガイドにも下記のような記載がありますが、lessコマンド、grepコマンドを駆使し、解析していくのが一般的です。

CloudStack では、ジョブ ID を使用して要求を処理します。ログでエラーを発見して問題をデバッグしたい場合は、管理サーバーロ グ中のジョブ ID を grep で検索します。たとえば、次のエラーメッセージを発見したとします。

010-10-04 13:49:32,595 ERROR [cloud.vm.UserVmManagerImpl] (Job-Executor-11:job-1076) Unable to find any host for [User|i-8-42-VM-untagged

ジョブ ID が 1076 であることに注意してください。次の grep 検索によって、ジョブ 1076 に関連するイベントを追跡することができます。

grep “job-1076)” management-server.log

目grepの達人になると、ログを一瞬みただけで、どこでなにが起きているか分かると言います。w( ̄▽ ̄;)wワオッ!!

私も含め、普段そんなにログと接してない人には、なかなか、達人の域に達する事は難しいので、ここでは、最近はやりのビッグデーター解析ツールSplunkをつかって、CloudStackのログを解析してみる事にします。

まず、Splunkをダウンロードします。私は、management server (centos 6.3)にインストールするので、splunk-6.0-182037-linux-2.6-x86_64.rpmを選びました。

rpm -i splunk-6.0-182037-linux-2.6-x86_64.rpm
cd /opt/splunk/bin/
./splunk start

http://management server:8000/ にアクセスし、First time signing inをクリックし、アカウントの設定を行います。

最初に、Manage inputs > データの追加 > または、データソースを選択してください ファイルとディレクトリから > サーバーを参照で、
/var/log/cloudstack/management/management-server.log を選択します。
続行ソースタイプの選択 > 既存のソースタイプの適用 > log4j を選択し、続行。
さらに、保存他のデータを追加で、同様にapilog.logも追加しておくだけで準備完了!
サーチを開始し、Data Summury > ホスト名を選択すると、ログが表示されます。

サーチフィールドで、様々なキーワードを使ってサーチ可能です。例えば、下記は、listvpcs APIを実行した時のログを、listvpcsでフィルタし表示したときの結果です。いいなと思ったのは、management-server.logとapilog.logが時系列に並んでいるところです。

その他にも、チャートなども表示できるようですが、Splunkのコマンドをあまり知らないので、どなたか教えてください (;^_^A アセアセ・・

また、Splunk DB Connectorを使えば、MySQLに接続し、データを可視化する事も可能みたいです。CloudStack Usage Serverをインストールし、設定しておけば、このDB Connectorで、インスタンスやテンプレートの使用率などをチャートで表示できるかもしれません。また、機会があれば試してみたいとおもいます。

Splunk DB Connectorのインストール手順


参考資料

http://ja.splunk.com/goto/book

Tweet about this on TwitterShare on Facebook41