Splunk Index에 대한 정보 알기 / dbinspect / metadata / eventcount / 인덱스에 로그 개수 확인 / 인덱스 사이즈 확인

Munang·2024년 8월 27일
0

splunk

목록 보기
57/57

Splunk를 사용하다 보면 위의 정보를 확인해야 할 때가 있다. 그런데 막상 정보를 어디서 확인해야 할지 모르겠다. CM이니 LM이니 접속을 했는데, 내가 생각하는 데이터가 안나온다.

그럴때 알아두면 유용한 명령어 이다. 그냥 search head에서 검색을 해도 결과가 나오기 때문에 숙지해두자.
아래의 1번부터 3번까지는 일반적인 Search Head에서도 실행할 수 있고 4번은 LM에서 실행하는 쿼리를 첨부했다.

1. 인덱스의 크기, 저장경로 dbinspect

dbinspect 명령어를 사용해서 index를 조회하면, 내가 확인하려는 인덱스의 대략적인 모든 정보가 나온다.

예를 들어 botsv1 인덱스의 정보를 보고싶다고 하자. 그러면 아래와 같이 입력해준다.

| dbinspect index=botsv1

각 필드에 대한 설명은 아래와 같다. 따라서, botsv1의 크기는 sizeOnDiskMB에 보이는 3개의 값을 모두 합한 약 8845MB이다.

필드명설명
bucketId"index~id~guId" 형식으로 구성된 문자열 (예: summary~2~4491025B-8E6D-48DA-A90E-89AC3CF2CE80) 버킷의 고유한 아이디이다.
endEpoch버킷의 마지막 이벤트 타임스탬프 (UNIX epoch 시간, 초 단위)
eventCount버킷 안의 이벤트 총 개수
guId인덱스를 관리하는 서버의 전역 고유 식별자(GUID), 인덱스 복제 관련
hostCount버킷 안의 고유한 호스트 수
id버킷의 로컬 ID 번호 (버킷이 생성된 인덱서에서 생성)
index검색할 때 지정한 인덱스 이름 (예: index=*)
modTime버킷이 마지막으로 수정되거나 업데이트된 시간
path버킷이 저장된 위치 (클러스터링 여부에 따라 다름)
rawSize압축이나 인덱싱 전, 버킷의 원시 데이터 파일 크기 (바이트)
sizeOnDiskMB버킷이 차지하는 디스크 공간 크기 (메가바이트, 압축된 원시 데이터 파일 및 인덱스 파일 포함) 즉, jornal파일이 된 후의 저장된 사이즈이다.
sourceCount버킷 안의 고유한 소스 수
sourceTypeCount버킷 안의 고유한 소스 유형 수
splunk_server분산 환경에서 인덱스를 호스팅하는 Splunk 서버의 이름
startEpoch버킷의 첫 번째 이벤트 타임스탬프 (UNIX epoch 시간, 초 단위)
state버킷의 상태 ('hot', 'warm', 'cold')
tsidxState버킷의 tsidx 파일 상태 ('full'은 전체 크기, 'mini'는 축소됨)
corruptReason버킷이 손상된 경우 그 이유 (corruptonly=true일 때만 나타남)

2. 인덱스에 저장된 이벤트 개수 eventcount

그냥 빨리 이벤트 개수가 몇개인지 보고싶다. 상세한 정보는 필요없다.

그렇다면 아래의 명령어를 실행해보자.

| eventcount index=botsv1 report_size=true summarize=true list_vix=true
 | eval size_bytes = size_bytes/1024/1024


이럴경우 botsv1 인덱스에 저장된 이벤트의 개수는 count에서, size_bytes에서 크기를 . 볼 수 있다.

3. host별로 sourcetype별로 이벤트의 개수

sourcetype, host별로 이벤트가 언제부터 쌓여있고, 몇개나 쌓여있는지 확인할 수 있다.

| metadata type=sourcetypes index=botsv1

4. 소스타입, 인덱스의 하루 수집 MB, GB?? (라이센스 마스터에서 실행)

이것은 라이센스 마스터에서 실행해야 한다. 위의 1~3 명령어는 기본 검색 헤드에서도 결과가 나온다. 그 외 아래의 정보를 알고싶다면, 아래의 쿼리를 활용하기!

  • 특정 인덱스 데일리 사용량 확인하기 (GB)
index=_internal source=*license_usage.log  type=Usage idx="YourIndexHere"
| timechart span=1d sum(b) as Usage 
| eval Usage=round(Usage/ 1024 / 1024,3)
  • 모든 인덱스 데일리 사용량 확인하기
index=_internal source=*license_usage.log idx=* type=Usage
| timechart span=1d sum(b) as Usage by idx
| foreach * 
	[ eval <<FIELD>>=round(<<FIELD>> / 1024 / 1024, 3) ]
  • 소스타입별 데일리 사용량 확인하기(MB)
index=_internal source=*metrics.log group="per_sourcetype_thruput"
| eval GB=kb/(1024*1024)
| timechart span=1d sum(GB) by series 
| eval sourcetype=lower(series) 

timechart의 범위 혹은 stats의 범위 등을 활용해서 일별, 시간별, 월별로 추출하면 되겠다.

1개의 댓글

comment-user-thumbnail
2024년 9월 4일

splunk 관련된 좋은 정보들 감사합니다!

답글 달기