1. 구성 요소

Scouter는 일반 공개 버전과 좀 더 많은 기능과 기술 지원이 가능한 Enterprise 버전이 있는데 일반 공개 버전을 알아보자. 다음 세 가지 요소로 구성되어 있다. 

  • Scouter Agent : 각 Tomcat 상에서 성능 정보를 취합하기 위한 에이전트
  • Scouter Server : 각 Tomcat이 취합한 성능 정보를 받아서 관리하는 서버
  • Scouter Client : 클라이언트(PC)에서 성능 정보를 가지고 있는 scouter 서버에 접속하여 성능 정보를 모니터링하기 위한 도구

 


2. 설치

각 요소 별 설치 파일은 github의 Scouter 페이지에서 다운로드 할 수 있다.

가장 먼저 Agent 파일인 scouter.agent.tar.gz를 다운로드 받아 압축을 풀면 scouter/agent 디렉터리 하위에 scouter.agent.jar 파일이 생긴다. 이 파일을 $CATALINA_HOME/lib 혹은 $CATALINA_BASE/lib 디렉터리 하위에 복사한다. 

$ ls -l scouter*
-rw-r--r-- 1 tomcat tomcat 1077333 Aug  2 11:59 scouter.agent.jar

그리고 CATALINA_OPTS에 scouter.agent.jar 파일의 javaagent 설정을 추가한다.

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

Tomcat을 기동하면 Scouter 로고와 관련 로그를 가장 먼저 확인할 수 있다.

  ____                  _
 / ___|  ___ ___  _   _| |_ ___ _ __
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |
 |____/ \___\___/ \__,_|\__\___|_|
 Open Source S/W Performance Monitoring
 Scouter version 0.2.6 20150801

20150802 11:15:08 [SCOUTER] loaded by system classloader
20150802 11:15:12 [SCOUTER] jar:file:/app/apache-tomcat-7.0.64/lib/scouter.agent.jar
20150802 11:15:12 [SCOUTER] Version 0.2.6 20150801
20150802 11:15:13 [SCOUTER] objType:tomcat
20150802 11:15:13 [SCOUTER] objName:/TOMCATSVR11/tomcat1
20150802 11:15:13 [A115] java version : 1.7.0_80
20150802 11:15:13 [A113] Counter Collector Started (#10)
20150802 11:15:13 [SCOUTER] Configure -Dscouter.config=./scouter.conf
20150802 11:15:13 [A100] agent boot seed=xgejnj44va

다음은 Server 설정이다. scouter.server.tar.gz 파일을 다운로드 받아 압축을 풀면 scouter/server 디렉터리와 파일들이 생긴다.

$ ls -l
total 36
-rw-r--r-- 1 tomcat tomcat 2277 Aug  2 12:16 boot.jar
drwxr-xr-x 2 tomcat tomcat 4096 Aug  2 12:16 conf
drwxr-xr-x 2 tomcat tomcat 4096 Aug  2 12:16 lib
-rw-r--r-- 1 tomcat tomcat   68 Aug  2 12:16 startcon.bat
-rw-r--r-- 1 tomcat tomcat   68 Aug  2 12:16 startcon.sh
-rw-r--r-- 1 tomcat tomcat   59 Aug  2 12:16 startup.bat
-rw-r--r-- 1 tomcat tomcat   59 Aug  2 12:16 startup.sh
-rw-r--r-- 1 tomcat tomcat   13 Aug  2 12:16 stop.bat
-rw-r--r-- 1 tomcat tomcat   15 Aug  2 12:16 stop.sh

startup.sh, stop.sh 파일을 이용하여 기동, 중지할 수 있다. startup.sh 파일을 실행하여 scouter Server를 기동해 보자. 만일 실행 시 Permission denied 오류가 발생한다면 실행 권한을 부여한다.

$ ./startup.sh
  ____                  _
 / ___|  ___ ___  _   _| |_ ___ _ __
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |
 |____/ \___\___/ \__,_|\__\___|_|
 Open Source S/W Performance Monitoring
 Scouter version 0.2.6 20150801

System JRE version : 1.7.0_80

scouter Server는 background로 실행되지 않는다. 만약 background로 실행하고 싶다면 nohup, background(&)를 포함하도록 기동 스크립트를 수정한다.

Agent와 Server까지 구성되었다. 마지막으로 Client를 설치하여 Server와 연결한다. OS X 기준으로 scouter.client.product-macosx.cocoa.x86_64.tar.gz 파일을 다운로드 받아 압축을 해제하면 scouter 실행 파일이 생긴다.

로그인 창에는 Scouter Server 정보와 계정 정보를 입력한다. Scouter Server 기본 포트는 6100이고, 기본 계정과 패스워드는 모두 admin이다.

이제 트랜잭션 별 모니터링을 할 수 있다. 우측 XLog의 각 점은 1개 트랜잭션을 나타낸다. X축은 타임라인, Y축은 처리시간이다.

 


3. hook_service_patterns

HTTP 외에 독자적으로 수행되는 응용 프로그램, 즉 standalone 자바 프로그램을 모니터링할 때 사용한다.

hook_service_patterns=io.sarc.viktor.svc.start

 


4. hook_service_patterns

메소드 프로파일링 기능이다. 설정 방법은 hook_service_patterns와 동일하다.