splunk 기본 구성 요소에 대한 개념
1. splunk란
splunk는 다양한 시스템, 장비, 애플리케이션에서 생성되는 데이터를 수집하고 분석하는 데이터 분석 플랫폼입니다. IT 인프라나 보안쪽에서 주로 많이 사용 되고 있습니다.
splunk를 잘 사용하기 위해서는 크게 두가지 관점으로 습득하는게 좋습니다.
1. splunk를 각자의 환경과 쓰임에 맞게 구성하고, 운영 상태를 관리하는 시스템적 관점
2. SPL(Search Processing Language)이라는 구문을 이용해서 데이터를 가공하고 분석하는 관점
이 글에서는 splunk를 설치하거나 본격적으로 사용하기 전에 알아야 할 기본적인 구조와 개념에 대한 내용 다뤄 보겠습니다.
2. 기본 구성 요소
데이터를 분석하고 활용하기 위해서는 수집, 저장, 분석, 표현 및 활용의 과정이 이루어집니다.
splunk는 데이터 분석 플랫폼 중에서도 빅데이터 분석 플랫폼이기 때문에 각 과정들의 성능을 극대화 할 필요가 있습니다. 그래서 splunk는 기능 별로 구성을 나누어 사용할 수 있게 만들었습니다. 기본적인 구성요소는 sh(search head), idx(indexer), fwd(forwarder)입니다.
1. Search Head
데이터 분석, 표현, 활용하는 과정이 이루어 지는 구성요소입니다. 수집된 데이터를 불러와 가공하고, 시각화하고, 알람을 울리게 하는 등 데이터를 이용하는 부분입니다.
2. Indexer
데이터를 저장하는 구성요소입니다. 하는 일은 간단합니다. 수집된 데이터를 저장하고, sh에서 검색 요청이 오면 데이터를 보내주는 역할을 합니다. 간단한 일을 하지만 데이터 분석 플랫폼인 만큼 데이터 자체가 굉장히 중요하기 때문에 장애가 발생하면 가장 치명적인 구성요소입니다.
3. Forwarder
데이터를 전달을 하는 구성요소입니다. 어디로? 데이터를 저장하는 indexer로 전달합니다. 시스템, 장비, 애플리케이션 등 수집하려는 대상들은 fwd로 데이터를 보내게 되고 이 데이터들을 받아서 idx에 전달하게 됩니다.
이 세가지 구성요소로 수집(fwd) -> 저장(idx) -> 분석 및 표현과 활용(sh)을 구현합니다.
3. 구성 예시
여러분은 splunk 활용 정도에 맞게 각 구성요소를 잘 활용하면 됩니다.
예를 들어
1. 소규모 사용자들이 있고 데이터 수집양도 많지 않다.
sh / idx / fwd
2. 소규모 사용자들이 있지만 데이터 수집양이 많다. 장애시에 데이터 유실이 발생하면 안된다.
sh – idx3 – fwd
3. 사용자들이 많고 데이터 수집양도 많다.
sh3 – idx3 – fwd2

여기서 헷갈리는 부분이 생깁니다. 1번 구성은 하나의 splunk만 있는데 모든 기능을 다 수행합니다.
splunk는 하나 뿐입니다. 각각의 구성별로 제품이 따로 따로 있는게 아닙니다. 하나의 instance에 모든 기능이 있고 그 기능들 중 저장 기능만 사용할게! 하면 idx가 되는거고, 전달 기능만 사용할게! 하면 fwd가 되는 겁니다. 여러 구성 요소들이 있고 각자의 활용에 맞춰서 splunk를 원하는 방법으로 사용하면 됩니다.
4. 결론
이 구성요소에 대한 개념이 익숙해지면 사용하려는 필요에 맞춰 구성할 수 있고, 문제가 생겼을 때 빠른 원인 파악과 해결을 할 수 있습니다. 국내에서는 보안 장비인 siem으로 많이 사용되고 최근에는 soar를 구현하는 도구로 점점 나아가고 있습니다. 다음에는 splunk 설치와 간단한 데이터 검색을 하는 내용을 다뤄보겠습니다.
splunk는 doc이 잘 만들어져 있어 위 내용을 자세히 확인 하실 수 있습니다.
splunk document