여러 Forwarder를 운영한다고 할 때, 각 포워더가 하나의 인덱서를 바라본다고 한다면 우리는 매번 포워더에 접속해서 변경사항을 반영해야 할 것 이다. 여간 불편한 것이 아니다. 이때 필요한 것이 Deployment 서버이다.
하나의 배포 서버에 복사본을 만들고, 이것을 나머지 포워더에 배포해주는 방식이다.
참고로 포워더 Deployment는 대규모 포워더 그룹을 관리하는 것이지만 인덱서 클러스터 환경에서는 사용하지 못한다.
이번 시간에 수행할 과정은 위의 그림구성이다.
이 게시글의 Splunk Enterprise 설치를 참고하길 바란다!
이 게시글의 Universal Forwarder 설치를 참고하길 바란다!
AWS에서 Window 서버 생성하기: 퀵스타트 메뉴에 윈도우를 클릭, 이름을 지정 한다.
이후 키페어를 생성한다. 다운로드 받아 놓은 후 RDP를 이용해 접속할때 사용되기 때문에 보관해둔다.
이후 보안그룹을 선택한다. 나는 기존에 만들어 둔 보안그룹이 있기 때문에 기존 그룹을 선택했다. 없을 경우, 새롭게 생성한다.
(새롭게 생성할 경우, 이후에 8889 포트와 8000번 포트를 별도로 Allow로 추가해줘야한다. 인스턴스 정보 > 보안 > 인바운드 규칙 > 보안그룹 클릭 > 인바운드 규칙 편집
을 누르고, 편집해주면 된다.) 나중에 확인했을 때 다음과 같이 인바운드 규칙이 지정되어있으면 된다.
서버 생성을 하고, 서버 연결을 클릭한 후 RDP 연결을 클릭한다. 여기서 암호 가져오기를 클릭한다.
여기에 아까 다운받은 키 파일을 올리고, 암호 해독을 누르면 암호가 해독된다.
그리고 뒤로 돌아간 후, 원격 데스크톱 파일 다운로드를 누르면 ID와 PW를 입력하라는 창이 나오는데 각각 화면에 보이는 ID, PW를 입력하면 된다.
자세한 접속 방법은 구글링을 검색하면 나와있으니 참고하기 바란다.
윈도우 서버에 접속 후 아래의 페이지에 접속하여 uf를 다운받는다.
https://www.splunk.com/en_us/download/universal-forwarder/thank-you-universalforwarder.html
Next> ID, PW(random 패스워드 미선택) > DeploymentServer Skip > 리시버 Skip > Install
설치만 끝낸다.
cd $SPLUNK_HOME/splunkforwarder/bin/
./splunk set deploy-poll 18.224.29.181:8089
명령어는 ./splunk set deploy-poll DEP서버:8089
이다. 실행화면은 다음과 같다.
위의 명령어를 실행하고 나면, 다음과 같은 파일이 생성된다.
cd $SPLUNK_HOME/splunk/bin/
./splunk set deploy-poll 18.224.29.181:8089
명령어는 ./splunk set deploy-poll DEP서버:8089
이다. 실행화면은 다음과 같다.
deploymentclient.conf 를 만들어서 직접 밀어넣는다. (Window Universal Forwarder 서버에서 진행)
C:\Program Files\SplunkUniversalForwarder\etc\system\local
경로로 이동하여 기존에 있던 conf 파일을 복사해 다음과 같이 내용을 변경한다.
아니면 터미널을 열고 아래처럼 입력해도 된다.
splunk set deploy-poll 18.224.29.181:8089
splunk restart
./splunk restart
하면 된다. 먼저 Deployment 서버에 접속하여 기존에 설정한 포워더 서버가 잘 잡혔는지 확인한다. 정상적으로 연결된 것을 확인했다.
설정>분산환경 관리>포워더 관리
디플로이먼트 서버는 deployment-apps 하위에서 배포할 앱을 생성해주면 된다.
cd $SPLUNK_HOME/splunk/etc/deployment-apps
mkdir fwd_to_idx1
mkdir fwd_to_idx2
mkdir window_app
mkdir linux_app
만들고 웹 상에서 보면 포워더 관리에서 앱 4개가 확인된다.
그 다음은 서버 클래스를 생성한다. 서버 클래스는 배포할 앱들과 배포받을 서버를 묶어서 클래스로 만들면 된다.
outputs.conf를 수정하여 윈도우 포워더의 수집 인덱스를 지정해준다.
내용은 아래와 같으며 실행 경로는 $SPLUNK_HOME/splunk/etc/deployment-apps/fwd_to_idx1/default
이다. 배포 서버이기 때문에 default 경로에 배포한다.
[tcpout]
defaultGroup=receiver
[tcpout:receiver]
server=18.216.101.169:9997
실행한 모습이다. default 폴더는 생성해주면 된다.
outputs.conf를 수정하여 리눅스 포워더의 인덱스를 지정해준다.
내용은 아래와 같으며 실행 경로는 $SPLUNK_HOME/splunk/etc/deployment-apps/fwd_to_idx2/default
이다. 배포 서버이기 때문에 default 경로에 배포한다.
[tcpout]
defaultGroup=receiver
[tcpout:receiver]
server=18.220.68.228:9997
inputs.conf를 지정하여 모니터링 할 파일을 지정해준다.
[WinEventLog:Application]
disabled=0
[WinEventLog:Security]
disabled=0
[WinEventLog:System]
disabled=0
실행한 내용이다.
inputs.conf를 지정하여 모니터링 할 파일을 지정해준다.
[monitor:///var/log/]
disabled=false
sourcetype=syslog
실행한 내용이다.
디플로이 서버 bin 폴더에서 아래의 명령어를 실행해주면 된다.
./splunk reload deploy-server
이후 웹에서 확인하면 수정된 내용이 배포된 것을 볼 수 있다.
정상적으로 확인했다! 끝이다. AWS 서버는 모두 삭제해준다.