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
반응형