アラートの管理
このトピックでは、ビジネス継続性、クラスタの可用性、マシンの負荷など、さまざまな次元からのアラート項目を紹介し、それに対応する解決策を提供します。
以下の例では、すべての変数は $ で始まります。これらはビジネス環境に応じて置き換える必要があります。たとえば、$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