티스토리 뷰

EtC

Open Source APM Scouter install on linux

freecatz 2022. 10. 7. 16:00

 

APM = Application Performance Management 

 

스카우터 프로젝트 깃헙 : https://github.com/scouter-project/scouter/releases

 

 

이미지 : https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Quick-Start.md

 

1. 스카우터 수집 서버(Collector Server)

- OS : CentOS Linux release 7.9.2009 (Core) 64Bit

- CPU : Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz / 4Core

- RAM : 16GB

- DISK : 2Tbyte

- JDK : openjdk 11.0.2 64Bit

- Scouter : v2.17.1

- IP : 192.168.0.1

 

2. 스카우터 모니터링 대상 서버

- OS : CentOS Linux release 7.9.2009 (Core) 64Bit

- CPU : Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz / 20Core

- RAM : 64GB

- DISK : 1Tbyte

- JDK : openjdk 1.8.0 64Bit

- Scouter : v2.17.1

- IP : 192.168.0.2

 

 

3. 스카우터 패키지의 내용물

이 문서에서는 위의 그림에서 scouter-all-2.17.1.tar.gz 파일을 기준으로 수집서버, 호스트, 에이전트의 설치를 진행할 것이다.

 

* 참고 : scouter.client.product-<OS NAME>.x86_64.tar.gz 패키지의 경우 스카우터 GUI 클라이언트.

 

 

tar.gz 으로 압축된 파일을 풀어 보면, 위의 그림과 같이 여러 디렉토리가 보일 것이다.

이 문서에서는 agent.host,  agent.java. server 만 사용 할 것 이다.

 

agent.batch 무엇인지 모름
agent.host 모니터링 대상 서버의 리소스(CPU, RAM, DISK) 사용 관련 내용을 수집 서버에 전송 하는 에이전트
agent.java java 로 작성된 프로그램의 사용량 관련된 내용을 수집 서버에 전송 하는 에이전트. 이 문서에서는 tomcat 을 모니터링 하기 위해 사용 할 것이다.
agent.java_6_7 java 1.6 ~ 1.7 로 작성된 프로그램의 사용량 관련된 내용을 수집 서버에 전송 하는 에이전트 로 보인다.
server Scouter 수집 서버
webapp 무엇인지 모름

 

자세한 사항은 스카우터 깃헙 페이지에서 정보를 얻을 수 있다.

 

수집 서버에는 server 와 agent.host 를 설치 한다.

모니터링 대상 서버에는 agent.host, agent.java 를 설치 한다.

 

 

4. 스카우터 수집 서버(Collector Server) 에 설치 및 설정 할 것 들

4-1. openjdk 설치

scouter@freecatz-mon:~$ whoami

scouter

scouter@freecatz-mon:~$ pwd

/home/scouter

scouter@freecatz-mon:~$ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz

... 불필요한 내용이라 중략 ...

scouter@freecatz-mon:~$ ls

openjdk-11.0.2_linux-x64_bin.tar.gz

scouter@freecatz-mon:~$ tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz 

scouter@freecatz-mon:~$ rm -rf openjdk-11.0.2_linux-x64_bin.tar.gz

scouter@freecatz-mon:~$ ls
jdk-11.0.2

scouter@freecatz-mon:~$ mv jdk-11.0.2 openjdk-11.0.2

scouter@freecatz-mon:~$ vi ~/.bash_profile 

...  중략 ...
export JAVA_HOME='~/openjdk-11.0.2'
PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
export PATH

scouter@freecatz-mon:~$ source ~/.bash_profile

scouter@freecatz-mon:~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

 

4-2. 스카우터 수집 서버 설치

 scouter@freecatz-mon:~$ wget https://github.com/scouter-project/scouter/releases/download/v2.17.1/scouter-all-2.17.1.tar.gz

 scouter@freecatz-mon:~$ ls
openjdk-11.0.2  scouter-all-2.17.1.tar.gz

scouter@freecatz-mon:~$ tar zxf scouter-all-2.17.1.tar.gz

scouter@freecatz-mon:~$ rm -rf scouter-all-2.17.1.tar.gz

