오픈 소스 중 하나인 Scouter를 이용한 모니터링 방법을 정리해봤습니다.
※ 테스트 환경
- Scouter 2.6.0
- AWS EC2 - Linux
- jdk 1.8
- Tomcat9
- Spring Boot
설정에 들어가기 앞서 Scouter의 모니터링 방식은 다음과 같습니다.
1. 모니터링하고자 하는 서버에 Collector라는 서버를 설정합니다.
2. 각 성능 정보를 Scouter Agent를 통해 Collector 서버에 전달합니다.
3. 사용자는 Scouter Client 프로그램을 통해 Collector 서버에 수집된 데이터를 모니터링합니다.
Scouter Agent에는 아래에 과정을 진행하다보면 알겠지만 agent.batch, agent.host, agent.java가 있습니다.
agent.batch : 배치 모니터링 기능을 제공합니다.
agent.host : OS의 성능 정보(CPU, Memory, disk 사용량 등)를 수집합니다.
agent.java : WAS의 성능 정보(Heap Memory, Thread 등)를 수집합니다.
1) 스카우터 설치
*작업 폴더는 /home으로 지정
cd /home
wget https://github.com/scouter-project/scouter/releases/download/v2.6.0/scouter-all-2.6.0.tar.gz
tar xvzf scouter-all-2.6.0.tar.gz
(JDK 버전에 따라 호환되는 파일이 다르니 여기서 각 버전들을 확인하시길 바랍니다)
2) Host Agent 설정
cd /couter/agent.host/conf
vim scouter.conf
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
- net_collector_ip : Collector 서버의 IP를 입력합니다.
- net_collector_udp_port : Collector 서버에 연결할 udp 포트
- net_collector_tcp_port : Collector 서버에 연결할 tcp 포트
성능 정보는 udp를 통해 Collector 서버로 전송되며 tcp를 통해 Scouter Client 프로그램과 통신합니다. 때문에 6100 포트가 반드시 열려있어야 합니다.
3) Collector 서버 설정
cd /home/scouter/server/conf
vim scouter.conf
log_dir=/home/scouter/server/logs
net_udp_listen_port=6100
net_tcp_listen_port=6100
- log_dir : 로그가 저장될 경로
- net_udp_listen_port : agent와 통신할 udp 포트
- net_tcp_listen_port : agent와 통신할 tcp 포트
4) Collector 서버 실행
cd ..
./startup.sh
cd ..
cd agent.host
./host.sh
5) Java Agent 설정
cd /home/scouter/agent.java/conf
vim scouter.conf
obj_name=WAS-01
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
Java Agent도 2) 과 동일합니다.
- obj_name : Scouter Client에 보여지는 java agent 이름
- net_collector_ip : Collector 서버의 IP를 입력합니다.
- net_collector_udp_port : Collector 서버에 연결할 udp 포트
- net_collector_tcp_port : Collector 서버에 연결할 tcp 포트
6) Tomcat 실행 파일 설정
Java Agent는 WAS 실행시 같이 실행되어야 합니다. 때문에 Tomcat 설정 파일에 scouter.agent를 인식할 수 있도록 명령행 옵션을 설정합니다.
vim /home/tomcat9/bin/catalina.sh
export SCOUTER_AGENT_DIR=/home/scouter/agent.java
export JAVA_OPTS="${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
export JAVA_OPTS="${JAVA_OPTS} -Dscouter.config:${SCOUTER_AGENT_DIR}/conf/scouter.conf"
export JAVA_OPTS="${JAVA_OPTS} -Dobj_name=WAS-01"
7) Tomcat 실행
8) Scouter Client 실행
Scouter Client 설치하기
모니터링하는 OS 환경에 맞는 scouter.client 파일을 받으면 됩니다.
접속 주소에는 모니터링 대상 서버의 IP(EC2의 경우 Public IPv4 주소)를 입력하고 ID/PW는 따로 설정하지 않았다면 동일하게 admin입니다.
Tomcat 연결까지 정상적으로 됐다면 아래와 같이 Tomcat 리스트가 보입니다. Xlog를 클릭하면 현재 서버의 작업 상태를 조회할 수 있게 됩니다.
참고자료