스카우터를 사용하기 위해서는 우선 아래의 링크를 통하여 아키텍처와 어떻게 셋팅하는지 살펴보자!
5번까지 따라하시고 돌아오시면 됩니다. 꼭 돌아오세요..ㅋㅋ 참고 : 스카우터의 구성 start-scouter-server.sh / start-scouter-host.sh 위의 두개의 쉘을 통해 agent를 띄우면 아래와 같이 클라이언트에서 보이게 됩니다. 톰캣까지 붙여진다면 아래와 같이 보여지게 됩니다. 이제! 톰캣을 붙여봅시다! 1) 복사 우선은 demo-env1 디렉토리의 scouter > agent.java > scouter.agent.jar를 tomcat>lib 밑에 복사! 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 관련 설정을 넣어준다. 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~
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
* 다운로드가 완료되었으면 압축풀기를 진행한다. tar -zxvf scouter-v0.6.0.tar.gz
압축풀기가 끝나면 scouter라는 폴더가 생성된다. 이 곳으로 이동한다. * scouter 폴더로 이동
1.2. Tomcat 다운로드본 예시에서는 원활한 진행을 위하여 스카우터 퀵 데모에서 사용한 tomcat과 jmeter를 사용하도록 하겠다. * 데모 다운로드 wget https://github.com/scouter-project/scouter-demo/releases/download/v0.4.21/demo-env1.tar.gz
tar -zxvf demo-env1.tar.gz
우리가 필요한 파일은 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
1.3. Client 다운로드
실행 파일은 당연히 scouter.exe이다. 2. 환경설정# 이 아래는 옵션 설정이다. 따로 건들지 않아도 스카우터에선 알아서 default 값으로 진행해주기 때문에 너무 귀찮다면 스킵해도 문제는 없으나, 해주는 것을 권장한다. # 단, Java Agent 설정은 반드시 해줘야 한다. 2.1. Host Agent 설정* host 의 설정을 진행해주기 위하여 agent.host/conf로 이동한다. cd ~/scouter/agent.host/conf
* 내부에 있는 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
2.2 Java Agent 설정2.2.1. agent.java 설정
표시된 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%쯤 아래로 내리다 보면 친절하게 스카우터 옵션 부분을 표시해놓았다.
* 사진에서 보이는 ########## 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
* AGENT_HOME은 scouter.agent.jar 파일이 위치한 경로를 넣어주면 된다. 절대경로를 넣어줘야 한다. * 이후 톰캣을 실행시킨 뒤, 제대로 실행되는지 확인해본다.
pstree -ha 결과에 tomcat 프로세스가 없거나, ./shutdown.sh를 했을 때 에러가 나면 위의 설정과정이 틀린 것이다. 2.3. Server 설정* 서버 설정을 위해 server폴더로 이동한다.
* 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
* db_dir은 서버의 정보가 저장될 데이터베이스의 경로이다. * log_dir은 서버의 로그가 저장될 경로이다.(생각보다 많이 열어보게 될 것이다.) * net_udp_listen_port는 서버가 udp 연결을 받아들일 포트번호이다. * net_tcp_listen_port는 서버가 tcp 연결을 받아들일 포트번호이다. 자세한
설정은 아래의 블로그에 잘 나와있다. 3. 테스트 실행이제 모든 설정이 끝났으므로 실행을 시켜보도록 하겠다. 실행 순서는 크게 상관은 없으나 아래와 같이 해주는 것을 권장한다. 3.1. tomcat 실행* 톰캣이 설치된 폴더 내의 bin 폴더로 이동한 뒤, startup.sh를 실행해준다. cd ~/scouter/apache-tomcat-7.0.67/bin ./startup.sh * 이후 pstree -ha | grep tomcat를 통해 실행 여부를 확인한다.
3.2. host 실행
cd ~/scouter/agent.host ./host.sh
3.3. Server 실행* server 폴더로 이동하여 startup.sh를 실행시킨다. cd ~/scouter/server ./startup.sh * 이후 pstree -ha | grep boot.jar 을 통해 실행 여부를 확인한다. pstree -ha | grep boot.jar
3.4. Client 실행아까 다운받은 클라이언트 폴더로 들어가서 scouter.exe를 실행시킨다. 이후 로그인 창이 나오면 아래와 같이 입력한다.
접속에 성공하면 아래와 같은 화면을 볼 수 있다.
붉은색 원 안에 표시는 curl localhost:8080/jpetstore 명령어를 통해 톰캣 서버에 접속한 기록이 측정된 것이다. 이렇게 명령어를 노가다로 쳐서 확인하기에는 무리가 있다. 따라서 부하 테스트를 진행하기 위해 jmeter를 이용한다. 3.5. jmeter를 이용한 부하테스트 실시* scouter 폴더로 이동하여 ./start-jmeter.sh 명령어를 통해 부하 테스트를 실시한다. cd ~/scouter ./start-jmeter.sh
Client를 확인해보면 이전과는 확연히 다른 접속을 볼 수 있다.
* jmeter를 종료하려면 Ctrl + C를 누르면 된다. * 종료는 적당히 알아서 다 꺼주면 된다. 본 포스팅에서는 실행에 중점을 두었으므로 세부 데이터 분석은 다음 기회에 소개하도록 하겠다. 4. 만들어두면 좋은 파일들이 챕터는 단순히 귀차니즘이 만들어낸 산물이다. 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. 간단한 테스트만든 파일들을 간단히 테스트해보자.
tomcat -> host -> server 순으로 잘 실행됬음을 확인 가능
tomcat, host, server 모두 잘 실행됨
tomcat 종료 확인.(원래 host와 server는 종료 시 별 표식이 없다.)
tomcat, host, server 모두 종료되었음이 확인 가능 5. 마치며...여기까지 해서 Scouter APM의 설치부터 실행 및 테스트까지 시연해 보았다. 본 포스팅에서 다루지 못한 추가적인 설정법이나 데이터 활용법등을 잘 정리해놓은 블로그를 소개하며 글을 맺도록 하겠다. |