OS[VM][ RockyLinux 9.4 ] -> docker
Splunk [ Splunk 9.0.4]
Splunk Server의 Hostname 설정
THP 비활성화
ulimit 설정
설치 디렉토리 [ /opt/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에 [설정 > 전달 및 수신 -> 전달 설정 -> 전달할 인덱서호스트:포트 입력 ]

각 SearchHead의 데이터가 Indexer 에 들어온 것을 확인 가능.
searchHead에서 여러 인덱서의 데이터를 검색가능하게 설정.


구성
- Master 1대
- indexer 3대
- Search Head 3대
[ 설정 -> 인덱스 클러스터링 -> 마스터 노드 생성]

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
[ 설정 -> 인덱스 클러스터링 -> 피어 노드 생성]

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 필요


/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 : 이중화 옵션
/opt/splunk/bin/splunk apply cluster-bundle
배포시 인덱스 잘 생성됐는지 확인을 위해 데이터 추가한 뒤, 마스터에서 확인

cluster_test 가 잘 배포된 것을 확인할 수 있음.
/opt/splunk/bin/splunk edit shcluster-config -adhoc_searchhead true
각 서치헤드 인스턴스에 실행
/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
/opt/splunk/bin/splunk bootstrap shcluster-captain -servers_list "https://[sh1]:8089 , https://[sh2]:8089..."
추가하고자 하는 서치헤드의 url을 구분자 콤마로 삽입.
/opt/splunk/bin/splunk show shcluster-status

새로운 스플렁크 인스턴스 생성 후 해당 인스턴스에 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
다른 멤버로부터 특정 멤버를 삭제할 시
/opt/splunk/bin/splunk remove shcluster-member -mgmt_uri https://[삭제할 멤버]:8089
삭제할 멤버에서 멤버 제거할시
/opt/splunk/bin/splunk remove shcluster-member

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