Splunk cluster [index Clustering]

seongcheollee·2024년 7월 12일
0

Splunk Fundametals

목록 보기
2/3

구성 및 환경 설정

OS[VM][ RockyLinux 9.4 ] -> docker

Splunk [ Splunk 9.0.4]

  • Search Head 3대 [192.168.56.111 ~ 113]
  • Indexer 3대 [192.168.56.114 ~ 116]
  • ForWarder 1대 [192.168.56.117]
  • MASTER 1대 [192.168.56.118]
  • Splunk 1대 [192.168.56.119]

Splunk Server의 Hostname 설정

THP 비활성화

ulimit 설정

설치 디렉토리 [ /opt/splunk ]

dokcer splunk 구성

docker pull splunk/splunk:[version]

docker network create --subnet=192.168.1.0/24 splunk_net

docker run -d -p 8007:8000 --name [container name] --hostname [hostname] --net splunk_net --ip [고정 ip로 사용할 ip] -e SPLUNK_START_ARGS="--acce
pt-license" -e SPLUNK_PASSWORD="passwd" splunk/splunk:[version]

클러스터 구성하지 않고 데이터 통합

전달 및 수신

수신 설정

각 indexer가 수신받아 올 포트번호 열기

각 indexer에 [ 설정 > 전달 및 수신 -> 수신 설정 -> 포트번호 9997 입력 ]

전달 설정

각 SearchHead의 데이터를 인덱서로 전송

각 seaerch head에 [설정 > 전달 및 수신 -> 전달 설정 -> 전달할 인덱서호스트:포트 입력 ]

결과 [ Case : Indexer 2 ]

각 SearchHead의 데이터가 Indexer 에 들어온 것을 확인 가능.

분산 검색

searchHead에서 여러 인덱서의 데이터를 검색가능하게 설정.

클러스터링

인덱서 클러스터링

구성

  • Master 1대
  • indexer 3대
  • Search Head 3대

1. 마스터 노드 설정

[ 설정 -> 인덱스 클러스터링 -> 마스터 노드 생성]

  • 복제 팩터 및 검색 팩터 설정

CLI

/opt/splunk/bin/splunk edit cluster-config -mode master -replication_factor 3 -search_factor 2 -secret [key(optional)] -cluster_label [label_name(optional)]
/opt/splunk/bin/splunk restart 

2. 피어 노드 설정

[ 설정 -> 인덱스 클러스터링 -> 피어 노드 생성]

  • 관리자 URI에 마스터 노드 인스턴스의 URI 입력
  • 복제 포트 입력

CLI

/opt/splunk/bin/splunk edit cluster-config -mode slave -master_uri <cluster master의 url:mgmt port 입력 : https://192.168.163.159:8089> -replication_port 9887 -secret <your_key>
restart 필요

3. 검색 헤드 노드 설정

  • 관리자 URI에 마스터 노드 인스턴스의 URI 입력

4. 마스터에서 결과 확인

인덱스 배포

1. 마스터 인스턴스에서 인덱스 생성

/opt/splunk/etc/master-apps/_cluster/local 에 indexes.conf 생성

coldPath = $SPLUNK_DB/cluster_test/colddb
homePath = $SPLUNK_DB/cluster_test/db
thawedPath = $SPLUNK_DB/cluster_test/thaweddb
repFactor=auto

repFactor : 이중화 옵션

2. 인덱스 배포

/opt/splunk/bin/splunk apply cluster-bundle

배포시 인덱스 잘 생성됐는지 확인을 위해 데이터 추가한 뒤, 마스터에서 확인

cluster_test 가 잘 배포된 것을 확인할 수 있음.

searchhead clustering

1. SHC Master 설정

/opt/splunk/bin/splunk edit shcluster-config -adhoc_searchhead true

2. Splunk Distribute SHC 설정

각 서치헤드 인스턴스에 실행

/opt/splunk/bin/splunk init shcluster-config -mgmt_uri https://[searchHeadURI]:8089 -replication_port 8081 -replication_factor 2 -conf_deploy_fetch_url https://[MasterURI]:8090

이후 restart

/opt/splunk/bin/splunk restart

3. Captain 설정

/opt/splunk/bin/splunk bootstrap shcluster-captain -servers_list "https://[sh1]:8089 , https://[sh2]:8089..."

추가하고자 하는 서치헤드의 url을 구분자 콤마로 삽입.

4. 상태확인

/opt/splunk/bin/splunk show shcluster-status

5. Add cluset member

새로운 스플렁크 인스턴스 생성 후 해당 인스턴스에 2번 항목 Splunk Distribute SHC 설정

기존 SHC에서 멤버를추가할 시

/opt/splunk/bin/splunk add shcluster-member -new_member_uri <새로운 인스턴스의 URI>:8089

새로운 멤버가 스스로 SHC에 추가할 시

/opt/splunk/bin/splunk add shcluster-member -current_member_uri https://[SHC의 멤버]:8089

6. Remove cluster memeber

다른 멤버로부터 특정 멤버를 삭제할 시

/opt/splunk/bin/splunk remove shcluster-member -mgmt_uri https://[삭제할 멤버]:8089

삭제할 멤버에서 멤버 제거할시

/opt/splunk/bin/splunk remove shcluster-member 

Trouble Shooting

guid 충돌 문제 -> /opt/splunk/etc/instance.cfg 제거

0개의 댓글