sonar-health-check
클러스터 전체 노드에 대해 장애 상태 진단을 실시합니다. 노드 생존 여부부터 GC 이상, 힙 사용량까지 6가지 상태 항목을 점검하여 이상 징후가 감지된 노드의 진단 결과를 반환합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 미지원 |
문법
옵션
duration=INT{mon|w|d|h|m|s}- 로그 기반 진단(GC, 힙)에서 검색할 최근 데이터의 기간입니다 (기본값:
1h).
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
node_id | 32비트 정수 | 노드 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
| 키 | 설명 |
|---|---|
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 버전부터 사용 가능합니다.