大量のデータストレージの監視

ソーシャルネットワークが生まれたことにより、最近は大量のデータの管理とストレージが必要になっています。旧来のデータベース管理システムは、このようなシステムにおいては、ある意味パフォーマンスが低く拡張性が無いとされています。

大きなソーシャルネットワークでは、このようなことに気付いていました。

Facebook は、インデックス検索機能を強化するために 2008年にCassandra DB を構築しました。そして、Twitter は巨大なサーバクラスタで実行でき大量のデータを扱えるため 2010年にCassandra を利用することをアナウンスしました。最近は、Cassandra は Apache のトップレベルのプロジェクトとなり、  Apache Cassandra として知られています。

大量のデータを管理するためには、このアーキテクチャの監視の重要性は増します。 Cassandra を利用するのであればそれの監視の仕方を知りたいと考えるでしょう。

Apache Cassandra とは?

Apache Cassandra は、複数のサーバにまたがり単一障害点のない高可用性を持った大量のデータを扱うオープンソースのデータベース管理システムです。 Cassandra は、すてべのクライアント対して遅延の少ないマスターレスの非同期レプリケーション機能を持ち、複数のデータセンターにまたがる強力なクラスタをサポートしています。

データ収集方法

Cassandra データの取得は、基本的にOS上でのコマンド実行で行います。 COL コマンドを実行するには、CQLsh クライアント を利用します。また、Cassandra のログファイル も情報を取得するのに利用します。

Cassandra から取得するデータを以下に説明します:

  • Cassandra_Process: cassandra プロセスの状態を表示します。

  • Cassandra_CPU_Usage: cassandra プロセスの cpu 使用率を % で表示します。

  • Cassandra_Memory_Use: cassandra プロセスのメモリ使用率を % で表示します。

  • Cassandra_Error_Log_Messages: cassandra ログのエラーメッセージの量を表示します。

  • Cassandra_Warning_Log_Messages: cassandra ログの警告メッセージの量を表示します。

  • Cassandra_Network_Connections: クライアントからのネットワーク接続数を表示します。

  • Cassandra_Thrift_Server_Status: thrift サーバの状態を表示します。

  • Cassandra_Cluster_Status : メインクラスタの状態を表示します。

  • Cassandra_Key_Cache_Size: key キャッシュんのサイズをキロバイトで表示します。

  • Cassandra_Active_Commands: アクティブなコマンドまたは実行中のタスクの量を表示します。

  • Cassandra_Pending_Commands: ペンディングコマンドの量を表示します。

  • Cassandra_Completed_Commands: 完了コマンドの量を表示します。

  • Cassandra_Active_Responses: cassandra で実行されたコマンドへのアクティブレスポンスの量を表示します。

  • Cassandra_Pending_Responses: コマンドへのペンディングレスポンスの量を表示します。

  • Cassandra_Completed_Responses: コマンドへの完了レスポンスの量を表示します。

  • Cassandra_Nodetool_Configuration: Nodetool が正しく動作しているかどうかを検出します。

Cassandra のパフォーマンスに影響するパラメータ:

  • Cassandra_ReadStage_Pool_Pending_Tasks

  • Cassandra_RequestResponseStage_Pool_Pending_Tasks

  • Cassandra_MutationStage_Pool_Pending_Tasks

  • Cassandra_ReadRepairStage_Pool_Pending_Tasks

  • Cassandra_ReplicateOnWriteStage_Pool_Pending_Tasks

  • Cassandra_GossipStage_Pool_Pending_Tasks

  • Cassandra_AntiEntropy_Pool_Pending_Tasks

  • Cassandra_MigrationStage_Pool_Pending_Tasks

  • Cassandra_MemoryMeter_Pool_Pending_Tasks

  • Cassandra_MemtablePostFlusher_Pool_Pending_Tasks

  • Cassandra_FlushWriter_Pool_Pending_Tasks

  • Cassandra_MiscStage_Pool_Pending_Tasks

  • Cassandra_PendingRangeCalculator_Pool_Pending_Tasks

  • Cassandra_ReplicateOnWriteStage_Pool_Pending_Tasks

  • Cassandra_Comitlog_archiver_Pool_Pending_Tasks

  • Cassandra_InternalResponseStage_Pool_Pending_Tasks

  • Cassandra_HintedHandoff_Pool_Pending_Tasks

Apache Cassandra の監視方法

Cassandra を監視するために、Pandora FMS を利用します。 こちら からダウンロードできます。

インストールに手助けが必要であれば、ウェブサイトにチュートリアルがあります

Pandora FMS をインストールしたのち、 Cassandra プラグインをダウンロードします。

このプラグイン監視は、OS でコマンドを実行することによりデータを取得します。Cassandra のログを分析しnodetool(Cassandora に含まれるコマンドラインユーティリティ)を実行します。

コマンドを実行することにより重要な全情報をパースし、ソフトウエアエージェントのモジュールに反映できるXML形式で出力し、Pandora FMS データサーバに送信できるようにします。

以下では、自分自身でそれらを開発することなく、いつでもこれらの完成した監視の仕組をダウンロードすることができます。以下は Pandora FMS ライブラリにある Cassandraプラグインです。

Plugin on library

download_it-08

Pandora FMS サーバはインストールされている想定です(そうでなければ、素早くテストするために Pandora FMS がインストールされた仮想マシンイメージを試してみてください)。 Cassandra サーバには、Pandora FMS エージェントをインストールする必要があります。また、Pandora FMS Cassandra プラグインもインストールする必要があります。

ダウンロードしてプラグイン(のtarファイル)を展開すると、bashスクリプト(.sh)とプラグイン利用のためのドキュメント(.odtと.pdf)があります。 Cassandraに含まれている必要なもののインストール方法を確認できます。

プラグインファイル (cassandra.sh) を次のプラグインディレクトリにコピーします: /etc/pandora/plugins

そして、次の Pandora FMS エージェント設定ファイルを編集します: /etc/pandora/pandora_agent.conf
以下の行を記載します:

module_plugin /etc/pandora/plugins/cassandra.sh

pandora エージェントを再起動します:

/etc/init.d/pandora_agent_daemon restart

5~10秒ほど待つと、インストールしたエージェントで Cassandra の情報収集が開始されます。次のような画面を見ることができます。


cassandra_modules
すべての監視が実行され、結果がそれぞれのモジュールのデータとして保存されます。

この情報を使ってできる事はたくさんあります。たとえば、それぞれのモジュールのグラフを表示したりできます。

cassandra_graph
 

Pandora FMS 内にこれらすべてのデータが入ることにり、大きな可能性が広がります。

  • アラートシステムを使って、何らかの値が異常になった場合にメールやSMSで通知できます。
  • ブラウザやモバイルデバイスでアプリケーションを使って、イベントの一覧をフィルタして見ることができます。
  • オンデマンドまたは定期的なレポート生成ができます。

出来ることすべてについては、Pandora FMS マニュアル を確認してください。

Shares