스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

스카우터를 사용하기 위해서는 우선 아래의 링크를 통하여 아키텍처와 어떻게 셋팅하는지 살펴보자!


https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Quick-Start_kr.md

5번까지 따라하시고 돌아오시면 됩니다. 꼭 돌아오세요..ㅋㅋ

참고 : 스카우터의 구성

start-scouter-server.sh / start-scouter-host.sh

위의 두개의 쉘을 통해 agent를 띄우면 아래와 같이 클라이언트에서 보이게 됩니다.

톰캣까지 붙여진다면 아래와 같이 보여지게 됩니다.

이제! 톰캣을 붙여봅시다!

1) 복사

우선은 demo-env1 디렉토리의 scouter > agent.java > scouter.agent.jar를 tomcat>lib 밑에 복사!

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

ex) cp scouter.agent.jar ../../../../tomcat/lib/

2) 설정

lineupApmTomcat.conf 파일은 tomcat>conf에서 vi로 만들어줍니다.

내용

net_collector_ip=127.0.0.1

trace_interservice_enabled=true

obj_name=lineupStageWeb01

hook_method_patterns=org.mybatis.jpetstore.*.*

tomcat>bin> catalina.sh 에 아래처럼 scouter 관련 설정을 넣어준다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

JAVA_OPTS="$JAVA_OPTS -Dscouter.config=/home/deploy/program/tomcat/conf/lineupApmTomcat.conf"

CATALINA_OPTS="$CATALINA_OPTS -javaagent:$CATALINA_BASE/lib/scouter.agent.jar"

설정이 끝이 났으면 다시 scouter demo-env1 디렉토리로 가서 start-tomcat.sh / stop-tomcat.sh 를 vi 로 

열어서 현재 톰캣의 path로 맞춰준다.

그런 뒤에 기동한다! ./start-tomcat.sh

3) 확인

클라이언트를 통해 정상 작동하는것을 확인할 수가 있습니다. good~

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

1. Scouter APM 설치부터 실행까지

1. Scouter 다운로드

1.1. Agent 및 Server 다운로드

wget https://github.com/scouter-project/scouter/releases/download/v0.6.0/scouter-v0.6.0.tar.gz

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* 다운로드가 완료되었으면 압축풀기를 진행한다.

tar -zxvf scouter-v0.6.0.tar.gz

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

압축풀기가 끝나면 scouter라는 폴더가 생성된다. 이 곳으로 이동한다.

* scouter 폴더로 이동

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

1.2. Tomcat 다운로드

본 예시에서는 원활한 진행을 위하여 스카우터 퀵 데모에서 사용한 tomcat과 jmeter를 사용하도록 하겠다.
tomcat은 알다시피 웹 컨테이너고, jmeter은 tomcat에 부하테스트를 진행할 프로그램이다.

* 데모 다운로드

wget https://github.com/scouter-project/scouter-demo/releases/download/v0.4.21/demo-env1.tar.gz

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

tar -zxvf demo-env1.tar.gz

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

우리가 필요한 파일은 demo-env1폴더 내부의 apache-tomcat-7.0.67/ 폴더와, jmeter/ 폴더, start-jmeter.sh 파일총 3개이다.

* 이 3개를 scouter폴더로 옮겨준다.

mv apache-tomcat-7.0.67/ jmeter/ start-jmeter.sh ~/scouter

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

1.3. Client 다운로드

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

실행 파일은 당연히 scouter.exe이다.
지금 당장은 실행시켜봤자 아무 의미가 없으므로 그냥 넘어간다.

2. 환경설정

# 이 아래는 옵션 설정이다. 따로 건들지 않아도 스카우터에선 알아서 default 값으로 진행해주기 때문에 너무 귀찮다면 스킵해도 문제는 없으나, 해주는 것을 권장한다.
본 예시에서는 진행하도록 하겠다.

# 단, Java Agent 설정은 반드시 해줘야 한다.

2.1. Host Agent 설정

* host 의 설정을 진행해주기 위하여 agent.host/conf로 이동한다.

cd ~/scouter/agent.host/conf

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* 내부에 있는 scouter.conf를 열어서 편집한다.

# Server IP(default:127.0.0.1) net_collector_ip = 127.0.0.1 # Port Setting(default:6100) net_collector_udp_port=6100 net_collecotr_tcp_port=6100

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

2.2 Java Agent 설정

2.2.1. agent.java 설정

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

표시된 2개의 폴더 & 파일이 반드시 있어야 한다.

