티스토리 뷰
Scouter는 JVM을 모니터링 할 수 있는 오픈소스 성능 모니터링 툴로 기본 기능을 사용하기에는 정말 좋으며 tomcat은 상세하게 모니터링 할 수 있는 기능을 제공한다.
Scouter는 Agent, Server, Client 세 부분으로 나눠진다.
- Agent : jar 로 제공되며 모니터링을 할 JVM에 포함시켜서 같이 기동된다.
- Server : Agent가 보내는 데이터를 수집하며 Client에게 데이터를 보내준다.
- Client : Server에서 받은 정보를 화면에 보여준다.
- Host : 서버의 cpu, memory, disk, network 등의 정보를 수집한다.
모든 소스는 github에 있고 소스를 받아 빌드를 해볼 수 있고 release를 다운 받아 설치하여 사용할 수있다.
release 다운로드 경로
https://github.com/scouter-project/scouter/releases
Scouter
정보를 수집하는 Scouter Server(각 Application이 보내는 정보를 수집하는 Collector)를 설치해야하는데 테스트 해야하는 Application과 같은 서버에 Scouter Server를 설치했다.
기본 설정을 사용하여도 무방하다.
(다운로드 : https://github.com/scouter-project/scouter/releases)
(https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Quick-Start_kr.md)
Server
=============conf/scouter.conf============
#Agent Control and Service Port Default : 6100
net_tcp_listen_port=6100
#UDP Receive Port(Default : 6100)
net_udp_listen_port=6100
#DB directory(Default : ./database)
db_dir=./database
#Log directory(Default : ./logs)
log_dir=./logs
=======================================
conf 설정 후 startup.sh로 Server를 기동해 놓는다.
Agent
그리고 모니터링 대상의 JVM이 설치돼 있는 폴더로 가서 socuter의 설정파일을 작성한다.
===============agent_scouter.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=SendApiServer
hook_method_access_private_enabled=true
hook_method_access_protected_enabled=true
hook_method_patterns=team.balam.service.*, team.balam.send*.*
=======================================
여기서 hook으로 시작하는 옵션들이 중요한데 private_enabled는 private method를 모니터링 할지, protected_enabled는 protected 메소드를 모니터링할지 이다.
patterns에는 다수의 패턴을 등록할 수 있는데 요청에 의해서 시작되는 클래스가 포함되어 있는 패키지를 모두 걸어준다.
','를 기준으로 여가지 패턴을 등록할 수 있는데 요청과 관련해서 호출되는 클래스가 포함돼 있는 패키지도 걸어준다면 자동으로 요청과 하나의 트랜잭션으로 묶어서 모니터링이 가능하다.
이제 모니터링 할 JVM 옵션에 아래 옵션을 추가하고 jar폴더에 scouter.agent.jar를 다운로드하여 포함해준다. scouter.config는 바로 전에 작성한 설정 파일 위치이다.
-javaagent:./lib/scouter.agent.jar -Dscouter.config=./agent_scouter.conf
이제 jvm을 기동 시키고 모니터링을 할 수 있는 Scouter Client를 내 PC에 설치해보자.
Client
맨 위 다운로드 위치에서 나에게 맞는 Client를 다운 받고 설치한 뒤 실행하게 되면 IP, Port, ID, Password를 물어보는데 기본 Scouter Server의 IP,Port를 적고 admin / admin을 입력하자.
상위 메뉴에서 Collector -> Java에 있는 항목 중 아래 항목을 선택하여 모니터링을 했다.
Alert : JVM에서 발생하는 경고등의 정보를 보여준다.(JVM 셧다운 등)
Active Service : 현재 실행되고 있는 서비스의 카운트를 보여준다.
XLog : 실시간으로 들어오는 서비스가 점으로 찍히며 클릭하여 드래그 하면 선택된 서비스들의 목록이 나오고 다시 한 항목을 더블 클릭하면 상세 호출 stack을 볼 수 있다.
24H Service Count : 최근 24시간동안 매 시간마다 몇 건의 서비스가 호출 되었는지 알려준다.
유용한 기능으로는 각 창에서 마우스우클릭을 하게 되면 히스토리의 상세 검색을 할 수 있다.
host
agent.host 폴더 전체를 모니터링하려는 서버에 저장하고 간단한 설정을 해준다.
===============agent.host/conf/scouter.conf==============
# Scouter Server IP Address (Default : 127.0.0.1)
net_collector_ip=192.168.1.33
# Scouter Server Port (Default : 6100)
net_collector_udp_port=6100
net_collector_tcp_port=6100
=======================================
host.sh 를 실행해주면 client 에서 OS 에 맞는 아이콘이 보이고 해당 서버의 서비스 목록을 볼 수 있다.
'IT > 모니터링' 카테고리의 다른 글
Scouter 에 Spring hikari pool 연결 (0) | 2019.07.17 |
---|---|
Pinpoint 사용 - Pinpoint 설치 (0) | 2017.07.03 |
Pinpoint 사용 - HBase 설치 (0) | 2017.07.03 |
1. 성능 테스트 모니터링 준비(JMX, Scouter) - JMX (0) | 2016.12.25 |
Scouter에서 Non Http 서비스 hook (0) | 2016.10.20 |