jyamethyst21 님의 블로그
생성형 AI를 활용한 AI 보안관제 및 통합로그분석(Splunk 명령어 정리) 본문
Splunk
머신 데이터(로그, 이벤트, 메트릭 등)를 수집, 인덱싱, 분석, 시각화하는 플랫폼으로 서버 로그, 네트워크 트래픽, 애플리케이션 로그 등 거의 모든 형태의 데이터를 실시간으로 검색하고 모니터링할 수 있음
핵심 기능
1) 다양한 소스(파일, 시스템로그, API, DB 등)에서 데이터를 자동으로 수집하고 빠르게 검색 가능한 형태로 인덱싱
2) 실시간 검색 SPL(Search Processing Language)을 사용해 수억 건의 이벤트 중 원하는 데이터를 빠르게 찾아낼 수 있음
3) 대시보드 & 시각화 검색 결과를 차트, 테이블, 지도, 게이지 등 다양한 형태로 시각화하고 대시보드로 구성할 수 있음
4) 알림 특정 조건이 충족되면 이메일, Slack, 웹훅 등으로 자동 알림을 보낼 수 있음
5) 보고서 검색 쿼리를 저장하고 스케줄링해서 정기 보고서를 자동 생성할 수 있음
6) 보안 모니터링|이상 징후 탐지, 위협 헌팅, 보안 이벤트 상관관계 분석 등 보안 운영에 널리 활용됨
주요 기능
데이터 수집 및 인덱싱
Splunk는 다양한 방식으로 데이터를 수집함
- 파일/디렉토리 모니터링 : 로그 파일이 업데이트될 때 자동으로 읽어들임
- Forwarder : Universal Forwarder를 서버에 설치해서 로그를 중앙 Splunk로 전송함, 에이전트 방식이라 원격 서버 로그 수집에 많이 씀
- Syslog : 네트워크 장비, 리눅스 서버 등에서 syslog 프로토콜로 바로 수신할 수 있음
- HTTP Event Collector(HEC) : REST API 방식으로 애플리케이션에서 직접 이벤트를 전송
- 스크립트 입력 : 커스텀 스크립트를 주기적으로 실행해서 그 출력값을 수집할 수 있음
DB 연동 (DB Connect)
Splunk DB Connect 앱을 설치하면 DB와 연동할 수 있음
- Oracle, MySQL, PostgreSQL, MSSQL, DB2 등 JDBC 지원 DB는 대부분 연결 가능함
- DB 테이블 데이터를 주기적으로 가져와 인덱싱하거나, 검색 시점에 실시간으로 쿼리를 날릴 수 있음
- SPL 안에서 dbquery 명령어로 SQL을 직접 실행할 수도 있음
- 예를 들어 로그에 있는 user_id를 DB의 사용자 테이블과 조인해서 이름을 같이 보여주는 식으로 활용함
외부 시스템 연동
REST API 연동 Splunk는 자체적으로 REST API를 완전히 지원함, 외부 시스템에서 Splunk 검색을 실행하거나 결과를 가져오는 게 가능, 반대로 Splunk에서 외부 API를 호출하는 것도 curl 스크립트나 커스텀 명령어로 구현할 수 있음
- ITSI(IT Service Intelligence) : IT 서비스 상태를 KPI 기반으로 모니터링하는 프리미엄 앱
- Enterprise Security(ES) : SIEM 특화 앱으로 보안 이벤트 분석, 위협 인텔리전스 연동, 인시던트 관리 등을 지원함
티켓 시스템 연동 Splunk 알림이 발생하면 Jira, ServiceNow, PagerDuty 등으로 자동으로 티켓을 생성하도록 연동할 수 있음
Slack / 이메일 알림 알림 조건이 충족되면 Slack 채널이나 이메일로 자동 발송됨
index=app | dbquery "SELECT name FROM users WHERE id='$user_id$'"
대시보드 & 시각화
- 드래그앤드롭으로 패널을 배치하고, 검색 쿼리를 연결해서 실시간 대시보드를 만들 수 있음
- 차트, 테이블, 지도, 게이지, 싱글밸류 등 다양한 시각화 타입을 지원함
- Dashboard Studio (신버전) : XML 대신 JSON 기반으로 더 유연한 레이아웃과 커스텀 디자인이 가능함
- 토큰(Token) 기능으로 드롭다운, 입력 폼 등을 만들어 동적으로 필터링되는 대시보드 구성이 가능함
알림 & 스케줄링
- 검색 쿼리를 저장하고 주기적으로 실행해서 조건에 맞으면 알림을 보냄
- 실시간 알림 : 이벤트 발생 즉시 트리거
- 스케줄 알림 : 매 5분, 매 시간, 매일 등 원하는 주기로 실행
- 알림 액션으로 이메일, Slack, 웹훅, 스크립트 실행, 티켓 생성 등을 설정할 수 있
주요 SPL 명령어
검색 & 필터링
| search | 기본 키워드 검색 | search error |
| index= | 특정 인덱스 지정 | index=main sourcetype=syslog |
| host= | 특정 호스트 필터링 | host=webserver01 |
| source= | 특정 소스 파일 지정 | source=/var/log/auth.log |
| where | 조건식으로 필터링 | where status > 400 |
데이터 변환
| stats | 통계 계산 (count, avg, sum 등) | stats count by host |
| eval | 새 필드 생성 또는 계산 | eval size_mb = size / 1024 / 1024 |
| rex | 정규식으로 필드 추출 | rex field=_raw "user=(?<username>\w+)" |
| rename | 필드 이름 변경 | rename src_ip AS 출발지IP |
| fields | 표시할 필드 지정 또는 제외 | fields host, status, uri |
| table | 결과를 테이블 형식으로 출력 | table _time, host, status |
집계 & 분석
| timechart | 시간대별 통계 시각화 | timechart count by status |
| chart | 다차원 통계 차트 | chart avg(response_time) by host |
| top | 가장 많이 등장하는 값 상위 출력 | top limit=10 uri |
| rare | 가장 적게 등장하는 값 출력 | rare src_ip |
| dedup | 중복 이벤트 제거 | dedup session_id |
| sort | 결과 정렬 | sort -count |
시간 관련
| earliest= / latest= | 검색 시간 범위 지정 | earliest=-1h latest=now |
| bucket | 시간을 구간으로 묶음 | bucket _time span=5m |
| now() | 현재 시각 반환 | eval cur_time = now() |
조인 & 서브서치
| join | 두 검색 결과를 특정 필드로 합침 | join user [search index=auth] |
| append | 두 검색 결과를 아래로 이어붙임 | append [search index=backup] |
| lookup | 외부 CSV 또는 KV Store와 데이터 매핑 | lookup user_info.csv user_id |
기타 유용한 명령어
| transaction | 관련 이벤트를 하나의 트랜잭션으로 그룹화 | transaction session_id |
| iplocation | IP 주소에서 지리 정보 추출 | iplocation src_ip |
| inputlookup | 룩업 파일 내용을 직접 검색 | inputlookup user_info.csv |
| outputlookup | 검색 결과를 룩업 파일로 저장 | outputlookup result.csv |
| makeresults | 테스트용 더미 이벤트 생성 | makeresults count=5 |
쿼리 패턴
에러 로그 상위 10개 URI 뽑기
index=web sourcetype=access_log status>=400
| stats count by uri
| sort -count
| head 10
시간대별 에러 추이 보기
index=web error
| timechart span=1h count
특정 사용자의 로그인 실패 탐지
index=auth action=login status=fail
| stats count by user
| where count > 5
'보안 & IT 지식 🌺' 카테고리의 다른 글
| 개인정보 보호법 해석 (사례 중심) (1) | 2026.04.13 |
|---|---|
| 개인정보 영향평가 수행안내서 part2(영향평가 수행절차) (1) | 2026.04.11 |
| 생성형AI를 활용한 AI 보안관제 및 통합로그분석 (0) | 2026.04.08 |
| 생성형AI를 활용한 AI 보안관제 및 통합로그분석 (0) | 2026.04.07 |
| 생성형AI를 활용한 AI 보안관제 및 통합로그분석 (0) | 2026.04.06 |
