실험실

다운로드 503
업데이트 2026. 9. 3.

sonar-replay-batch-rules

과거 시간 범위에 대해 배치 룰을 리플레이합니다. 지정한 범위에서 배치 룰의 cron 실행 시점을 모두 추출합니다. 기본 동작은 실행 계획만 출력하는 dry run이며, run=t 옵션을 지정하면 각 실행 시점 기준으로 탐지 쿼리를 실제로 실행하고 이벤트와 티켓을 발생시킵니다.

제약: 관리자 권한이 필요하며 스탠바이 노드에서는 run=t가 거부됩니다. 이벤트는 각 실행 시점의 과거 시각으로 기록되지만, 티켓의 생성/변경 일시는 현재 시각으로 남습니다. 축약 구간은 리플레이 범위 안에서만 시뮬레이션되며 운영 중인 축약 상태와는 독립적입니다. 시그니처/ETIR 위험도 스코어링은 적용되지 않습니다. 룰 쿼리의 now(), ago(), duration= 표현식은 각 실행 시점 기준 상수로 치환됩니다.

sonar-replay-batch-rules [from=값] [to=값] [duration=값] [guids=값] [run=값] [limit=값]
from=값
선택. 리플레이 범위 시작 시각 (yyyyMMddHHmmss). from 또는 duration을 지정하세요.
to=값
선택. 리플레이 범위 종료 시각 (yyyyMMddHHmmss, 기본값: 현재). 미래 시각은 현재로 절사됩니다. 범위는 최대 366일로 제한됩니다.
duration=값
선택. 리플레이 범위 (현재 기준, 예: 7d). from 또는 duration을 지정하세요.
guids=값
선택. 쉼표로 구분한 배치 룰 GUID 목록 (기본값: 활성화된 전체 배치 룰)
run=값
선택. t로 지정하면 탐지 쿼리를 실제로 실행하고 이벤트와 티켓을 발생시킵니다 (기본값: f, dry run). 이벤트는 각 실행 시점의 과거 시각으로 발생하고, 축약 구간도 실행 시점 기준으로 시뮬레이션됩니다. 리플레이로 생성되는 티켓은 실제 티켓이므로 주의하세요.
limit=값
선택. (룰, 실행 시점) 조합의 최대 개수 (기본값: 10000)

출력 필드

필드타입이름설명
rule_id32비트 정수룰 ID예: 1
rule_guid문자열룰 GUID예: 550e8400-e29b-41d4-a716-446655440000
rule_name문자열룰 이름예: 로그인 실패 탐지
enabled불리언활성화 여부예: true
schedule문자열실행 주기예: */5 * * * *
fire_time날짜실행 시점예: 2026-09-01 00:05:00
query_from날짜쿼리 from 상수예: 2026-09-01 00:00:00, 룰에 duration 미설정 시 null
query_to날짜쿼리 to 상수예: 2026-09-01 00:05:00
duration32비트 정수룰 조회 구간 (초)예: 300
datetrunc32비트 정수룰 시각 절사 단위 (초)예: 60
dataset_guid문자열데이터셋 GUID예: 550e8400-e29b-41d4-a716-446655440000, 쿼리 직접 입력 룰이면 null
query문자열리플레이 쿼리실행될 최종 쿼리 (sort 절 포함). now(), ago() 호출은 상수 참조로 치환됩니다.
constants주입 상수예: {NOW=2026-09-01 00:05:00}. 리플레이 시 쿼리 컨텍스트에 주입되는 상수입니다.
rewrite_warnings리스트치환 경고예: [ago() with non-literal argument, not replaced]
suppress_key문자열억제 키예: account
status문자열리플레이 상태예: success. success, error, cancelled 중 하나. run=t일 때만 출력됩니다.
result_count64비트 정수쿼리 결과 건수예: 10. run=t일 때만 출력됩니다.
alert_count32비트 정수경보 건수예: 3. 억제 키 단위로 병합된 경보 개수. run=t일 때만 출력됩니다.
ticket_count32비트 정수티켓 건수예: 3. 대응 처리된 경보에 연결된 고유 티켓 개수. 룰의 티켓 발행 조건에 따라 티켓이 발행되지 않을 수 있고, 억제 병합 시 신규 생성 대신 기존 티켓이 갱신됩니다. run=t일 때만 출력됩니다.
raw_count32비트 정수근거 로그 건수예: 10. 근거 로그 테이블에 기록된 행 수. run=t일 때만 출력됩니다.
suppressed_count32비트 정수억제 건수예: 2. 이벤트 억제로 건너뛴 행 수. run=t일 때만 출력됩니다.
elapsed_ms64비트 정수소요 시간 (밀리초)예: 1234. run=t일 때만 출력됩니다.
ticket_guids리스트티켓 GUID 목록예: [550e8400-e29b-41d4-a716-446655440000]. 대응 처리된 경보에 연결된 고유 티켓 GUID 목록. run=t일 때만 출력됩니다.
_error문자열오류 메시지예: dataset not found. 실패한 항목에만 출력됩니다.