Step 5. Splunk Search Head Clustering & Deployer 구성

Munang·2024년 1월 8일
0

splunk

목록 보기
39/57

오늘은 Splunk에서 Search head 클러스터링과, Deployer를 구성해보겠다.

오늘 해 볼 구성은 위와 같다.

1. Splunk 인스턴스 준비

Splunk 인스턴스는 총 4대가 필요하고, 3대는 검색헤드, 1대는 디플로이어로 사용할 것 이다. 모두 Splunk Enterprise 인스턴스를 설치해주면 된다.

Splunk Enterprise 인스턴스를 설치하는 방법은 이 곳의 2-1 부분을 확인하면 된다.

2. Splunk Deployer 구성하기

1) server.conf 수정하기

cd $SPLUNK_HOME/splunk/etc/system/local
vi server.conf

맨 아래줄에 아래의 내용을 추가한다.

[shclustering]
pass4SymmKey = munang
shcluster_label = shcluster1
  • pass4Symmkey: 서치헤드 클러스터가 이 키를 이용해 나중에 deployer와 상호작용을 하는데에 인증이 필요한데, 그 때 사용된다.
  • shcluster_label: 모니터링 콘솔에서 검색헤드 클러스터를 구분하는 라벨명을 지정하는 것 이다.

이후 Splunk 인스턴스를 재시작 해준다.

cd ../../../bin/
./splunk restart

이후에 다시 server.conf의 내용을 확인해 보면 Pass4Symmkey가 암호화 되어있는 것을 확인할 수 있다. 이 키값은 SH구성 시 사용됨으로 메모해두자.

cd ../etc/system/local
cat server.conf

3. Search Head Cluster 구성하기

아래의 명령어를 실행하기 전에 클러스터시 사용하는 포트 9000번의 방화벽 정책을 열어줘야 한다. (EC2 방화벽 정책 열어두는 방법은 검색하면 잘 나온다!)

1) SH 클러스터링 설정하기

3대의 검색헤드에 모두 접속하여 실행해야 한다. sh 클러스터를 구성하는 명령어는 다음과 같다.

cd $SPLUNK_HOME/splunk/bin
./splunk init shcluster-config -auth <username>:<password> -mgmt_uri <URI>:<management_port> -replication_port <replication_port> -replication_factor <n> -conf_deploy_fetch_url <URL>:<management_port> -secret <security_key> -shcluster_label <label>

각각의 요소를 해석하면 다음과 같다.
init shcluster-config: sh 구성을 초기화 한다.
auth <username>:<password>: 현재 명렁어를 실행하는 서버의 사용자와 PW를 입력
mgmt_uri <URI>:<management_port>: 현재 명렁어를 실행하는 서버의 관리 uri를 입력한다.
replication_port <replication_port>: sh 클러스터 멤버는 항상 서로 커뮤니케이션을 하는데, 이때 사용할 포트 번호이다. (항상 접근 가능해야 한다)
replication_factor <n>: 현재 Splunk SH시스템에 몇개의 복제 팩터를 지정하냐에 대한 요소이다. 디폴트는 3개이다. (복제 인자에 대한 자세한 설명은 이 포스팅에 기재되어있다. )
conf_deploy_fetch_url <URL>:<management_port>: deployer 서버의 주소와, 관리포트이다.
secret <security_key>: 1.에서 server.conf에 설정했던 암호화된 pass4SymmKey 비밀번호이다.
shcluster_label <label>: 1.에서 server.conf에 설정했던 shcluster_label 라벨이다.

따라서 나는 각 서버에서 명령어를 실행해줬다. 아래와 같이 말이다!

  • SH1번 서버
./splunk init shcluster-config -auth munang:PW -mgmt_uri https://3.12.150.176:8089 -replication_port 9000 -replication_factor 3 -conf_deploy_fetch_url https://18.218.101.187:8089 -secret pass4SymmKey -shcluster_label shcluster1
  • SH2번 서버
./splunk init shcluster-config -auth munang:PW -mgmt_uri https://18.117.106.133:8089 -replication_port 9000 -replication_factor 3 -conf_deploy_fetch_url https://18.218.101.187:8089 -secret pass4SymmKey -shcluster_label shcluster1
  • SH3번 서버
./splunk init shcluster-config -auth munang:PW -mgmt_uri https://18.219.252.172:8089 -replication_port 9000 -replication_factor 3 -conf_deploy_fetch_url https://18.218.101.187:8089 -secret pass4SymmKey -shcluster_label shcluster1
  • SH 3대의 서버 모두 재시작
./splunk restart

2) SH Captain 설정하기

서치헤드 클러스터링은, 클러스터링을 관장하는 대표서버가 클러스터링 내에 지정된다.
잡을 스케줄링하고, 효율적인 검색을 수행하도록 클러스터링을 매니징하는 서버인데, 최초에 구성할 때에 설정해주게 된다. 보통은 자동으로 설정되고, 만약 캡틴이 다운되면 다른 SH가 자동으로 선정된다.

명령어는 다음과 같다. 이 명령을 캡틴이 될 SH에서 수행해주면 된다.

./splunk bootstrap shcluster-captain -servers_list "<URI>:<management_port>,<URI>:<management_port>,..." -auth <username>:<password>

servers_list "<URI>:<management_port>,<URI>:<management_port>,...": SH 클러스터링으로 묶을 모든 서버를 기재한다.
-auth <username>:<password>: 현재 명령어를 실행하는 서버의 계정 정보를 적는다.

./splunk bootstrap shcluster-captain -servers_list "https://3.12.150.176:8089,https://18.117.106.133:8089,https://18.219.252.172:8089" -auth munang:PW

3) SH 클러스터 상태 보기

./splunk show shcluster-status -auth munang:PW

클러스터가 설정된 것을 확인할 수 있다. 이제 직접 접속해서 클러스터링 설정을 확인해보자. 검색헤드 중 하나의 서버에 접속해서 설정>검색 헤드 클러스터링을 확인한다.


정상적으로 업로드 된 것을 볼 수 있다.

이로써 구성은 끝났다! 다음시간에는 이 클러스터링 구성을 Indexer와 연결하는 작업을 할 예정이다. 서버는 모두 삭제해준다!

0개의 댓글