sonar-health-check

クラスター全体のノードに対して障害状態の診断を実施します。ノードの生存確認からGC異常、ヒープ使用量まで6つの状態項目を点検し、異常が検出されたノードの診断結果を返します。

コマンドプロパティ

項目説明
コマンドタイプドライバークエリ
必要な権限管理者
ライセンス使用量集計あり
並列実行非対応
分散実行非対応

構文

sonar-health-check [duration=INT{mon|w|d|h|m|s}]

オプション

duration=INT{mon|w|d|h|m|s}
ログベースの診断(GC、ヒープ)で検索する直近データの期間(デフォルト: 1h)。

出力フィールド

フィールド説明
node_idintegerノードID
nodestringノード識別子(NID)
node_typestringノードタイプ(CONTROLDATAFORWARDER
typestring診断項目タイプ(Node AlivenessPolicy SyncForwarder SwapForwarder DelayGCHeap Usage
statusstring診断結果(BAD: 異常検出、GOOD: 正常、FAILURE: 点検失敗)
detailsmap診断項目ごとの詳細情報(以下の説明を参照)

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

キー説明
typeGCイベントタイプ(OOMALLOC_STALLFULL_GCTO_SPACE_EXHAUSTED
durationGCの所要時間(ミリ秒)(ALLOC_STALLFULL_GC のみ含む)
timeGC発生日時(ALLOC_STALLFULL_GCTO_SPACE_EXHAUSTED に含む)
msgOOM発生件数メッセージ(OOM のみ含む)

type=Heap Usage

キー説明
min_heap_usage照会期間内の最小ヒープ使用率(パーセント文字列、例: "75.23%"
msg閾値超過の案内メッセージ

エラーコード

パースエラー
エラーコードメッセージ説明
300106No permission.管理者権限のないセッションで実行した場合
ランタイムエラー

該当なし

説明

sonar-health-check は以下の6つの項目を順番に点検します。

  1. Node Aliveness: クラスターに登録されているすべてのノードの生存を確認します。応答しないノードは即座に BAD 状態として返し、以降のログベースの点検対象から除外します。

  2. Policy Sync: 制御ノードのポリシー同期状態を確認します。最新の同期キュー項目が作成されてから10秒が経過しても同期が完了していない場合は BAD として返します。

  3. Forwarder Swap: フォワーダーノードのスワップチャンネル使用率が50%以上のチャンネルを BAD として返します。フォワーダーノード(FORWARDER)にのみ適用されます。

  4. Forwarder Delay: データノードの最終受信日時とフォワーダーノードの最終送信日時の差が60秒以上のロガーを BAD として返します。

  5. GC: 指定期間内に各ノードでOOM発生、ALLOC_STALLが100ms超過、FULL_GCが1,000ms超過、またはTO_SPACE_EXHAUSTEDイベントがある場合は BAD として返します。

  6. Heap Usage: 指定期間内に各ノードの最小ヒープ使用率が70%以上の場合は BAD として返します。

点検項目のうち正常(GOOD)の結果はPolicy Sync項目のみ出力されます。その他の項目は異常(BAD)が検出された場合のみ出力します。

特定のノードへの接続中に例外が発生した場合、そのノードの診断結果を FAILURE として返します。

使用例

  1. クラスター全体のノード状態を点検(デフォルト: 直近1時間基準)

    sonar-health-check
    
  2. 直近6時間のデータを基準にGCおよびヒープ使用量を点検

    sonar-health-check duration=6h
    
  3. 異常(BAD)状態の項目のみをフィルタリングして取得

    sonar-health-check
    | search status == "BAD"
    | sort node, type
    
  4. 診断項目別の異常ノード数を集計

    sonar-health-check
    | search status == "BAD"
    | stats count by type
    

互換性

sonar-health-check コマンドは4.0.2511.0バージョンから利用可能です。