728x90
반응형
Splunk Fishbucket 개요
Fishbucket은 Splunk가 이미 읽은 파일의 상태를 기억하는 메커니즘입니다.
주로 문제가 되는 경우는 정적 파일(예: 설정 파일)을 이미 인덱싱했지만, 해당 데이터가 인덱스에서 만료되거나 삭제된 경우입니다.
이럴 때, Splunk가 해당 파일을 처음 읽는 것처럼 다시 인덱싱하게 만드는 것이 목적입니다.
기본 동작 원리
- Fishbucket은 **파일의 서명(지문)**과 해당 파일 상태를 저장하는 단순 데이터베이스(btree)입니다.
- $SPLUNK_DB 디렉터리 내에 존재하지만 일반 인덱스와 구조가 다릅니다.
- 저장되는 주요 정보:
- 파일 지문(CRC): 파일 처음 256바이트(기본값)의 MD5 해시
- sptr(Seek Pointer): 마지막으로 읽은 위치(바이트 단위)
- scrc: sptr 위치에서의 CRC
- mdtm: 파일 수정 시간(Unix Epoch)
- 처리 방식:
- 파일의 초기 CRC가 fishbucket에 없으면 처음부터 읽기 시작.
- 기존 기록이 있으면 sptr 위치까지 건너뜀.
- EOF 전에 도달하면 파일 회전(rotated)으로 판단하고 처음부터 재읽기.
주요 문제 상황 및 해결 방법
1. Splunk가 파일을 이미 인덱싱했다고 판단하는 경우
- 원인: 이전에 인덱싱된 파일이지만 데이터가 삭제됨.
- 해결:
- 일회성 재인덱싱:
-
splunk add oneshot -index <index> -source <file> -sourcetype <type>
- fishbucket 기록 초기화:이후 포워더 재시작 필요.
-
splunk cmd btprobe -d $SPLUNK_DB/fishbucket/splunk_private_db --file <file> --reset
2. 잘못된 파일 동일성 판단
- 원인: 파일 시작 부분이 회전 후에도 동일(예: WebSphere JVM 시작 로그), 초기 CRC가 동일하게 계산됨.
- 증상:
-
ERROR TailingProcessor - File will not be read, seekptr checksum did not match...
- 해결:
- inputs.conf에서 initCrcLength 값 조정 (최대 1MB).
- 시간 변동 데이터가 시작되는 지점까지의 길이로 설정.
- 설정 후 포워더 재시작.
3. ignoreOlderThan으로 인해 파일이 무시된 경우
- 원리: 마지막 수정 시간(modtime)이 설정된 기간보다 오래된 파일은 아예 읽지 않음.
- 확인 방법:
- 결과에서 type이 "ignored (modtime fell behind...)”이면 무시 상태.
-
$SPLUNK_HOME/bin/splunk _internal call /admin/inputstatus/TailingProcessor:FileStatus
- 주의: 무시된 파일을 다시 읽으려면 Splunk 재시작 필요.
Fishbucket
| 특정 파일 즉시 인덱싱 | splunk add oneshot -index <index> -source <file> -sourcetype <type> |
| fishbucket에서 파일 상태 초기화 | splunk cmd btprobe -d $SPLUNK_DB/fishbucket/splunk_private_db --file <file> --reset |
| TailingProcessor 상태 확인 | splunk _internal call /admin/inputstatus/TailingProcessor:FileStatus |
요약
- Fishbucket은 Splunk가 파일 읽기 상태를 추적하는 내부 DB.
- 주된 문제는 “이미 읽었다고 잘못 판단”하거나 “ignoreOlderThan 설정으로 무시”되는 상황.
- 해결은 oneshot 인덱싱, btprobe로 상태 초기화, 또는 initCrcLength 조정.
- 무시된 파일은 재시작 전까지 다시 읽히지 않음.
728x90
반응형
'Splunk' 카테고리의 다른 글
| [Splunk] 네트워크 입력 (Network Inputs) 완벽 가이드 (0) | 2025.08.20 |
|---|---|
| [Splunk] 데이터 입력 완벽 가이드 (0) | 2025.08.20 |
| [Splunk] Splunk Forwarder와 S2S 통신 완벽 이해 (1) | 2025.08.19 |
| splunk 서버 설정의 일반 설정 기능 알아보기 (1) | 2023.12.11 |
| [Splunk] About Splunk (0) | 2023.04.24 |