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와 동일하다.