Splunk SPL(Search Processing Language)
검색 방식 – Streaming / Transforming
- Streaming:
index
에 부하를 줌,search eval streamstats
등 - Transforming:
Search Header
에 부하를 줌,chart
,sort
,stats
등- SPL 문을
Streaming(1)-Transforming-Streaming(2)
로 작성하는 경우: index 진행 후 S/H 에서 진행되는 검색은 다시 index 로 되돌아가지 않고 S/H에서 진행됨. (부하 많음) - 그러므로, Streaming을 검색어 초기에 모두 배치하는 것이 좋음.
- SPL 문을
검색 팁 – fields 커맨드
- 불필요한 필드 제거:
fields
명령어 활용| fields <원하는 필드명>
: 원하는 필드명만 남기기| fields -<삭제할 필드명>
: 필요없는 필드명 삭제하기
검색 시 주의사항
OR
,AND
는 대문자로 작성 (소문자로 작성 시 키워드로 인식)- 스페이스는
AND
로 판단함. - Wildcard * (와일드카드)는 비효율적이니 사용 자제.
검색 모드
- 고속 모드:
stats
쓰면 결과만 알려줌. 검색에 사용된 이벤트는 보여주지 않음. - 스마트 모드: 고속 모드와 같으나,
stats
명령을 쓰지 않으면 이벤트를 보여줌.
IP 검색 시 유의 사항
125.17.14.100
만 입력 시:- Base lispy:
[ AND 100 125 14 17 ]
– 4번 서치를 함
- Base lispy:
TERM(125.17.14.100)
입력 시:- Base lispy:
[ AND 125.17.14.100 ]
– 한 번만 서치
- Base lispy:
- Why?
- Minor Breaker(
.
등)로 먼저 찾고, 그 이후 Major Breaker(Tab, “”따옴표 등)로 찾기 때문. TERM("Willy Wonka")
는 검색 결과가 없음. (공백은 Major Breaker라서 불가)
- Minor Breaker(
예시
27.96.128.0
vs.TERM(27.96.128.0)
:AND 100 125 14 17
vs.AND 125.17.14.100
status=200
vs.TERM(status=200)
:AND [ OR 200 status::200 ]
vs.AND status=200
(결과 없음)
MCB-6
vs.TERM(MCB-6)
vs.TERM(product_id=MCB-6)
:AND 6 mcb
vs.AND mcb-6
(결과 없음) vs.AND product_id=mcb-6
-
가 메이저 브레이커라서 불가