sonar-health-check
クラスター全体のノードに対して障害状態の診断を実施します。ノードの生存確認からGC異常、ヒープ使用量まで6つの状態項目を点検し、異常が検出されたノードの診断結果を返します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | ドライバークエリ |
| 必要な権限 | 管理者 |
| ライセンス使用量 | 集計あり |
| 並列実行 | 非対応 |
| 分散実行 | 非対応 |
構文
オプション
duration=INT{mon|w|d|h|m|s}- ログベースの診断(GC、ヒープ)で検索する直近データの期間(デフォルト:
1h)。
出力フィールド
| フィールド | 型 | 説明 |
|---|---|---|
node_id | integer | ノードID |
node | string | ノード識別子(NID) |
node_type | string | ノードタイプ(CONTROL、DATA、FORWARDER) |
type | string | 診断項目タイプ(Node Aliveness、Policy Sync、Forwarder Swap、Forwarder Delay、GC、Heap Usage) |
status | string | 診断結果(BAD: 異常検出、GOOD: 正常、FAILURE: 点検失敗) |
details | map | 診断項目ごとの詳細情報(以下の説明を参照) |
details フィールドは type によって異なる内容を含みます。
type=Policy Sync
| キー | 説明 |
|---|---|
last_sync_id | 最後に同期されたキューID |
last_sync_time | 最後の同期日時 |
last_queue_id | 最新の同期キューID |
last_queue_time | 最新のキュー項目作成日時 |
type=Forwarder Swap
| キー | 説明 |
|---|---|
channel | 転送チャンネル名 |
swap_usage | スワップ使用量(バイト) |
swap_size | 現在のスワップ使用サイズ(バイト) |
swap_capacity | スワップの最大容量(バイト) |
drop | ドロップされたレコード数 |
type=Forwarder Delay
| キー | 説明 |
|---|---|
logger | ロガーの内部識別子 |
logger_name | ロガー名 |
last_received | データノードが最後に受信した日時 |
last_sent | フォワーダーノードが最後に送信した日時 |
type=GC
| キー | 説明 |
|---|---|
type | GCイベントタイプ(OOM、ALLOC_STALL、FULL_GC、TO_SPACE_EXHAUSTED) |
duration | GCの所要時間(ミリ秒)(ALLOC_STALL、FULL_GC のみ含む) |
time | GC発生日時(ALLOC_STALL、FULL_GC、TO_SPACE_EXHAUSTED に含む) |
msg | OOM発生件数メッセージ(OOM のみ含む) |
type=Heap Usage
| キー | 説明 |
|---|---|
min_heap_usage | 照会期間内の最小ヒープ使用率(パーセント文字列、例: "75.23%") |
msg | 閾値超過の案内メッセージ |
エラーコード
パースエラー
| エラーコード | メッセージ | 説明 |
|---|---|---|
| 300106 | No permission. | 管理者権限のないセッションで実行した場合 |
ランタイムエラー
該当なし
説明
sonar-health-check は以下の6つの項目を順番に点検します。
-
Node Aliveness: クラスターに登録されているすべてのノードの生存を確認します。応答しないノードは即座に
BAD状態として返し、以降のログベースの点検対象から除外します。 -
Policy Sync: 制御ノードのポリシー同期状態を確認します。最新の同期キュー項目が作成されてから10秒が経過しても同期が完了していない場合は
BADとして返します。 -
Forwarder Swap: フォワーダーノードのスワップチャンネル使用率が50%以上のチャンネルを
BADとして返します。フォワーダーノード(FORWARDER)にのみ適用されます。 -
Forwarder Delay: データノードの最終受信日時とフォワーダーノードの最終送信日時の差が60秒以上のロガーを
BADとして返します。 -
GC: 指定期間内に各ノードでOOM発生、ALLOC_STALLが100ms超過、FULL_GCが1,000ms超過、またはTO_SPACE_EXHAUSTEDイベントがある場合は
BADとして返します。 -
Heap Usage: 指定期間内に各ノードの最小ヒープ使用率が70%以上の場合は
BADとして返します。
点検項目のうち正常(GOOD)の結果はPolicy Sync項目のみ出力されます。その他の項目は異常(BAD)が検出された場合のみ出力します。
特定のノードへの接続中に例外が発生した場合、そのノードの診断結果を FAILURE として返します。
使用例
-
クラスター全体のノード状態を点検(デフォルト: 直近1時間基準)
sonar-health-check -
直近6時間のデータを基準にGCおよびヒープ使用量を点検
sonar-health-check duration=6h -
異常(
BAD)状態の項目のみをフィルタリングして取得sonar-health-check | search status == "BAD" | sort node, type -
診断項目別の異常ノード数を集計
sonar-health-check | search status == "BAD" | stats count by type
互換性
sonar-health-check コマンドは4.0.2511.0バージョンから利用可能です。