티스토리 뷰

728x90
반응형

 포스팅은 오픈소스 APM인 Scouter 설치 및 연동하여 활용하는 가이드입니다.


최근 화두가 되고 있는 아니 이미 반열에 올라서 있는 오픈소스의 가치를 강조하는 것은 굳이 중요하지 않은 시대로 접어 들었습니다.

OS/WEB/WAS/DB뿐만 아니라 APM도 역시 다양한 오픈소스가 공개되고 활용되고 있으며, 그 중 Scouter를 소개하는 시간을 갖고자 합니다.


1. 오픈소스 apm

apm이란 Application Performance Management로써 Application의 성능 요소를 모니터링하고 관리하며, 튜닝 포인트를 가이드하는 운영 관점에 반드시 필요한 소프트웨어 중 하나라고 할 수 있습니다.

오픈소스 apm이라고 하면 크게 Scouter, Prometheus, InfluxDB, Fluentd, Grafana, Munin, Zabbix, Sensu등이 넓게 사용되고 있습니다.

각 오픈소스 apm 마다 고유의 특징을 갖고 있으며, 적제 적소에 사용할 경우 비용 절감 및 운영 효율성을 높일 수 있습니다.

2. Scouter

Scouter는 크게 Agent, Collector, Client 모듈로 구분됩니다.

 Modules

 설명

Server (Collector)

Agent가 전송한 데이터 수집/처리

Host Agent

OS의 CPU, Memory, Disk 등의 성능 정보 전송

Java Agent

실시간 서비스 성능 정보와 Heap Memory, Thread 등의 Java 성능정보

Client (Viewer)

수집된 성능 정보를 확인하기 위한 Client 프로그램 

Agent가 전송하는 성능 정보를 기반으로 Collector(Server Module)는 수집하여 저장하며, Clinet는 이 성능 정보를 요청하여 Viewer에 출력하는 형태로 이루어져 있습니다.

Agent가 전송하는 성능 정보란 일반적으로 Process CPU, Heap Memory, GC, Datasource ConnectionPool, ThreadPool, Request Time, Response Time, TPS등 다양한 정보를 의미하며, 본인이 원하는 정보를 선택하여 모니터링 할 수 있어야 합니다.

또한 현재 Working 중인 Thread의 Stack Trace를 확인하고 Transaction에 기반한 Work Flow를 확인할 수 있어야 합니다.

APM의 DashBoard 화면 중 분포도 차트(XLog)를 통해 Request 패턴과 long time transaction을 판단하는 것은 apm을 활용하는 그 시작점이 됩니다.

또한 모든 Request를 감지하고 모니터링 할 경우 대량의 트래픽에 대한 무의미한 대량의 데이터가 수집되기 때문에 상세 프로파일링을 수행하여 서비스 별, 특정 메소드 별, 수행 쿼리 별로 지정 구분하여 모니터링하는 방법 역시 지원해야 합니다.

3. Scouter 설치 및 연동

- Scouter 다운로드


https://github.com/scouter-project/scouter/releases/


다운로드 파일은 다음과 같습니다.



scouter-all-2.5.1.tar.gz : 모니터링 할 server side에 설치할 모듈 (Collector Server, Host Agent, Java Agent, 기동 종료 스크립트 등)

scouter.client.product-linux.gtk.x86_64.tar.gz : client viewer로 linux 모듈

scouter.client.product-macosx.cocoa.x86_64.tar.gz : client viewer로 macosx 모듈

scouter.client.product-product-win32.x86_64.tar.gz : client viewer로 windows 모듈


일반적으로 linux에 설치된 was server를 windows에서 모니터링 할 경우 scouter-all-2.5.1.tar.gz와 scouter.client.product-product-win32.x86_64.tar.gz를 다운로드 받으시면 됩니다.


- 압축 해제 및 디렉토리 확인

먼저 scouter-all-2.5.1.tar.gz 파일을 모니터링 할 was server에 업로드 후 압축을 해제 합니다.



위와 같이 server 모듈, agent.host 모듈, agent.java 모듈 디렉토리 외에 agent.batch 모듈과 webapp 디렉토리가 압축해제 된다면 정상적인 모듈을 다운로드 받은 것입니다.

다음으로 scouter.client.product-product-win32.x86_64.tar.gz 클라이언트 모듈 압축을 해제 합니다.



위와 같이 모니터링 바이너리인 scouter.exe 파일 이외에 configuration, plugins 등을 확인할 수 있습니다.


- Process 기동

먼저 scouter server 모듈을 기동합니다.



scouter 하위 디렉토리인 server 디렉토리에 들어가면 startup.sh script가 기본으로 생성되어 있습니다.

내용을 살펴보면


#!/usr/bin/env bash


nohup java -Xmx512m -classpath ./scouter-server-boot.jar scouter.boot.Boot ./lib > nohup.out &

sleep 1

tail -100 nohup.out


java process를 scouter.boot.Boot 클래스로 기동하는 간단한 스크립트입니다.

정상 기동되면 위와 같이 SCOUTER 기동 메시지가 출력됩니다.


다음으로 Client Viewer를 기동해 보도록 하겠습니다.




Scouter를 기동하면 위와 같이 로고와 함께 로그인하기 위한 창이 팝업됩니다.

Server Address : ServerIP:6100 (6100 Port는 Scouter의 Default Port입니다.)

ID : admin / Password : admin (Default ID / Password입니다.)

로그인이 완료되면 다음과 같은 Scouter 창을 확인할 수 있습니다.



기본으로 Scouter에 내장되어 있는 Tomcat 모니터링 화면이 출력되며 창은 모두 변경가능합니다.

지금까지 Data를 수집할 Collector Server와 Client Viewer를 기동하였습니다.


다음으로 Host Agent와 Java Agent를 기동하여 모니터링을 수행해 보도록 하겠습니다.

먼저 Host Agent를 기동해 보겠습니다.



Collector Server 기동과 같이 Scouter 로고와 함께 기동되는 것을 확인할 수 있습니다.



728x90
반응형