Cassandra監視

Apache Cassandraは膨大なデータを処理するために構築されたNoSQL分配データベース管理システムです。Apache Cassandraを監視し、スローダウンとリソース制限の特定と行います。
プラグイン連携を使用して、データストアの正常性、パフォーマンス、リソース使用量を可視化します。

目次

必要条件

  • Site24x7 Linuxエージェントの最新版をプラグインをインストールしたいサーバーにダウンロード後、インストールします。
  • 次のクエリを使用してPythonのJMXQueryモジュールをインストールします。
    pip install jmxquery
  • 次の手順で、CassandraのJMXポートを設定します。
    1. "/etc/cassandra"ロケーションから"cassandra-env.sh"ファイルを開きます。
    2. CassandraではJMXセキュリティがデフォルトで無効化されています。有効化するには、"cassandra-env.sh"ファイル内に次のコード行を追加します。
      if [ "$LOCAL_JMX" = "yes" ]; then
      JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
    3. "cassandra-env.sh"ファイルのelse部分に次の行を追加します。

      JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.login.config=CassandraLogin"'
      JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config=$CASSANDRA_HOME/conf/cassandra-jaas.config"
      JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.authorizer=org.apache.cassandra.auth.jmx.AuthorizationProxy"
    4. "cassandra-env.sh"ファイル内の次の行をコメントアウトします。
      JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
      JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/cassandra/jmxremote.access"
    5. "cassandra.yaml"ファイルの認証をPasswordAuthenticatorに変更します。

      authenticator: PasswordAuthenticator
    6. "cassandra.yaml"ファイルの認可をCassandraAuthorizerに変更します。

      authorizer: CassandraAuthorizer
    7. Cassandraを再起動します。

プラグインインストール

  1. Site24x7 Linuxエージェントのpluginディレクトリに、"cassandra_monitoring"という名前のフォルダを作成します。
    Linux --> /opt/site24x7/monagent/plugins/cassandra_monitoring
  2. GitHubレポジトリからプラグインファイルをダウンロードし、作成したフォルダ内に保存します。
    例として、"cassandra_monitoring"フォルダにすべてのファイルをダウンロードし、それらを"cassandra_monitoring"ディレクトリに配置してください。
  3. サーバーで次のコマンドを実行し、JMXQueryをインストールします。
    pip install jmxquery
  4. 次のコマンドの値を変更後に実行し、有効なJSON結果かを確認します。
    python3 cassandra_monitoring.py --hostname localhost --port 7199 --logs_enabled False

設定

"cassandra_monitoring.cfg"ファイルで、次のようにCassandra設定を指定します。

[cassandra_1]
hostname=<HOSTNAME>
port=<PORT NUMBER>
logs_enabled=False
log_type_name=None
log_file_path=None

5分以内にプラグインが自動で実行され、Site24x7にデータを送信します。

パフォーマンスメトリック

次のメトリックを監視し、Cassandra環境のトラブルシュートに役立てられます。

パフォーマンスメトリック 説明
遅延の合計(読み取り) 読み取り応答時間(ミリ秒)です。
遅延の合計(書き込み) Total Latency (Write) 書き込み応答時間(ミリ秒)です。
クロスノード遅延 ノードがメッセージを送信し、現在のノードに受信されるまでの時間です。
ヒント数の合計 ノードが起動または再起動されてから、このノードに書き込まれたヒントメッセージ数です。ホストごとに1ヒントが記載されます。
スループット(書き込み) 1秒ごとの書き込みリクエスト数です。
スループット(読み取り) 1秒ごとの読み取りリクエスト数です。
キーキャッシュヒットレート キャッシュに存在するキーのリクエスト読み取りレートです。
使用ディスク ノードで使用されているディスク容量(バイト)です。
完了した圧縮タスク 完了した圧縮タスクの合計です。
保留中の圧縮タスク キュー内の圧縮タスクの合計です。
ParNewガーベージ収集(数) 若い世代の収集数です。
ParNewガーベージ収集(時間) 若い世代の収集発生時間(ミリ秒)です。
CMSガーベージ収集(数) 古い世代の収集です。
CMSガーベージ収集(時間) 古い世代の収集発生時間(ミリ秒)です。
例外 エラーが発生したCassandraリクエストです。
タイムアウト例外(書き込み) 書き込み時のタイムアウト設定内で認知されていないリクエスト数です。
タイムアウト例外(読み取り) 読み取り時のタイムアウト設定内で認知されていないリクエスト数です。
利用不可例外(書き込み) 書き込み時にノードが利用不可であったリクエスト数です。
利用不可例外(読み取り) 読み取り時にノードが利用不可であったリクエスト数です。
保留中のタスク スレッド処理待機中のキュー内のタスク数です。
ドロップしたミューテーション 全テーブルでドロップしたミューテーション数です。
保留中のフラッシュ 全テーブルで保留中のフラッシュタスクの見積り数です。
割り当て時のブロック memテーブル割り当てによりブロックされたスレッド数です。
現在のブロックタスク キューの飽和により現在ブロックされているが、再試行するとブロックが解除されるタスクの数です。
Cassandraの各テーブルは状態やパフォーマンスの監視に重要なメトリックが含まれています。
空白のない"all"という名前のテーブルが存在します。このテーブルでは、ノード上の全テーブルとキースペースに渡るメトリックが含まれます。

しきい値設定

プラグイン監視を追加後、しきい値と可用性プロファイルを関連付けて、監視のクリティカルやダウンを判定します。
ダウンタイムルールを設定し、誤アラートを削減することができます。

ライセンス

1プラグインまで無料でサーバー監視に追加できます。
その後、2つ目のプラグイン監視から1ベーシック監視とみなされます。

関連ガイド