Splunk에는 데이터 검색과 처리에 사용할 수 있는 SPL(Search Processing Language)이 존재한다. 그중에 가장 많이 사용되는 Streaming과 Transforming Command에 대해서 알아 보도록 하자.
아래와 같은 명령이 있다고 가정하자.
action=purchase | stats count by status | rename count as “events”
위 명령애서 action=purchase 는 Streaming Command이고, stats 와 rename 은 Transforming Command이다.
이렇게 명령어의 타입이 구분되는 이유는, 동작 환경과 조건이 다르기 때문에 시스템 사용 리소스등을 고려할 때 유용핟.
그리고 명령어를 보다 최적화해서 사용할 수 있는데 도움이 될 것이다.
먼저 Streaming 명령을 이해해 보자.
Streaming Command
Streaming Command는 우리가 흔히 사용하는 검색 명령어가 여기에 포함된다.
우리가 검색을 하면 각 인덱서는 검색을 각자 시작하고, 결과를 Search Head로 전달하게 된다. 이때 먼저 보여진 값이 결과에 보여지게 된다.
Splunk에서 검색을 하다보면, 진행바가 표시되면서 이벤트가 계속 추가되는것을 볼 수 있는데, Streaming Command이기 때문이다.
그렇다면 Streaming Command는 어떤 종류가 있을까? 대표적으로 search, lookup, where, eval, rename이 있다.
즉 실제 데이터를 조회하는 명령어로써 우리가 명령을 내리면, 아래 그림과 같이 각 인덱서에서 동작을 하게된다.
그리고 병렬로 실행될 수 있는데 이유는 인덱서마다 가지고 있는 인덱스에서 데이터를 검색하게 된다.
하지만 Streaming Command에는 Non-Streaming Command와 Streaming Command로 또 구분된다.
Streaming Command 기본적으로 데이터를 중앙으로 수
sort, sort, dedup, stats, top
그리고 검색된 결과를 Search Head로 보내게 되고 Search Head는 이를 Data Set으로 만들어 검색을 요청한 사용자에게 보여주는데, 만약 Transforming Command가 있다면, 이 Data Set의 후처리 작업을 거치게 된다.
Transforming Command
Transforming Command 는 Search Head로 생성된 Data Set의 후처리를 담당하는 명령이라고 할 수 있다.
이 명령은 Data set이 만들어지기를 기다리게 된다. 만역 Transforming Command가 SPL에 들어가 있다면, 모든 결과가 완료되었을 때 화면에 표시되게 된다.
모든 Data Set의 정렬한다거나 통계를 내는 등의 작업을 진행하게 된다.
Transforming Command 는 대표적으로 다음과 같은 명령이 있다.
chart, timechart, stats, top, rare, contingency
Ref
'Bigdata > Splunk' 카테고리의 다른 글
Splunk - splunklib 설치시 pycrypto 오류 해결 (0) | 2023.04.12 |
---|---|
Splunk - KV Store 데이터 저장 및 수정하기 (0) | 2023.04.11 |
Splunk - CustomCommand 개발 이해 (0) | 2022.05.23 |
Splunk - 검색 결과 공유 하기, GUI/Rest API 활용 (0) | 2022.05.01 |
Spunk - Linux/Ubuntu Universal Forwarder 설치/구성 (0) | 2022.04.11 |
댓글0