여기서 conf/ 폴더에는 환경설정 파일이 담길 것이고, scouter.agent.jar은 톰캣이 실행되면서 함께 실행될 jar 파일이다.
두개가 모두 있는지 반드시 확인한다.

* 이후 conf 폴더로 이동하여 환경설정 파일을 만들어준다.

# Scouter Server IP Address (Default : 127.0.0.1) net_collector_ip=127.0.0.1 # Scouter Server Port (Default : 6100) net_collector_udp_port=6100 net_collector_tcp_port=6100 # Scouter Name(Default : tomcat1) obj_name=MyTomcat

세부 설명들은 host agent와 동일하므로 생략하도록 하겠다.

2.2.2. Tomcat 설정

이 부분이 제일 중요하다. 본인은 이 설정을 제대로 못해서 3일동안 고생했었다.

이 설정을 왜 해주냐 하면, 톰캣이 실행되면서, 본인의 정보를 Server로 보낸다는 것을 명시하기 위해 필요하다.

* apache 폴더 내의 bin폴더로 이동하여 catalina.sh를 수정한다.

cd apache-tomcat-7.0.67/bin/

파일을 열었다면, 40%쯤 아래로 내리다 보면 친절하게 스카우터 옵션 부분을 표시해놓았다.
(대충 240 번째 줄 쯤 된다)

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* 사진에서 보이는 ########## SCOUTER OPTIONS ######### 내부를 아래와 같이 수정해준다.

export AGENT_HOME="/home/본인의계정/scouter/agent.java/" # the location of scouter.agent.jar if [ "$1" = "start" -o "$1" = "run" ]; then export JAVA_OPTS="$JAVA_OPTS -javaagent:$AGENT_HOME/scouter.agent.jar" export JAVA_OPTS="$JAVA_OPTS -Dscouter.config=$AGENT_HOME/conf/scouter.conf" fi

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* AGENT_HOME은 scouter.agent.jar 파일이 위치한 경로를 넣어주면 된다. 절대경로를 넣어줘야 한다.
* javaagent: 뒤에는 scouter.agent.jar 파일의 풀 경로를 넣어주면 된다.
본 예시에서는 AGENT_HOME이 해당 경로이므로 이를 넣어주었다.
결국 $AGENT_HOME/scouter.agent.jar/home/사용자계정/scouter/agent.java/scouter.agent.jar 과 동일한 것이다.
* Dscouter.config= 뒤에는 설정파일의 풀 경로를 넣어주면 된다.

* 이후 톰캣을 실행시킨 뒤, 제대로 실행되는지 확인해본다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

pstree -ha 결과에 tomcat 프로세스가 없거나, ./shutdown.sh를 했을 때 에러가 나면 위의 설정과정이 틀린 것이다.

2.3. Server 설정

* 서버 설정을 위해 server폴더로 이동한다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* scouter.conf 파일을 열어서 서버 설정을 진행한다.

# database directory db_dir=/user/home/scouter/server/database # log directory log_dir=/user/home/scouter/server/logs # udp port net_udp_listen_port=6100 # tcp port net_tcp_listen_port=6100

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* db_dir은 서버의 정보가 저장될 데이터베이스의 경로이다.
기본값은 /user/home/scouter/server/database 이다.

* log_dir은 서버의 로그가 저장될 경로이다.(생각보다 많이 열어보게 될 것이다.)
기본값은 /user/home/scouter/server/logs 이다.

* net_udp_listen_port는 서버가 udp 연결을 받아들일 포트번호이다.
기본값은 6100이다.

* net_tcp_listen_port는 서버가 tcp 연결을 받아들일 포트번호이다.
기본값은 6100이다.

자세한 설정은 아래의 블로그에 잘 나와있다.
http://www.popit.kr/scouter-open-source-apm-config/

3. 테스트 실행

이제 모든 설정이 끝났으므로 실행을 시켜보도록 하겠다.

실행 순서는 크게 상관은 없으나 아래와 같이 해주는 것을 권장한다.
1. tomcat 실행
2. host agent 실행
3. server 실행
4. client 실행
5. jmeter로 부하 테스트

3.1. tomcat 실행

* 톰캣이 설치된 폴더 내의 bin 폴더로 이동한 뒤, startup.sh를 실행해준다.

cd ~/scouter/apache-tomcat-7.0.67/bin ./startup.sh

* 이후 pstree -ha | grep tomcat를 통해 실행 여부를 확인한다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

3.2. host 실행


* agent.host 폴더로 이동하여 host.sh를 실행시킨다.

cd ~/scouter/agent.host ./host.sh