scouter@freecatz-mon:~$ mv scouter scouter-2.17.1

scouter@freecatz-mon:~$ cd scouter-2.17.1

scouter@freecatz-web:~$ vi ./conf/scouter.conf

#Server ID
server_id=Scouter-Collector-Server

# Agent Control and Service Port(Default : TCP 6100)
net_tcp_listen_port=6100

# UDP Receive Port(Default : 6100)
net_udp_listen_port=6100

# DB directory(Default : ./database)
db_dir=./database

# Log directory(Default : ./logs)
log_dir=./logs

* 참고 : 수집 서버의 설정은 대부분 기본값으로 설정 되어 있어 scouter.conf 파일에 기재 되어 있지 않아도 구동 시키는데 문제는 없다고 한다.

 

scouter@freecatz-mon:~$ ./startup.sh 
nohup: redirecting stderr to stdout
  ____                  _            
 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.17.1

scouter@freecatz-mon:~$ 

 

이렇게 해서 수집 서버의 설치 및 설정은 끝났다.

 

4-3. 스카우터 수집 서버 자원 모니터링

수집 서버의 경우에도 리소스를 모니터링 해야할 필요가 있다. 그러기 위해서는 수집 서버에도 agent.host 를 실행 하면 된다. 이전에 다운로드 받았던 scouter-all-2.17.1.tar.gz 패키지안에 모두 들어 있다.

 

scouter@freecatz-mon:~$ pwd

/home/scouter/scouter-2.17.1

scouter@freecatz-mon:~$ ls
agent.batch  agent.host  agent.java  agent.java_6_7  server  webapp

scouter@freecatz-mon:~$ cd agent.host

scouter@freecatz-mon:~$ vi conf/scouter.conf

### scouter host configruation sample
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
cpu_warning_pct=80
cpu_fatal_pct=85
cpu_check_period_ms=60000
cpu_fatal_history=3
cpu_alert_interval_ms=300000
disk_warning_pct=88
disk_fatal_pct=92

obj_name=Scouter-Server-Host

대부분 기본값을 그대로 주석 해제만 하였고, obj_name을 추가적으로 설정 하였다.

 

scouter@freecatz-mon:~$ ./host.sh 
nohup: redirecting stderr to stdout
  ____                  _            
 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.17.1
 
Configure -Dscouter.config=./conf/scouter.conf
Scouter Host Agent Version 2.17.1 2022-03-27 04:35 GMT
scouter@freecatz-mon:~$ 

 

간단히 보면, 수집 서버에 agent.host 를 실행 한 것이다. 다른 모니터링 대상의 서버에도 agent.host , agent.java 의 설정 후 실행 하면 되는 간단한 구조로 보인다.

 

 

5. 중간 점검 : 스카우터 수집 서버에 실행한 agent.host 확인

이제 scouter GUI client  를 다운로드 받아야 한다. 스카우터 깃헙 페이지에서 자신의 운영체제에 맞는 패키지를 내려 받아 압축 해제 하고 실행 하면 된다.

 

 

 

서버의 주소는 '스카우터 수집 서버' 의 아이피를 입력 한다.

초기 아이디는  admin , 비밀번호는 admin 이로 되어 있으며, 로그인 후 변경이 가능 하다고 한다.

초기 아이디와 비밀번호를 입력 하고 "OK" 버튼을 누르면...

 

 

agent.host 에서 스카우터 수집 서버로 보내온 자료들이 보인다. 시스템 사용률이 낮아 그래프가 심심해 보여, stress 명령어를 이용 하여 부하를 조금 만들어 모니터링 하였다.

 

6.스카우터 모니터링 대상 서버 에 설치 및 설정 할 것 들

회사에서 운영중인 톰켓 서버와 호스트 시스템 리소스를 모니터링 하기 위해 agent.host , agent.java 의 설치 및 설정을 할 것이다. agent.host 는 이전 단계에서 수집 서버에서 설정한  것과 동일 하고, 수집 서버의 IP로만 바꾸어 주면 된다.

