このトピックでは、Alibaba Cloud Managed Service for Prometheus を使用して Cassandra を監視する方法について説明します。
前提条件
ECS 用の Prometheus インスタンスが作成されていること。詳細については、Prometheus インスタンスを作成して ECS インスタンスを監視する を参照してください。
制限事項
コンポーネントは、ECS 用の Prometheus インスタンスにのみインストールできます。
手順 1: Cassandra JMX エージェントをデプロイする
Cassandra のバージョンに基づいて、Cassandra JMX エージェントを、Cassandra が存在する Elastic Compute Service (ECS) インスタンスにダウンロードします。
パッケージを
MCAC_ROOT
に解凍します。cassandra-env.sh ファイルに次の情報を追加します。MCAC_ROOT=/path/to/directory JVM_OPTS="$JVM_OPTS -javaagent:${MCAC_ROOT}/lib/datastax-mcac-agent.jar"
重要Cassandra JMX エージェントが Managed Service for Prometheus に公開するポート番号は 9103 です。ポート番号を変更するには、${MCAC_ROOT}/config/collectd.conf.tmpl ファイルの次の情報を変更します。
Cassandra を再起動し、ECS インスタンスで
curl localhost:{jmx port}/metrics
コマンドを実行します。データが返されるかどうかを確認します。データが返された場合、Cassandra JMX エージェントはインストールされています。
手順 2: Cassandra を Managed Service for Prometheus に統合する
手順
エントリポイント 1: Prometheus インスタンスの統合センター
Managed Service for Prometheus コンソール にログインします。
左側のナビゲーションペインで、インスタンス をクリックします。
管理する Prometheus インスタンス インスタンスの名前をクリックして、統合センターページに移動します。
エントリポイント 2: ARMS コンソールの統合センター
Application Real-Time Monitoring Service (ARMS) コンソール にログインします。
左側のナビゲーションペインで、統合センター をクリックします。コンポーネント セクションで、Cassandra を見つけて 追加 をクリックします。表示されるパネルで、プロンプトに従って Cassandra を統合します。
Cassandra を統合する
このセクションでは、Prometheus インスタンスの統合センターで Cassandra コンポーネントを統合する方法について説明します。
Cassandra コンポーネントをインストールまたは追加します。
Cassandra コンポーネントを初めてインストールする場合は、次の操作を実行します。
統合センターページの 未インストール セクションで、Cassandra を見つけて インストール をクリックします。
説明カードをクリックすると、表示されるパネルで一般的な Cassandra メトリックとダッシュボードのサムネイルを表示できます。リストされているメトリックは参考用です。Cassandra コンポーネントをインストールした後、Managed Service for Prometheus によって収集された実際のメトリックを表示できます。詳細については、主要なメトリック を参照してください。
Cassandra コンポーネントをインストール済みの場合は、コンポーネントを再度追加する必要があります。
統合センターページの インストール済み セクションで、Cassandra を見つけて 追加 をクリックします。
設定手順 2 セクションの OK タブで、パラメータを構成し、 をクリックします。次の表にパラメータを示します。
パラメータ
説明
インスタンス名
エクスポーターの名前。
名前に使用できるのは小文字、数字、ハイフン (-) のみで、ハイフン (-) で開始または終了することはできません。
名前は一意である必要があります。
ECS ラベルキー (サービスディスカバリ)
エクスポーターのデプロイに使用される ECS タグとタグ値。Managed Service for Prometheus は、このタグをサービスディスカバリに使用します。有効な値: acs:emr:nodeGroupType および acs:emr:hostGroupType。
ECS ラベル値
ECS タグ値。デフォルト値: CORE、MASTER。複数の値はカンマ (,) で区切ります。
JMX エージェントリスニングポート
メトリックのリスニングポート。Managed Service for Prometheus は、このポートにアクセスしてメトリックデータを取得します。デフォルト値: 9103。
メトリックパス
Managed Service for Prometheus がエクスポーターからメトリックデータを収集するために使用する HTTP パス。デフォルト値: /metrics。
メトリックスクレイピング間隔 (秒)
Managed Service for Prometheus が監視データを収集する間隔。デフォルト値: 30。
説明手順 2 セクションの メトリック タブで、監視メトリックを表示できます。
インストールされたコンポーネントは、統合管理Managed Service for Prometheus コンソール の 統合管理 ページに表示されます。統合管理統合環境、統合アドオン、クエリダッシュボード の各タブで構成される ページでは、ターゲット、メトリック、ダッシュボード、アラートなどの情報を表示できます。
ターゲット タブで、エクスポーターのステータスを表示することもできます。
手順 3: Cassandra のダッシュボードを表示する
ダッシュボードタブでは、可用性、クライアントの読み取りおよび書き込みレイテンシ、クライアントのスループットなどの監視データを表示できます。ノードの CPU 使用率、メモリ使用量、ディスク使用量を表示することもできます。
統合センター ページで、インストール済み セクションの Cassandra コンポーネントをクリックします。表示されるパネルで、ダッシュボード タブをクリックして、Cassandra ダッシュボードのサムネイルとハイパーリンクを表示します。ハイパーリンクをクリックして Grafana ページに移動し、ダッシュボードを表示します。このセクションでは、一般的なダッシュボードの監視メトリックについて説明します。
クラスター/ノード情報セクション
クライアントの読み取りレイテンシ、書き込み遅延、スループットセクション
例外とエラーセクション
キャッシングとブルームフィルターセクション
ハードウェアリソース使用状況セクション
ストレージ占有率の詳細セクション
スレッドプールステータスセクション
JVM とガベージコレクションセクション
手順 4: アラートを構成する
統合センター ページで、インストール済み セクションの Cassandra コンポーネントをクリックします。表示されるパネルで、アラート タブをクリックして、Managed Service for Prometheus で構成されているすべての Cassandra アラートルールを表示します。
Managed Service for Prometheus を使用すると、簡単な構成で Cassandra エクスポーターを有効にできます。すぐに使える専用のダッシュボードとアラートが提供されています。ARMS コンソールを使用してエクスポーターを管理することで、ワークロードコストを削減できます。
Managed Service for Prometheus は、Cassandra の主要なメトリックに対して複数のデフォルトアラートルールを提供します。一般的な Cassandra アラートルールはテンプレートとしてプリセットされており、O&M 担当者がダッシュボードとアラートシステムを構築するのに役立ちます。次の表に、デフォルトのアラートルールを示します。
カテゴリ | メトリック | 説明 |
ノードステータス | クラスター内の非アクティブノードの割合 | 値が 10 を超える場合、クラスター内の 1 つ以上のノードがダウンしています。 |
リソース使用量 | CPU 使用率 | ノードの CPU 使用率が過去 5 分間で 85% を超えた場合、CPU 使用率は上限に達しています。 |
メモリ使用量 | ノードのメモリ使用量が 85% を超えた場合、メモリ使用量は上限に達しています。 | |
ハードディスク使用量 | ノードのハードディスク使用量が 85% を超えた場合、ハードディスクは上限に達しています。 | |
読み取りおよび書き込みレイテンシとスループット | 読み取りレイテンシ | ノードの読み取りレイテンシが過去 1 分間で 200 ミリ秒を超えた場合、読み取りレイテンシは高くなっています。 |
書き込みレイテンシ | ノードの書き込みレイテンシが過去 1 分間で 200 ミリ秒を超えた場合、書き込みレイテンシは高くなっています。 | |
読み取りスループット | ノードの読み取り操作数が過去 1 分間で 1,000 を超えた場合、読み取りスループットは高くなっています。 | |
書き込みスループット | ノードの書き込み操作数が過去 1 分間で 1,000 を超えた場合、書き込みスループットは高くなっています。 | |
例外とエラー | タイムアウトしたリクエスト | ノードのタイムアウトしたリクエスト数が過去 1 分間で 10 を超えた場合、ノードは過負荷になっています。 |
失敗したリクエスト | ノードの失敗したリクエスト数が過去 1 分間で 10 を超えた場合、ノードは過負荷になっています。 | |
ドロップされたメッセージ | ノードのドロップされたメッセージ数が過去 1 分間で 10 を超えた場合、ノードは過負荷になっています。 | |
JVM | GC 時間比率 | 過去 5 分間のノードの GC 時間が 1% を超える場合、ガベージコレクションが頻繁に発生しています。 |
ビジネス要件に基づいてアラートルールを作成することもできます。詳細については、Prometheus インスタンスのアラートルールを作成する を参照してください。
主要なメトリック
クラスターとノードの情報
指標 | レベル | 説明 | 備考 |
mcac_client_connected_native_clients | メジャー | CQL 接続数 | 値が大きすぎると、多くのシステムリソースが占有され、クライアントのレイテンシが長くなります。 |
mcac_table_live_disk_space_used_total | メジャー | Cassandra が占有する容量 | 値が大きすぎると、ストレージ容量が不足し、アクセスレイテンシが長くなる可能性があります。 |
mcac_table_snapshots_size | 推奨 | Cassandra スナップショットファイルサイズ | スナップショットはデータの復元に使用されます。値が大きすぎると、完全なスナップショットを保存するためのストレージ容量が不足する可能性があります。 |
collectd_uptime | メジャー | ノードの起動時間 | 値が大きすぎると、システムが長時間再起動されておらず、セキュリティリスクに対して脆弱である可能性があります。 |
主要なパフォーマンス指標
指標 | レベル | 説明 | 備考 |
mcac_table_read_latency | クリティカル | クライアント読み取りレイテンシ | 値が大きすぎる場合、アプリケーションの読み取り速度が遅くなり、ユーザーエクスペリエンスに影響します。 |
mcac_table_write_latency | クリティカル | クライアント書き込みレイテンシ | 値が大きすぎる場合、アプリケーションの書き込み速度が遅くなり、ユーザーエクスペリエンスに影響します。 |
例外とエラー
メトリック | レベル | 説明 | 備考 |
mcac_client_request_timeouts_total | クリティカル | タイムアウトしたクライアントリクエスト | 値が大きすぎる場合、システムは過負荷状態であり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
mcac_client_request_failures_total | クリティカル | 異常なクライアントリクエスト | 値が大きすぎる場合、システムは過負荷状態であり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
mcac_dropped_message_dropped_total | クリティカル | ドロップされたメッセージ | 値が大きすぎる場合、システムは過負荷状態であり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
クラスターとノードの情報
メトリック | レベル | 説明 | 備考 |
mcac_table_key_cache_hit_rate | メジャー | key_cache のヒット率 | 値が小さすぎると、アプリケーションの読み取り速度が遅くなり、ユーザー エクスペリエンスに影響を与える可能性があります。 |
mcac_client_connected_native_clients | 主要 | CQL 接続数 | 値が大きすぎる場合、多くのシステムリソースが占有され、クライアントのレイテンシが長くなります。 |
mcac_table_live_disk_space_used_total | 主要 | Cassandra によって占有されている容量 | 値が大きすぎる場合、ストレージ容量が不足し、アクセスレイテンシが長くなる可能性があります。 |
mcac_table_snapshots_size | 推奨 | Cassandra スナップショットファイルサイズ | スナップショットはデータの復元に使用されます。値が大きすぎる場合、完全なスナップショットを保存するのにストレージ容量が不足する可能性があります。 |
collectd_uptime | 主要 | ノードの起動時間 | 値が大きすぎる場合、システムが長時間再起動されておらず、セキュリティリスクに対して脆弱である可能性があります。 |
主要なパフォーマンスメトリック
メトリック | レベル | 説明 | 備考 |
collectd_cpu_total | クリティカル | CPU使用率 | 値が大きすぎる場合、システムは過負荷になり、クライアント要求のレイテンシが長くなり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
mcac_table_read_latency | クリティカル | クライアントの読み取りレイテンシ | 値が大きすぎる場合、アプリケーションの読み取り速度が遅くなり、ユーザーエクスペリエンスに影響します。 |
mcac_table_write_latency | クリティカル | クライアントの書き込みレイテンシ | 値が大きすぎる場合、アプリケーションの書き込み速度が遅くなり、ユーザーエクスペリエンスに影響します。 |
例外とエラー
メトリック | レベル | 説明 | 備考 |
mcac_client_request_timeouts_total | クリティカル | タイムアウトしたクライアントリクエスト | 値が大きすぎる場合、システムは過負荷になり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
mcac_client_request_failures_total | クリティカル | 異常なクライアントリクエスト | 値が大きすぎる場合、システムは過負荷になり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
mcac_dropped_message_dropped_total | クリティカル | ドロップされたメッセージ | 値が大きすぎる場合、システムは過負荷になり、ユーザーエクスペリエンスに深刻な影響を与えます。 |
キャッシングとブルームフィルター
メトリック | レベル | 説明 | 備考 |
mcac_table_live_ss_table_count | メジャー | SSTable の数 | 値が大きすぎると、ハードディスクの使用率が高くなり、読み取り/書き込みレイテンシが長くなります。SSTable の圧縮ポリシーを設定することをお勧めします。 |
mcac_table_live_disk_space_used_total | メジャー | SSTable によって占有されているハードディスク容量 | 値が大きすぎる場合、ハードディスクの使用率が高くなり、読み取り/書き込みレイテンシが長くなります。SSTable の圧縮ポリシーを設定することをお勧めします。 |
mcac_table_ss_tables_per_read_histogram | メジャー | 読み取り操作ごとのSSTableの数 | 値が大きすぎると、クライアントの読み取りレイテンシが高くなります。 |
mcac_commit_log_total_commit_log_size | 重大 | コミットログが占有するハードディスク容量 | 値が大きすぎると、ハードディスク容量が不足し、読み取り/書き込みパフォーマンスが低下し、データ復旧時間が長くなります。 |
mcac_table_memtable_live_data_size | 重大 | MemTable が占有する領域 | 値が大きすぎると、データ書き込みパフォーマンスとノードの安定性が低下します。 |
mcac_table_waiting_on_free_memtable_space | 重大 | MemTable が解放されるのを待機していた時間 | 値が大きすぎる場合、データ書き込みパフォーマンスとノードの安定性が低下します。 |
スレッド プールの状態
メトリック | レベル | 説明 | 備考 |
mcac_thread_pools_active_tasks | クリティカル | スレッドプール内のアクティブなタスクの数 | 値が大きすぎると、システムリソースが占有され、応答速度の低下やシステムクラッシュにつながる可能性があります。 |
mcac_thread_pools_total_blocked_tasks_total | クリティカル | スレッドプール内のブロックされたタスクの数 | 値が大きすぎると、システムリソースが占有され、応答速度の低下やシステムクラッシュにつながる可能性があります。 |
mcac_thread_pools_pending_tasks | クリティカル | スレッドプール内の保留中のタスクの数 | 値が大きすぎると、多くのシステムリソースが占有されます。保留中のタスクに対応するリクエストがタイムアウトすると、システムがクラッシュする可能性があります。 |
mcac_thread_pools_completed_tasks | メジャー | スレッドプール内の完了したタスクの数 | このメトリックは、システムのスループットを示します。値が高いほど、システムのパフォーマンスは向上します。 |
CPU、メモリ、ディスクの使用量の傾向
メトリック | レベル | 説明 | 備考 |
mcac_jvm_memory_used | クリティカル | 使用済み JVM ヒープメモリのサイズ | 値が大きすぎる場合、メモリが不足し、頻繁なガベージコレクションがトリガーされ、アプリケーションのスループットが低下する可能性があります。 |
mcac_jvm_gc_time | クリティカル | アプリケーションが GC に費やした時間 | 値が大きすぎる場合、GC が頻繁に行われ、システムがユーザータスクを実行する時間が少なくなり、クライアント要求のタイムアウト、さらにはシステムクラッシュにつながる可能性があります。 |