10. Splunk 배포
searcher 서버에 배포
- Search Cluster 배포서버에서 멤버들에게 App과 conf파일들을 배포할 수 있다.
- 배포서버의 $SPLUNK_HOME/etc/shcluster/apps 밑에 배포할 App을 저장한다.
- 설정 파일은 배포할 App의 local 또는 default 디렉토리 밑에 저장하여 App형태로 배포한다.
- 배포서버의 $SPLUNK_HOME/bin에서 splunk apply shcluster-bundle --answer-yes –target https://배포할 멤버IP:관리Port –auth admin:비번 을 실행하면 App이 배포된다.
- Searcher Cluster 배포 서버에서 App을 배포할 경우 멤버서버 개수 만큼 위의 명령어를 실행해 주어야 한다.,
- Searhcer 배포서버에서 배포한 App들은 Searcher Cluster 멤버의 $SPLUNK_HOME/etc/apps 밑에 생성 된다.
Indexer 서버에 배포
- 인덱서 클러스터의 Peer노드들은 ClusterMaster에서 배포하는 App 및 설정들을 공유한다.
- 인덱서 클러스터의 배포는 CM(ClusterMaster)의 $SPLUNK_HOME/etc/master-apps에서 이루어진다.
- 설정파일 배포 방법은 CM의 $SPLUNK_HOME/etc/master-apps/_cluster/local 디렉토리를 생성한다. 그 후 배포할 설정파일을 local 디렉토리에 생성 후 CM의 $SPLUNK_HOME/bin 에서 splunk apply cluster-bundle 을 실행하면 설정이 Peer노드들에 적용된다.
- App배포 방법은 CM의 $SPLUNK_HOME/etc/master-apps 밑에 App을 생성 후 CM의 $SPLUNK_HOME/bin에서 splunk apply cluster-bundle 을 실행하면 App이 Peer노드들에 생성된다.
- 배포된 App과 설정파일은 Peer노드의 $SPLUNK_HOME/etc/slave-apps밑에 생성되며 설정은 _cluster/local에 App은 slave-apps 디렉토리 밑에 생성된다.
수집대상 서버에 배포
- 배포서버로서 동작을 하기 위해서는 별도의 설정이 필요하기 보다는 배포할 App이 필요하다.
- 배포서버로 지정할 서버의 $SPLUNK_HOME/etc/deployment-apps 밑에 배포할 App을 생성한다. 그 후 웹으로 접속하여 설정 -> Forwarder관리로 들어가면 배포서버로 설정되어 있는 것을 알 수 있다.
- App이 정확한 위치에 생성이 되었다면 위의 화면처럼 배포 가능한 App이 표시된다
UniversalFowarder 설정
배포서버에서 배포하는 App을 받기 위해서는 설정이 필요하다.
배포 받을 서버의 $SPLUNK_HOME/etc/system/local 밑에 deploymentclient.conf를 생성한다.
deploymentclient.conf
[deployment-client]
[target-broker:<그룹명>]
target-Uri = 배포서버IP:관리Port
deploymentclient.conf설정 후 Splunk를 재시작 해주면 배포서버의 Forwarder관리 페이지에 클라이언트 서버 목록에 나타난다.
배포를 위한 서버 클래스 설정
- 배포는 서버클래스를 생성하여 배포할 App과 배포 받을 클라이언트를 설정할 수 있다.
- 배포서버의 Forwarder관리 -> 서버클래스에 들어가 서버클래스를 생성한다.
위와 같이 서버클래스를 생성하면 App을 배포할 수 있다.
설치 후 작업을 편집하여 배포 후 클라이언트의 App 활성화와 Splunk 재시작 작업을 할 수 있다.
서버클래스에 대한 설정은 배포서버의 $SPLUNK_HOME/etc/system/local/serverclass.conf에서 확인할 수 있다.
serverclass.conf
- 위의 restartSplunkd 설정값이 1로 되어있으면 앱 배포 후, 앱 설정 변경 후 클라이언트의 Splunk가 자동으로 재시작 된다.
- 배포서버에서 배포한 앱은 $SPLUNK_HOME/etc/apps 밑에 생성된다.
- 클라이언트는 60초(기본설정)마다 배포서버와 통신하며 배포서버에서 받은 App의 설정이 변경되었는지 확인하며 설정이 변경되면 특별한 설정 없이 자동으로 클라이언트에 배포되고 App도 설정이 변경된다.
deploymentclient.conf
PhoneHomeIntervalInSec = 60
위 설정파일에서 Agent와 배포서버간의 주기적인 통신간격을 조정할 수 있음.
11. Splunk 업그레이드
일반적인 경우
- $SPLUNK_HOME/bin/splunk stop 실행
- 스플렁크가 설치된 동일경로에 설치파일(*.tar)의 압축을 풀어준다.
- 예를 들어 /opt 밑에 Splunk가 설치되어 있다면 /opt 밑에 압축파일을 저장하고 tar 명령어를 통하여 압축을 해제한다.
- $SPLUNK_HOME/bin/splunk start실행
- $SPLUNK_HOME/bin/splunk version 으로 업그레이드 된 버전을 확인
클러스터링 환경
클러스터 환경일 경우 스플렁크 버전을 업그레이드 하기 위해서는 아래와 같은 작업절차에 의해 작업이 이루어 져야 한다.
- 클러스터 마스터 서버를 유지관리 모드로 전환
$SPLUNK_HOME/bin/splunk enable maintenance-mode
(마스터의 유지관리모드는 보통 업그레이드나 짧은 유지보수 작업을 위해 한다.) - 클러스터 마스터 서버의 유지관리 모드 확인
$SPLUNK_HOME/bin/splunk show maintenance-mode
(유지관리 모드로 전환이 되면 1, 평상시에는 0 으로 표시된다.) - 피어서버를 offline 상태로 전환
$SPLUNK_HOME/bin/splunk offline
(피어의 오프라인 상태는 보통 업그레이드나 짧은 유지보수 작업을 위해 한다.). - 각 피어서버들의 업그레이드 작업 진행
스플렁크 stop 후에 최신 설치파일 압축 해제 후 스플렁크 start 하는 일련의 작업 - 클러스터 마스터 서버의 업그레이드 작업 진행
모든 클러스터 구성원 업그레이드 완료 후 마스터 서버의 업그레이드 작업을 진행한다.
Backup 정책
Incremental backups
[권장사항]
기본적으로 $SPLUNK_HOME/var/lib/splunk/defaultdb/db/* 디렉토리 밑에 있는 warm bucket 중에 증가분의 bucket 자료들을 백업 디렉토리로 copy해 주면 된다.
현재 열려있는 hot bucket은 백업이 안 되기 때문에 rolling 작업을 통해 현재 hot bucket을 warm bucket으로 변환 후에 백업 작업을 해야 한다. hot bucket을 warm bucket으로 변환하는 명령어는 아래와 같다.
[Rolling buckets manually from hot to warm]
splunk _internal call /data/indexes/<index_name>/roll-hot-buckets –auth <user>:<pwd>
수동으로 Rolling을 하면 bucket 개수가 너무 많이 생김으로 권장하지 않고 실제 클러스터링 환경에서 장애 시 데이터 동기화 과정에서 bucket개수가 너무 많아서 동기화에 문제가 발생하기도 한다.
Cluster 구성일 경우
- 클러스터 환경에서는 이미 데이터가 복제되어 있기 때문에 백업 정책을 권장하지는 않는다.
- 백업이 필요한 경우 단일환경일 경우와 마찬가지로 증가된 bucket데이터를 저장하도록 권장한다.
클러스터 환경에서 bucket 데이터를 백업을 하면 중복된 데이터를 백업하게 된다.
이를 해결하기 위해서는 클러스터에서 각 버킷의 단 하나의 사본을 확인하고 그 사본을 백업하는 방안이 있지만 이를 구현하기 위해서는 버킷ID로 중복데이타 여부를 식별할 수 있는 백업스크립트를 작성해야 한다. 이는 복잡하고 많은 테스트가 필요한 작업으로 고객에게 권장하지 않는 것을 원칙으로 한다.
이상으로 Splunk 설치 및 환경설정!! - Splunk A to Z 설치 정복 1~5 편 모두 알아보았습니다.
'BigData > Splunk' 카테고리의 다른 글
[Splunk] Splunk 설치 및 환경설정!! - Splunk A to Z 설치 정복 4 (0) | 2021.03.04 |
---|---|
[Splunk] Splunk 설치 및 환경설정!! - Splunk A to Z 설치 정복 3 (0) | 2021.03.03 |
[Splunk] Splunk 설치 및 환경설정!! - Splunk A to Z 설치 정복 2 (0) | 2021.02.24 |
[Splunk] 설치 전 OS 환경설정!! - Splunk A to Z 설치 정복 1 (0) | 2021.02.23 |
[Splunk] Data Pivot 알아보기!! - 데이터 세트의 핵심 피벗 (0) | 2021.02.21 |