[ Splunk ] Indexing Overview
본문 바로가기

카테고리 없음

[ Splunk ] Indexing Overview

728x90
반응형

1. 인덱스(Index)란?

  • Splunk에서 수집된 데이터가 저장되는 공간.
  • 단순 저장소가 아니라, 검색에 최적화된 구조로 관리됨.
  • 하나의 인덱스는 여러 개의 버킷(bucket) 으로 구성된다.

👉 비유: 인덱스는 도서관, rawdata는 책 내용, tsidx는 찾아보기 색인


2. Rawdata와 tsidx

  • rawdata: 실제 로그 원문이 압축 저장됨 (journal.gz).
  • tsidx 파일: rawdata 안의 이벤트 위치와 키워드를 기록해둔 검색 색인.
    • 키워드, 시간, 소스, 호스트 등의 정보를 포함.
    • 덕분에 Splunk는 전체 파일을 뒤지지 않고 필요한 위치만 빠르게 찾아감.

👉 검색 성능의 핵심은 rawdata보다 tsidx에 있다.


3. 버킷(Bucket) 구조

Splunk는 인덱스를 여러 시점별 “버킷”으로 나눠 관리한다.

  • hot bucket: 새로운 이벤트가 계속 기록되는 상태
  • warm bucket: 더 이상 쓰이지 않고 검색만 되는 상태
  • cold bucket: 오래된 데이터. 저장 경로를 따로 둘 수 있음
  • frozen bucket: 보존 기간이 지난 데이터. 삭제되거나 아카이브로 옮겨짐
  • thawed bucket: 필요할 때 다시 불러온 frozen 데이터

👉 버킷은 결국 폴더이며, 그 안에 rawdata, tsidx, bloomfilter, metadata 파일 등이 들어 있음.


4. 중요한 파일들

  • rawdata (journal.gz) → 원본 이벤트
  • tsidx → 검색용 색인
  • bloomfilter → 검색 대상에서 불필요한 버킷을 빠르게 제외 (최적화) (80~90%가량)
  • metadata (.data) → Source, Host, Sourcetype 요약 정보 (| metadata 검색 시 활용)

👉 대부분의 검색은 tsidx와 bloomfilter를 활용해 “빠르게 후보 버킷을 줄인 뒤” rawdata에서 이벤트를 꺼내온다.


5. 경로 설정 (indexes.conf)

각 인덱스는 indexes.conf에서 물리적 저장 위치를 지정한다.

  • homePath = hot/warm 버킷
  • coldPath = cold 버킷
  • thawedPath = thawed 버킷
  • summaryHomePath = 리포트 가속화 결과 (CSV)
  • tstatsHomePath = 데이터 모델 가속화 결과 (TSIDX)

👉 실제 운영에서는 인덱스별로 저장소를 따로 분리해 성능과 보관 정책을 최적화한다.


6. 데이터 보존(Retention)

  • 인덱스의 데이터는 일정 기간이 지나면 cold → frozen → 삭제/아카이브 순으로 이동.
  • 보존 기간은 indexes.conf에서 frozenTimePeriodInSecs 값으로 관리.
  • frozen 데이터를 외부 스토리지에 아카이브했다가 필요 시 thawed 폴더로 불러올 수 있다.

7. 핵심 요약

  • Splunk 인덱스 = rawdata + tsidx + metadata 등으로 구성된 검색 최적화 저장소
  • tsidx는 rawdata의 색인 역할을 하여 검색 속도를 보장
  • 데이터는 버킷 구조로 관리되며, 나이와 보존 정책에 따라 hot → warm → cold → frozen으로 이동
  • indexes.conf를 통해 저장 경로와 보존 정책을 세부적으로 제어 가능
더보기

.

📘Rawdata와 tsidx의 관계

  • rawdata: 실제 이벤트가 저장된 원본 데이터 (압축된 로그 텍스트). 예: journal.gz
  • tsidx 파일: rawdata를 직접 읽지 않고도, 빠르게 검색할 수 있도록 만들어둔 “색인(index)” 파일.

        즉, rawdata는 책의 본문, tsidx는 책의 색인(찾아보기)


동작 방식

  • Splunk는 이벤트가 들어오면 rawdata(원본 로그)를 그대로 저장
  • 동시에, 검색을 빠르게 하기 위해 rawdata에서 키워드, 타임스탬프, 위치 정보(offset) 등을 뽑아서 tsidx 파일에 기록
  • 나중에 사용자가 error AND host=web01 같은 검색을 하면,
    Splunk는 rawdata 전체를 스캔하지 않고 tsidx 파일에서 “error”와 “host=web01”이 들어 있는 위치만 찾아낸다.
  • 그 위치 정보를 통해 필요한 rawdata 부분만 읽어 결과를 반환

“가리킨다”의 의미

  • tsidx는 rawdata 안에 이벤트가 저장된 위치를 오프셋(offset) 형태로 저장
  • 다시 말해, rawdata에 있는 특정 이벤트가 “파일의 몇 번째 바이트부터 몇 번째까지”라는 주소 정보를 들고 있는 것
  • Splunk 검색 엔진은 tsidx를 먼저 뒤져서 어느 위치를 봐야 하는지 알아낸 후, rawdata에서 해당 부분만 불러온다.

✅ 장점

  • rawdata가 수십 GB 이상이라도, tsidx 덕분에 전체를 매번 읽지 않고 필요한 부분만 접근
    검색 속도가 획기적으로 빨라짐
  • 또 tsidx에는 타임스탬프별로 이벤트가 정리되어 있어서 시간 기반 검색(earliest=-24h)도 빠름

📌 정리

“rawdata를 가리키는 인덱스 파일(tsidx)” = rawdata 안의 이벤트가 어디 있는지 주소를 기록해둔 검색용 색인 파일
즉, 본문(rawdata)을 일일이 읽지 않고도 필요한 부분만 바로 찾아갈 수 있게 도와주는 길잡이

 

728x90
반응형