오늘은 Splunk 인스턴스를 설치하고, 아주 간단하게 Universal Forwarder의 특정 파일을 모니터링 하도록 연결하는 실습을 해볼 것 이다. AWS클라우드로 했다. 우리가 설정할 서버 구성은 다음과 같다.
EC2 접속 방법은 빠르게 지나가도록 하겠다. 평범한 접속 방법과 동일하니, 궁금한 사람은 직접 찾아보면서 하길 권한다!
EC2 > 인스턴스 > 인스턴스 시작을 누른다.
우분투로 인스턴스를 생성하고, 키페어 생성 후 해당 키페어를 내려 받는다. 이후에 aws 콘솔에서 인스턴스 정보를 보면 퍼블릭 IPv4 주소가 나와있는데 이 주소를 이용해 ssh로 접속한다.
키 페어 (key.pem) 파일의 권한을 변경 한 후, 해당 파일을 이용해 ssh 접속한다. 붉은색 박스로 그려진 부분이 퍼블릭 IPv4 주소이다.
wget -O splunk-9.1.2-b6b9c8185839-Linux-x86_64.tgz "https://download.splunk.com/products/splunk/releases/9.1.2/linux/splunk-9.1.2-b6b9c8185839-Linux-x86_64.tgz"
tar -xvf splunk-9.1.2-b6b9c8185839-Linux-x86_64.tgz
cd $SPLUNK_HOME/splunk/bin
./splunk start
이용약관 건너뛰기
컨트롤 + F(여러 페이지 건너뜀) 를 눌러서 아래의 부분까지 온 후 yes한다. 이후 root 관리자의 아이디와 비밀번호를 입력한다.
완료가 되면 아래와 같이 주소를 보여준다. 해당 주소로 접속해보자.
접속하기 전에 방화벽 설정을 열어줘야 한다.
인스턴스 정보 > 보안 > 인바운드 규칙이 있다. 여기서 8000포트를 열어준다.
설정 이후 모습은 다음과 같다.
Splunk Enterprise 서버를 생성할 때와 마찬가지로 서버 생성 후 포워더를 설치해준다.
wget -O splunkforwarder-9.1.2-b6b9c8185839-Linux-x86_64.tgz "https://download.splunk.com/products/universalforwarder/releases/9.1.2/linux/splunkforwarder-9.1.2-b6b9c8185839-Linux-x86_64.tgz"
tar -xvf splunkforwarder-9.1.2-b6b9c8185839-Linux-x86_64.tgz
설정 > 데이터 수신 탭으로 간다.
수신 설정을 클릭한다.
새 수신포트를 클릭 후 9997 포트를 설정한다.
추가: The minimum free disk space (5000MB) reached for 라는 에러사항이 나타난다면, 아래와 같이 파일을 편집해주면 된다. 가용 DB공간이 없어서 발생하는 문제인데 이를 늘려줄 수 있다. 최소 가용 공간의 비율을 50으로 늘려주면 해결된다.
경로: $SPLUNK_HOME/splunk/etc/system/local/server.conf
[diskUsage]
minFreeSpace = 50
pollingFrequency = 100000
pollingTimerFrequency = 10
우리가 모니터링 하여 수집할 데이터는 log 데이터이다. splunk를 실행하며 발생하는 모든 로그 데이터가 쌓이는 곳 이다.
./splunk add monitor /var/log
이렇게 되면, inputs.conf 파일에 위의 내용이 들어가게 된다. 직접 확인해보면 다음과 같다.
./splunk add forward-server 18.191.58.93:9997
이렇게 되면, outputs.conf 파일에 위의 내용이 들어가게 된다. 직접 확인해 보면 다음과 같다.
이후에 로그 파일을 열어 모니터링 여부를 확인해보면 time out 에러가 나는 것을 보아 방화벽 정책 문제로 보인다.
방화벽 정책을 열어줬다. 정상적으로 연결 후 전달된다.
정상적으로 /var/log가 모니터링 되는 것을 볼 수 있다.
이렇게 간단하게 작업해봤다. 오늘은 끝이다! (AWS 인스턴스는 모두 삭제하자!) 다음시간에는 헤비 포워더를 설치하여 수집해보겠다.