EventGen | Config 기본 개념 & Stanza
본문 바로가기

Splunk/Splunk Dev

EventGen | Config 기본 개념 & Stanza

728x90
반응형

1. Eventgen 설정 파일 기본 구조

Eventgen의 설정 파일(eventgen.conf)은 Splunk 및 Python 기반의 INI 구성 방식을 따른다.
stanza는 특정 sample 파일에 대한 설정 단위를 의미하며, 이 stanza 내부에 파라미터(key=value)들이 정의된다.

[sample_name]
count = 100
mode = sample
💬 실사용 해설:
이 구조는 Splunk의 props.conf & transforms.conf 구조와 유사하게 보이지만,
props가 ingestion 단계의 parsing을 책임지는 반면 Eventgen의 stanza는 synthetic 생성 규칙을 정의한다.

1.1 Stanza → Sample 매핑

각 stanza는 samples/ 디렉토리에 존재하는 sample 파일과 매핑된다.
Eventgen은 stanza의 이름을 기준으로 sample 파일을 탐색한다.

탐색 순서는 다음과 같다:

  1. 현재 실행 디렉토리
  2. 기본 samples/ 디렉토리
  3. 사용자 정의 sampleDir
  4. 일치하는 generator plugin
💬 중요:
동일 stanza 이름이 여러 sample을 match하는 경우 모든 파일이 처리 대상이 된다.
이로 인해 “스키마 기반 Synthetic Generation”이 가능해진다.

1.2 예약된 Stanza 이름

Stanza Name 의미
[default] 특정 stanza가 없는 기본 설정을 의미 (사용자 생성 금지)
[global] 모든 stanza에 설정 적용
💬 실사용 해설:
Splunk에서 [default] stanza는 index-time 설정 기본값과 유사한 의미이며,
[global]은 TA 수준에서 공통 변수 설정과 유사한 역할로 이해하면 된다.

1.3 PCRE 기반 Stanza

Eventgen은 stanza 이름을 PCRE(정규표현식)로 지정할 수 있으며,
이 경우 sample 파일명이 패턴 매칭될 때 설정이 적용된다.

[firewall.*]
count = 1000
💬 SIEM 활용 팁:
이 기능은 장비군 단위 시뮬레이션에서 매우 강력함.
예시:
firewall.* → WAF + IPS + FW logs 전체에 동일 rate 적용

1.4 번들링 구조

일반적으로 Eventgen 설정과 sample 파일은 패키지 형태로 묶여 배포된다.

TA-example/
  default/eventgen.conf
  samples/firewall.sample
  samples/ids.sample
  samples/waf.sample
💬 Splunk Add-on 대응 설명:
이 구조는 사실상 Splunk TA(Add-on) 구조와 동일하다.
이 덕분에 Eventgen을 “Synthetic Device Add-on”처럼 배포할 수 있음.

1.5 Stanza vs Sample vs Output 관계 요약

구성 요소 역할
sample raw 로그 템플릿 정의
eventgen.conf 생성 규칙/속도/전송 방식 제어
outputMode 로그를 어디로 보낼지 결정
💬 ES 실사용 기준:
Splunk ES에서 Incident Timeline을 재현하려면 다음 조합이 유리함:
sample + replaytimestamp + HEC(splunkstream)
728x90
반응형