[Splunk] 데이터 입력 완벽 가이드
본문 바로가기

Splunk

[Splunk] 데이터 입력 완벽 가이드

728x90
반응형

데이터 입력 개요

Splunk에서 데이터 입력을 제어하는 핵심은 inputs.conf 

  • 설정 방법: Add-on, Splunk Web, CLI, 직접 inputs.conf 수정
  • 분산 환경: 보통 Add-on 형태로 배포 필요
  • 입력 유형 구분
    • 에이전트 기반 → Forwarder 설치 필요
    • 에이전트리스 → Forwarder 선택 사항

💡 Professional Services(PS) 현장에서는 안정성과 일관성을 위해 직접 inputs.conf 설정하는 방식을 권장


[monitor://…] 파일 모니터 입력

가장 많이 사용되는 입력 방식

  • 특정 파일 또는 디렉터리를 지속적으로 감시
  • 새 이벤트가 생기면 자동으로 수집
  • 로그가 있는 서버에는 Forwarder 설치 필수

예시 설정 (inputs.conf):

 
[monitor:///var/log/syslog]
host = myHost
source = syslog
sourcetype = syslog
index = os_logs
whitelist = .*\.log$
blacklist = debug\.log$
crcSalt = <string>
initCrcLength = 512
  • whitelist / blacklist → 특정 파일 필터링
  • crcSalt / initCrcLength → 파일 변경 감지 로직 튜닝

[batch://…] 일회성 배치 입력

배치 입력(batch input)은 특정 파일을 읽고 → 인덱싱 완료 후 → 파일을 삭제합니다.

  • 과거 아카이브 로그(정적 파일)에 적합
  • 실시간 쓰여지는 파일에는 부적합
  • Forwarder가 설치된 호스트에서 동작

예시 설정:

[batch:///opt/archive/*.log]
followSymlink = false
move_policy = sinkhole
host = archiveHost
index = archive
 

[script://…] 스크립트 실행 입력

Splunk이 주기적으로 스크립트를 실행하고, 그 출력(STDOUT/STDERR)을 이벤트로 수집

  • 지원 스크립트: PowerShell, Python, Windows 배치 파일 등
  • 스크립트 경로: $SPLUNK_HOME/etc/apps/<appName>/bin/
  • interval 값으로 실행 주기 지정 가능

예시 설정:

 
[script:///opt/splunk/etc/apps/myapp/bin/myscript.py]
interval = 300
sourcetype = custom_json
index = api_logs

모듈 입력 (Modular Inputs)

모듈 입력이란?

Splunk에서는 Add-on 형태로 커스텀 입력을 정의할 수 있습니다.
한 번 설치해두면 다른 입력과 동일하게 선택/구성이 가능합니다.

  • 확인 위치: Splunk Web → Settings → Data Inputs

활용 사례

  • vmstat / iostat 같은 시스템 명령 실행 결과 스트리밍
  • DB/웹 서비스/API 쿼리
  • 복잡한 데이터 전처리
  • 민감 정보 보안 처리
  • 특수 문자 처리

공통 모듈 입력 예시

  • Windows 전용
    • perfmon
    • WinEventLog
    • admon
  • 클라우드/범용
    • Twitter 모듈 입력: JSON 데이터를 실시간 스트리밍
  • Linux 전용
    • Amazon S3 모듈 입력: S3 스토리지에서 데이터 직접 인덱싱

 

728x90
반응형