* 이후 pstree -ha | grep host 를 통해 실행 여부를 확인한다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

3.3. Server 실행

* server 폴더로 이동하여 startup.sh를 실행시킨다.

cd ~/scouter/server ./startup.sh

* 이후 pstree -ha | grep boot.jar 을 통해 실행 여부를 확인한다.

pstree -ha | grep boot.jar

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

3.4. Client 실행

아까 다운받은 클라이언트 폴더로 들어가서 scouter.exe를 실행시킨다.

이후 로그인 창이 나오면 아래와 같이 입력한다.
Server: 서버의 주소와 포트를 입력한다. 본 예제에서는 localhost이므로 127.0.0.1이고. 6100포트를 사용하므로 최종적으로 127.0.0.1:6100 과 같이 입력하면 된다.
ID/PW는 초기값인 admin/admin을 입력하면 된다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

접속에 성공하면 아래와 같은 화면을 볼 수 있다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

붉은색 원 안에 표시는 curl localhost:8080/jpetstore 명령어를 통해 톰캣 서버에 접속한 기록이 측정된 것이다.
우측 창인 XLog를 잘 보면 아주 조그맣게 네모 칸이 찍혀있는 것을 볼 수 있다.
이 작은 네모 1개가 1개의 접속요청을 뜻한다.(x축은 요청 시간, y축은 응답 시간)

이렇게 명령어를 노가다로 쳐서 확인하기에는 무리가 있다.

따라서 부하 테스트를 진행하기 위해 jmeter를 이용한다.

3.5. jmeter를 이용한 부하테스트 실시

* scouter 폴더로 이동하여 ./start-jmeter.sh 명령어를 통해 부하 테스트를 실시한다.

cd ~/scouter ./start-jmeter.sh

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

Client를 확인해보면 이전과는 확연히 다른 접속을 볼 수 있다.

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

* jmeter를 종료하려면 Ctrl + C를 누르면 된다.

* 종료는 적당히 알아서 다 꺼주면 된다.
host 종료: scouter/agent.host/ 내부의 ./stop.sh 실행
tomcat 종료: apache.../bin 내부의 ./shutdown.sh 실행
server 종료: scouter/server/ 내부의 stop.sh 실행
client 종료: 그냥 끄면 됨

본 포스팅에서는 실행에 중점을 두었으므로 세부 데이터 분석은 다음 기회에 소개하도록 하겠다.

4. 만들어두면 좋은 파일들

이 챕터는 단순히 귀차니즘이 만들어낸 산물이다.
매번 tomcat실행 -> host실행 -> server 실행, 종료를 하기 귀찮으므로 allstart, allstop 파일을 만들어서 한번에 실행, 한번에 종료를 하게 해준다.

4.1. allstart.sh 생성

* scouter 폴더 내부에 allstart.sh를 생성해준다.

cd ~/scouter vi allstart.sh

# !/bin/bash cd ~/scouter/apache-tomcat-7.0.67/bin/ ./startup.sh cd ../../agent.host/ ./host.sh cd ../server/ ./startup.sh cd ..

내용은 별거 없다. 그냥 내가 직접 치면서 돌아다닐 경로를 적어놓고 컴퓨터가 알아서 실행하도록 해놓은 것 뿐이다.

* 마지막으로 실행가능하게 권한을 바꿔준다.

4.2. allstop.sh 생성

* scouter 폴더 내부에 allstop.sh를 생성한다.

# !/bin/bash cd ~/scouter/apache-tomcat-7.0.67/bin/ ./shutdown.sh cd ../../agent.host/ ./stop.sh cd ../server/ ./stop.sh cd ../

역시나 이 마찬가지로 종료 명령어들을 순차적으로 적어준 것에 불과하다.

* 마지막으로 실행가능하게 권한을 바꿔준다.

4.3. 간단한 테스트

만든 파일들을 간단히 테스트해보자.
* allstart 실행

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

tomcat -> host -> server 순으로 잘 실행됬음을 확인 가능

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

tomcat, host, server 모두 잘 실행됨

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

tomcat 종료 확인.(원래 host와 server는 종료 시 별 표식이 없다.)

스카우터 모니터링 사용법 - seukauteo moniteoling sayongbeob

tomcat, host, server 모두 종료되었음이 확인 가능

5. 마치며...

여기까지 해서 Scouter APM의 설치부터 실행 및 테스트까지 시연해 보았다.

본 포스팅에서 다루지 못한 추가적인 설정법이나 데이터 활용법등을 잘 정리해놓은 블로그를 소개하며 글을 맺도록 하겠다.