アラートの管理
このトピックでは、ビジネス継続性、クラスタの可用性、マシンの負荷など、さまざまな次元からのアラート項目を紹介し、それに対応する解決策を提供します。
以下の例では、すべての変数は $ で始まります。これらはビジネス環境に応じて置き換える必要があります。たとえば、$job_name は Prometheus の設定で対応するジョブ名に置き換え、$fe_leader は Leader FE の IP アドレスに置き換えてください。
サービス停止アラート
FE サービス停止
PromSQL
count(up{group="fe", job="$job_name"}) >= 3
アラート説明
アクティブな FE ノードの数が指定された値を下回るとアラートが発生します。この値は実際の FE ノードの数に基づいて調整できます。
解決策
停止した FE ノードを再起動してみてください。
BE サービス停止
PromSQL
node_info{type="be_node_num", job="$job_name",state="dead"} > 1
アラート説明
複数の BE ノードが停止するとアラートが発生します。
解決策
停止した BE ノードを再起動してみてください。
マシン負荷アラート
BE CPU アラート
PromSQL
(1-(sum(rate(starrocks_be_cpu{mode="idle", job="$job_name",instance=~".*"}[5m])) by (job, instance)) / (sum(rate(starrocks_be_cpu{job="$job_name",host=~".*"}[5m])) by (job, instance))) * 100 > 90
アラート説明
BE CPU 使用率が 90% を超えるとアラートが発生します。
解決策
大規模なクエリや大規模なデータロードがあるかどうかを確認し、詳細をサポートチームに転送してさらなる調査を行います。
-
topコマンドを使用してプロセスによるリソース使用状況を確認します。top -Hp $be_pid -
perfコマンドを使用してパ フォーマンスデータを収集し、分析します。# コマンドを1〜2分間実行し、CTRL+Cを押して終了します。
sudo perf top -p $be_pid -g >/tmp/perf.txt
緊急時には、スタックを保存した後、対応する BE ノードを再起動してサービスを迅速に復元することができます。ここでの緊急事態とは、BE ノードの CPU 使用率が異常に高いままであり、CPU 使用率を下げる効果的な手段がない状況を指します。
メモリアラート
PromSQL
(1-node_memory_MemAvailable_bytes{instance=~".*"}/node_memory_MemTotal_bytes{instance=~".*"})*100 > 90
アラート説明
メモリ使用率が 90% を超えるとアラートが発生します。
解決策
トラブルシューティングのために Get Heap Profile を参照してください。
- 緊急時には、対応する BE サービスを再起動してサービスを復元することができます。ここでの緊急事態とは、BE ノードのメモリ使用率が異常に高いままであり、メモリ使用率を下げる効果的な手段がない状況を指します。
- 他の混在デプロイされたサービスがシステムに影響を与えている場合、緊急時にはそれらのサービスを終了することを検討してください。
ディスクアラート
ディスク負荷アラート
PromSQL
rate(node_disk_io_time_seconds_total{instance=~".*"}[1m]) * 100 > 90
アラート説明
ディスク負荷が 90% を超えるとアラートが発生します。
解決策
クラスタが node_disk_io_time_seconds_total アラートをトリガーした場合、まずビジネスの変更があるかどうかを確認します。変更がある場合は、以前のリソースバランスを維持するために変更をロールバックすることを検討してください。変更が特定されないか、ロールバックが不可能な場合は、通常のビジネス成長がリソース拡張の必要性を引き起こしているかどうかを検討してください。iotop ツールを使用してディスク I/O 使用状況を分析できます。iotop は top に似た UI を持ち、pid、user、I/O など の情報を含みます。
また、以下の SQL クエリを使用して、かなりの I/O を消費しているタブレットを特定し、特定のタスクやテーブルに追跡することができます。
-- "all" はすべてのサービスを示します。10 は収集が10秒間続くことを示します。3 は上位3つの結果を取得することを示します。
ADMIN EXECUTE ON $backend_id 'System.print(ExecEnv.io_profile_and_get_topn_stats("all", 10, 3))';
ルートパス容量アラート
PromSQL
node_filesystem_free_bytes{mountpoint="/"} /1024/1024/1024 < 5
アラート説明
ルートディレクトリの空き容量が 5GB 未満になるとアラートが発生します。
解決策
大きなスペースを占める可能性のある一般的なディレクトリには /var、/opt、/tmp があります。以下のコマンドを使用して大きなファイルを確認し、不要なファイルをクリアします。
du -sh / --max-depth=1
データディスク容量アラート
PromSQL
(SUM(starrocks_be_disks_total_capacity{job="$job"}) by (host, path) - SUM(starrocks_be_disks_avail_capacity{job="$job"}) by (host, path)) / SUM(starrocks_be_disks_total_capacity{job="$job"}) by (host, path) * 100 > 90
アラート説明
ディスク容量の使用率が 90% を超えるとアラートが発生します。
解決策
-
ロードされた データ量に変更があるかどうかを確認します。
Grafana で
load_bytesメトリックを監視します。データロード量が大幅に増加している場合は、システムリソースを拡張する必要があるかもしれません。 -
DROP 操作があるかどうかを確認します。
データロード量があまり変わっていない場合は、
SHOW BACKENDSを実行します。報告されたディスク使用量が実際の使用量と一致しない場合は、最近の DROP DATABASE、TABLE、または PARTITION 操作のために FE Audit Log を確認します。これらの操作のメタデータは FE メモリに 1 日間保持され、24 時間以内に RECOVER ステートメントを使用してデータを復元することで誤操作を回避できます。復元後、実際のディスク使用量は
SHOW BACKENDSに表示されるものを超える可能性があります。メモリ内の削除されたデータの保持期間は、FE 動的パラメータ
catalog_trash_expire_secondを使用して調整できます(デフォルト値: 86400)。ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second"="86400");この変更を永続化するには、FE 設定ファイル fe.conf に設定項目を追加します。
その後、削除されたデータは BE ノードの trash ディレクトリ(
$storage_root_path/trash)に移動されます。デフォルトでは、削除されたデータは trash ディレクトリに 1 日間保持され、これにより実際のディスク使用量がSHOW BACKENDSに表示されるものを超える可能性があります。trash ディレクトリ内の削除されたデータの保持時間は、BE 動的パラメータ
trash_file_expire_time_secを使用して調整できます(デフォルト値: 86400)。curl http://$be_ip:$be_http_port/api/update_config?trash_file_expire_time_sec=86400
FE メタデータディスク容量アラート
PromSQL
node_filesystem_free_bytes{mountpoint="${meta_path}"} /1024/1024/1024 < 10
アラート説明
FE メタデータのディスク空き容量が 10GB 未満になるとアラートが発生します。
解決策
以下のコマンドを使用して、大量のスペースを占めるディレクトリを確認し、不要なファイルをクリアします。メタデータパスは fe.conf の meta_dir 設定で指定されています。
du -sh /${meta_dir} --max-depth=1
メタデータディレクトリが多くのスペースを占めている場合、通常は bdb ディレクトリが大きく、CheckPoint の失敗が原因である可能性があります。CheckPoint Failure Alert を参照してトラブルシューティングを行います。この方法で問題が解決しない場合は、技術サポートチームに連絡してください。