agent.java 의 경우 운영중인 톰켓 서버의 catalina.sh 파일에  JAVA_OPTS 에 agent를 추가 하면 되는 비교적 간단 심플한 설정이다.

 

 

6.1 톰켓 관련 설정

www@freecatz-web:~$ vi /home/www/scouter-2.17.1/agent.java/conf/scouter.conf

net_collector_ip=192.168.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100

trace_http_client_ip_header_key=X-Forwarded-For

obj_host_name=HOST-Scouter-Collector-Server
obj_name=TOMCAT7-freecatz.pe.kr

www@freecatz-web:~$ apache-tomcat-7.0.100/bin/shutdown.sh
www@freecatz-web:~$ vi ~/apache-tomcat-7.0.100/bin/catalina.sh

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=development -Xms1024m -Xmx8192m -javaagent:/home/www/scouter-2.17.1/agent.java/scouter-agent-java-2.17.1.jar -Dscouter.config=/home/www/scouter-2.17.1/agent.java/conf/scouter.conf"

www@freecatz-web:~$ ~/apache-tomcat-7.0.100/bin/startup.sh 
Using CATALINA_BASE:   /home/www/apache-tomcat-7.0.100
Using CATALINA_HOME:   /home/www/apache-tomcat-7.0.100
Using CATALINA_TMPDIR: /home/www/apache-tomcat-7.0.100/temp
Using JRE_HOME:        /home/www/jdk1.8.0_333
Using CLASSPATH:       /home/www/apache-tomcat-7.0.100/bin/bootstrap.jar:/home/www/apache-tomcat-7.0.100/bin/tomcat-juli.jar
www@freecatz-web:~$ ps -ef | grep -i tomcat | grep -v grep
www      27885     1 99 10:53 pts/0    00:01:30 /home/www/jdk1.8.0_333/bin/java -Djava.util.logging.config.file=/home/www/apache-tomcat-7.0.100/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dspring.profiles.active=test -Xms512m -Xmx8192m -javaagent:/home/www/scouter-2.17.1/agent.java/scouter-agent-java-2.17.1.jar -Dscouter.config=/home/www/scouter-2.17.1/agent.java/conf/scouter.conf -Djava.endorsed.dirs=/home/www/apache-tomcat-7.0.100/endorsed -classpath /home/www/apache-tomcat-7.0.100/bin/bootstrap.jar:/home/www/apache-tomcat-7.0.100/bin/tomcat-juli.jar -Dcatalina.base=/home/www/apache-tomcat-7.0.100 -Dcatalina.home=/home/www/apache-tomcat-7.0.100 -Djava.io.tmpdir=/home/www/apache-tomcat-7.0.100/temp org.apache.catalina.startup.Bootstrap start
www@freecatz-web:~$


6.2 스프링 부트 관련 설정

agent@freecatz-web:~$ vi /home/agent/scouter-2.17.1/agent.java/conf/file_sync_agent.conf

net_collector_ip=192.168.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100

trace_http_client_ip_header_key=X-Forwarded-For

obj_host_name=HOST-Scouter-Collector-Server
obj_name=AGENT-file_sync_agent

agent@freecatz-web:~$ java -javaagent:/home/agent/scouter-2.17.1/agent.java/scouter.agent.jar -Dscouter.config=/home/agent/scouter-2.17.1/agent.java/conf/file_sync_agent.conf -jar /home/agent/file_sync_agent.jar 
agent@freecatz-web:~$ ps -ef | grep -i scouter | grep -v grep
agent     25952     1  1 Oct18 ?        00:12:24 java -javaagent:/home/agent/scouter-2.17.1/agent.java/scouter.agent.jar -Dscouter.config=/home/agent/scouter-2.17.1/agent.java/conf/file_sync_agent.conf -jar /home/agent/file_sync_agent.jar 

agent@freecatz-web:~$ 

 

* 참고 : 스프링 부트로 작성된 애플리케이션에 스카우트를 적용 하기 위해서는 -jar 옵션 이전에 스카우트 관련 옵션을 넣어 주도록 한다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함