forwarder에서 데이터를 보내도 indexer가 데이터를 받을 준비가 되지 않았으면
데이터를 받을 수가 없다!
그러려면 indexer가 데이터를 받을 port 번호를 설정해야 해야하는데
보통 splunk indexer의 기본 포트 번호는 9997이다.
오늘은!!
1. Indexer의 포트를 열고
2.universal forwarder 입장에서 통신이 열려있는 상태인지 확인하고자 한다.
🐤 [ Phase 0 ] Splunk Enterprise 열기
💠 Splunk 인스턴스에서 수신을 활성화하면 포워더에서 전송된 데이터를 수신
💠 전달과 수신을 활성화하려면 "수신기"와 "포워더"를 모두 설정
💠 수신기: 데이터를 수신하는 Splunk 인스턴스, 포워더는 데이터를 수신기로 전달
🌱 [ Step 1 ] Splunk enterprise가 있는 가상 머신을 열고 로그인 한다.
🌱 [ Step 2 ] root 계정으로 전환한 후, bin/splunk 파일을 start 한다.
sudo -s cd splunk/bin ./splunk start |
🌱 [ Step 3 ] ip add 명령어를 이용해서 splunk enterprise ip 얻기
🌱 [ Step 4 ] 얻은 ip로 splunk enterprise에 접속 후 로그인
🐤 [ Phase 1 ] 수신기 활성화
💠 Splunk 인스턴스에서 수신을 활성화하면 포워더에서 전송된 데이터를 수신
💠 수신기: 데이터를 수신하는 Splunk 인스턴스 보통 indexer, 포워더는 데이터를 수신기로 전달
🌱 [ Step 1 ] 페이지 상단의 설정의 전달 및 수신 클릭
🌱 [ Step 2-1 ] 데이터 수신 > 수신 설정 > 새로 추가 ( Web에서... ) 권장하지 않음
💠 default: 9997
❓ 여기서 잠깐!
🌟 데이터 수신을 설정했다면 local 파일에 inputs.conf가 생기지 않았을까? 의문이 들었다!
🌟 그렇다면 default가 바뀌었나? 그럴리가 없는데....
💧 우리가 원하는 정보는 없다...
🌟 inputs.conf 파일을 전체에서 검색해보자.
💠위의 두 가지 방법으로 수신 설정을 하면 inputs.conf가 앱 밑에 설치가 된다.
💠설치되는 앱의 종류는 때마다 다름
💠Web에서 설정할 때는 web의 url에 따라서 저장되는 위치가 바뀐다. 따라서 권장하지 않음.
🌱 [ Step 3-2 ] 수신 포트 지정 ( CLI로... ) 권장하는 방법!!!!
💠 경로를 $SPLUNK_HOME/bin으로 변경
💠 root 계정으로 전환한다.
💠 ./ splunk enable listen 9997 -auth admin:password (웹아이디:웹비밀번호)
💠 성공 후 splunk enterprise 재시작
💠 수신포트를 변경하면 설정 파일인 .conf 파일의 내용이 변경된다.
💠 .conf 파일은 Splunk에서는 admin 권한을 가진 사용자만 수정할 수 있다.
💠 따라서 웹에서도 admin 권한을 가진 사용자만 수신 포트를 지정할 수 있다.
💠 마찬가지로 CLI 환경에서도 Root로 실행했을 때만 수신 포트를 지정할 수 있는 것이다.
🌱 [ Step 3-3 ] 수신 포트 지정 ( .conf 파일로... ) 권장하는 방법!!!!
💠 root 계정으로 전환한다.
💠 경로를 $SPLUNK_HOME/etc/app/search/local로 변경
💠 inputs.conf 파일을 편집한다.
sudo -s cat > inputs.conf 입력 후 Enter [splunktcp://9997] disabled =0 Ctrl + D 로 저장 $SPLUNK_HOME/bin에서 ./splunk restart |
💠.conf 파일 수정 후에 restart 하고 다시 로그인 해야 웹에서 설정된 포트번호를 확인할 수 있다.
🐤 [ Phase 2 ] Universal Forwarder에서 통신 확인하기
💠 Indexer의 Port를 열었다.
💠 이제 열어둔 포트와 UF가 통신이 가능한지 확인해보려한다.
🌱 [ Step 1 ] Universal Forwarder Start 및 계정 설정
💠 설치한 유니버셜 포워더를 시작한다.
💠 유니버셜 포워더에 변경 사항을 적용한 후에도 유니버셜 포워더를 시작하거나 다시 시작해야한다.
# Universal Forwarder 시작하기 cd $SPLUNK_HOME/bin ./splunk start # Universal Forwarder 시작하기(처음시작할때 라이센스 계약 읽지 않고 동의하고 싶을 때) cd $SPLUNK_HOME/bin ./splunk start --accept-license # Universal Forwarder 시작하기(설정 변경 후 다시 시작하기) cd $SPLUNK_HOME/bin ./splunk restart |
🌱 [ Step 2 ] Indexer와 통신이 잘 되는 지 확인한다.
💠 ping 명령어 사용
네트워크 상태를 확인하려는 대상(target) 컴퓨터를 향해
일정 크기의 패킷(packet, 네트워크 최소 전송단위)을 보낸후
대상 컴퓨터가 이에 대해 응답하는 메시지를 보내면 이를 수신, 분석하여
대상 컴퓨터가 작동하는지, 또는 대상 컴퓨터까지 도달하는 네트워크 상태가 어떠한지 파악할수 있다.
사용법
ping [option] <destination>
destination은 확인하고 싶은 대상 인스턴스의 ip 주소나 도메인 이름을 넣으면 된다.
여기서는 indexer의 ip 주소를 넣었다.
옵션으로는 다양한 것들이 있지만
여기서는 -c <count> 를 사용하였다.
ex ) -c 3 : 3번 패킷을 보내고 실험을 중단한다는 의미이다.
🌱 [ Step 3 ] Indexer의 특정 포트와 통신할 수 있는지 확인한다.
💠telnet 명령어 사용
사용법
telnet ip portnumber
telnet은 1969년에 개발된 다른 호스트에 접속하는 네트워트 프로토콜이며
통신 가능 여부를 연결 시도 시 발생하는 메시지로 판단할 수 있다.
- 방화벽이 정상 오픈되었고 port도 정상 대기중인 상태 즉, 통신가능한 상태
- telnet 192.168.11.130 9997
- Trying 192.168.11.130....
- Connected to 192.168.11.130
- Escape character is '^]'.
- Ctrl + ] 로 빠져나올 수 있음
- Connection closed by foreign host.
- 방화벽은 정상 오픈되었으나 port가 대기 중이 아닌 상태
- telnet 192.168.11.130 9997
- Trying 192.168.11.130.....
- telnet: Unable to connect to remote host: Connection refused
- 방화벽이 막혀 있거나 서버 장비가 전원 OFF 된 상태
- telnet 192.168.11.130 9997
- Trying 192.168.11.130.....
- 트라잉에서 멈춘 상태로 지속