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_id32비트 정수노드 ID
node문자열노드 식별자 (NID)
node_type문자열노드 유형 (CONTROL, DATA, FORWARDER)
type문자열진단 항목 유형 (Node Aliveness, Policy Sync, Forwarder Swap, Forwarder Delay, GC, Heap Usage)
status문자열진단 결과 (BAD: 이상 감지, GOOD: 정상, FAILURE: 점검 실패)
details진단 항목별 세부 정보 (아래 설명 참조)

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 이벤트 유형 (OOM, ALLOC_STALL, FULL_GC, TO_SPACE_EXHAUSTED)
durationGC 소요 시간 밀리초 (ALLOC_STALL, FULL_GC만 포함)
timeGC 발생 시각 (ALLOC_STALL, FULL_GC, TO_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 버전부터 사용 가능합니다.