Index
Index란, 데이터를 종류별로 구분해서 관리할 수 있도록하는 하나의 태그 기능이라고 보면 됨.
Splunk의 모든 데이터는 Index가 설정되고, 유저가 아무 설정도 하지 않았을 때에는 default 설정(main index)에 저장.
내부 구조는 아래와 같이 bucket(ex: Hot bucket) 단위로 데이터를 구분해서 관리한다.
※ Tip: Splunk 용어로 하나의 데이터(로그)를 Event라고 부른다.
Search
- Host
호스트! - Source
소스의 파일 또는 스프림명칭! 어디로부터 오는 이벤트인지 특정할 수 있는 개념.
doc -> The source is the name of the file, stream, or other input from which a particular event originates. - Source type
어디에서 발생한 로그인지를 나타낸다. 예를 들어, tomcat에서부터 발생한 로그라면, splunk가 source type을 인식하고, tomcat에 맞는 필드를 자동으로 생성한다.
이미 등록되어 있는 Source type들이 있어서 편하게 사용할 수 있다.
doc -> The sourcetype determines how Splunk software processes the incoming data stream into individual events according to the nature of the data.
Transforming commands
: 쿼리한 데이터를 테이블 또는 그래프화 하는 커맨드를 Transforming commands라고 부름.
Boolean operation
- NOT
hello NOT world # hello world (x) # hello (o)
- OR
hello OR world # hello world
- AND
hello AND world # hello world
※ Boolean operation 에는 평가하는 순서가 정해져 있어서 위에 설정한 순서대로 쿼리의 평가가 이루어진다!
ex) a OR b NOT c AND d // b NOT c -> OR a -> AND d
But, `( )` 를 사용해서 우선순위를 바꿀 수 있다. `( )` 안 에 있는 쿼리부터 평가가 이루어짐!
Splunk Search Language
기본 구조
Search Command | command/function | command/function | ...
Commands
field command
이벤트에서 특정 필드만 추출한다.
index=main | field log # log 만 출력
index=main | field - log # log 제거
table command
field name으로 구분된 테이블을 만들어준다.
index=main | table _time, log # time과 log로 이루어진 테이블 생성
rename command
field name을 다시 명명한다. 너무 당연한 얘기인가..
index=main | rename log as result # log 필드를 result로 변경
dedup command
중복된 이벤트를 제거한다.
index=main | dedup name | table name log # 중복된 name 필드 제거
top command
가장 많은 이벤트순으로 정렬
index=main | top name # 가장 많이 등장한 이름과 등장 횟수가 출력
rare command
Top command와 반대! 가장 적은 이벤트 순으로 보여준다.
stats command
각 이벤트 별 이벤트 수의 통계치를 추출한다.
자주 쓰이는 stats functions are..:
- count
- dc (distinct count)
- sum
- avg (average)
- min
- max
- list
- values
참고: