Dev/Splunk

[Splunk] Splunk 기능 및 용어 설명

kyeoneee 2017. 10. 31. 00:44
반응형

Splunk?


 다양한 머신 데이터를 검색, 모니터링 및 경고, 보고 및 분석, 사용자 대시보드 생성이 가능하도록 하는 플랫폼이다.

 Splunk는 스키마를 사전에 정의하여 사용하지 않고 즉시 생성할 수 있고 RDMS가 불필요하고 필터링이 불필요 하다. Splunk 서버의 local 데이터 뿐만 아니라 Iot 기기, 외부 서버 등 원격 소스의 local 데이터 수집이 가능하도록 유니버셜 포워딩 기능을 제공하는 것이 특징이다.

 기존의 RDBMS와의 구조적인 차이점은 Schema가 요구되지 않기 때문에 정의된 구조에 맞도록 데이터를 입력하거나 처음 정의된 구조와 다를 경우 테이블의 구조 자체를 변경 해야 하는 일이 없고 모든 종류의 데이터가 수용이 가능하고 지속적인 변경 또한 수용이 가능하다. 검색을 할 때에도 시스템 디자인의 이해를 기반으로 한 query가 아니라 필요한 상황에 따라 유동적으로 검색이 가능하다.

 Map Reduce를 기반으로 Architecture가 구성되어 있어 필요에 따라 데이터를 저장하는 여러 index서버와 search head 서버를 분리하여 Search Head 서버에서 분산된 index 서버들의 데이터에 접근하여 결과를 도출하는 방법으로 사용할 수 있다.




Splunk의 기능 및 용어


search header

검색을 요청하고 검색 결과 화면을 통합하여 사용자에게 제공

          • Search Head : 여러 인덱서에 검색을 명령하고 검색의 결과를 사용자에게 제공
          • Splunk Daemon을 통해 검색을 수행
          • 하나 이상의 검색 헤더를 통해 분산 검색이 가능
          • CPU, Memory Resource를 상대적으로 많이 사용


indexer

 검색을 실제적으로 수행하는 구성 요소로 인덱스를 생성, 관리, 데이터 처리를 함. 원시 데이터와 인덱싱된 데이터를 저장 및 검색

          • Index : 데이터 저장소
          • Indexing : raw dataSplunk에서 검색을 하기 위한 이벤트로 변환하여 저장, 기록하는 작업
          • Parsing : 이벤트들을 각각의 필드로 분류하는 작업(타임 스템프, 각가의 칼럼 분류)
          • Field : 이벤트를 Parsing한 결과에서 Value들의 Key          

 Indexer에서 데이터를 저장할 때 데이터를 효율적으로 검색하기 편하도록 Hot, Warm, Cold, Thawed Bucket들로 나누어 저장을 해 준다. 기본적으로 데이터가 저장 될 때는 Warm, Cold, Frozen, Thawed 단계에 최신 데이터에서 오래된 데이터 순으로 저장이 된다. 비용적인 효율을 위해서 하드웨어를 자주 쓰이는 Hot, Warm 단계는 고속의 디스크를 배치하고 Cold, Frozen, Thawed와 같이 자주 안 쓰이는 단계는 상대적으로 상대적으로 느린 디스크를 사용한다.

 

deployment

로컬 및 분산된 인스턴스를 관리하는 기능으로 Deployment 서버를 따로 분리하여 운영하기도 함


forwarder

            • Universal Forwarder

  데이터를 전송해 줄 agent에 설치되는 forwarder로 데이터를 전송하는 데 필요한 구성 요소들만 포함이 되어 있다단순히 데이터를 전송해 주는 기능을 제공하기 때문에 데이터 필터링 및 수정은 불가능하다. 기능이 단순하기 때문에 CPU에 대한 부하와 메모리 사용과 디스크 공간 사용이 적다.


            • Load Balancing Forwarder

 Universal Forwarder들과 Indexer 사이에서 데이터를 수집하고, 분산하여 저장하는 역할을 한다. Universal Forwarder들에게 전송된 데이터들을 각각의 Indexer들의 사용량을 파악하여 균등하게 데이터를 분산하여 저장하는 기능을 제공한다.

 

 Splunk Metadata

 Splunk에서 raw 데이터들을 indexing을 하면 기본적으로 생성되는 필드들이 있다. 이러한 필드들을 Metadata라고 한다.

내부 필드

 내부 필드들은 필드명이 _로 시작

_raw : 원본 파일의 정보를 포함하는 필드

_time : timestamp와 같은 개념으로 이벤트의 시간 정보를 포함하는 필드

_index : 이벤트의 index 정보를 포함하는 필드

_key : 이벤트의 key 정보를 포함하는 필드

-  주요 Metadata

 데이터를 인덱싱하면 모든 이벤트에 대하여 공통적으로 해당되는 필드 유형

host : 네트워크 장치의 호스트 이름/IP 주소가 표시되는 필드

index : 데이터가 인덱싱 된 인덱스(데이터 저장소)의 이름이 표시된 필드, 데이터를 저장할 때 인덱스를 지정해 주지 않으면 기본으로 생성되는 main인덱스에 데이터가 인덱싱 됨

linecount : 이벤트 데이터의 라인 수가 표시된 필드, 라인 수에 따라 이벤트를 분류하여 검색하는데 사용할 수 있음

source : 인덱싱 된 이벤트들의 raw data의 출처(local 파일, 외부 api로 받아오는 데이터 등)에 대한 정보, 데이터의 생성에 따른 분류를 위한 필터링이나 데이터를 처리하기 위한 명령에 인수로 사용할 수 있음

sourcetype : 이벤트의 데이터 입력 형식이 지정된 필드(csv, json 등 데이터의 형식)

timestamp : 이벤트의 시간에 대한 정보를 포함하는 필드

- 시간 필드

 타임스탬프에 더 세부적으로 추가된 정보 필드



반응형

'Dev > Splunk' 카테고리의 다른 글

[Splunk] Splunk 서비스 페이지 화면 소개  (0) 2017.11.10
[Splunk] 데이터 입력  (0) 2017.11.09
[Splunk] Index 생성  (0) 2017.11.01
[Splunk] 앱 등록  (0) 2017.11.01
[Splunk] Splunk 설치 및 실행  (0) 2017.10.31