안녕하세요?

오픈소스컨설팅 김세연입니다.

오늘은 Confluence에 Scouter를 설치하여 모니터링을 해보겠습니다.

APM

Application Performance Management는 웹 어플리케이션을 운영하는 시스템, 프로그램 성능을 측정하고 모니터링하는 도구입니다. 많은 APM 중 Scouter는 국내에서 오픈소스로 개발되고 있습니다. 활발한 커뮤니티 활동으로 사용자가 원하는 기능이 빠르게 반영되고 있습니다.

Scouter

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

▲ 스카우터 구성도

스카우터는 4가지 모듈이 있습니다.

ModulesDesc
Collector에이전트로부터 실시간 모니터링 정보를 수집, 가공하며 실시간 대시보드 제공 및 통계정보관리, 장애/에러 경보 등 관리에 필요한 각종 기능을 수행합니다
Java Agent모니터링 대상 시스템(WAS)에 구성되면 되며, 각종 성능 정보를 수집, 스카우터 서버로 전달하는 역할을 합니다.
Host AgentCPU, Memory, 디스크 성능 정보를 Collector로 전송합니다.
ClientCollector에서 수집된 정보를 확인하는 클라이언트 프로그램입니다.

설치 Step by step

우베이베~

//환경
Ubuntu 18 LTS
Confluence 6.13 - JRE 

Step1. Confluence 설치

Step2. Scouter Collector Server 설정

# Agent Control and Service Port(Default : TCP 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
  • 서비스를 시작해 볼게요.

Step3. Client 설치

  • 저는 macOS 버전을 다운로드 받았습니다. 리눅스, 윈도우, 맥 모두 지원하네요~! Java의 매력 아니겠습니꽈~!
  • Eclipse 기반의 클라이언트 프로그램입니다.
  • Client 실행하면 Ip, Port, ID, Password 를 적습니다.
  • ID는 admin password는 admin 입니다.
  • Collector Server와 Client 접속 상태를 확인합니다.

Step4. java host 설정

  • `/scouter/agent.host/conf/scouter.conf` 파일을 아래와 같이 수정합니다.
  • 기본 값으로 주석 처리만 했습니다.
### scouter host configruation sample
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
cpu_warning_pct=80
cpu_fatal_pct=85
cpu_check_period_ms=60000
cpu_fatal_history=3
cpu_alert_interval_ms=300000
disk_warning_pct=88
disk_fatal_pct=92
  • 서비스를 시작해 보겠습니다.
  • `/scouter/agent.host/host.sh` 실행
  • 이제 client에서 cpu, disk, memory를 모니터링 시자으아아아악!
  • 파이썬으로 for loop 좀 돌렸다고 기영이 패턴이..!?
  • Memory, Disk 사용량 모니터링 가능! 운영 서버에 배포하기전에 어플리케이션 부하테스트로 필요한 리소스를 확인하세요! 꼭이요!!

Step5. agent java 설정 (중요해요 별표 3개 땅땅!)

  • `./scouter/agent.java/conf/scouter.conf` 파일을 편집합니다.
  • java agent 기본 값으로 주석 해제 했습니다.
  • WAS 이름은 confluence-01 로 했습니다.
obj_name=confluence-01
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
hook_method_patterns=sample.mybiz.*Biz.*,sample.service.*Service.*
trace_http_client_ip_header_key=X-Forwarded-For
profile_spring_controller_method_parameter_enabled=false
hook_exception_class_patterns=my.exception.TypedException
profile_fullstack_hooked_exception_enabled=true
hook_exception_handler_method_patterns=my.AbstractAPIController.fallbackHandler,my.ApiExceptionLoggingFilter.handleNotFoundErrorResponse
hook_exception_hanlder_exclude_class_patterns=exception.BizException
  • `/opt/scouter/agent.java/scouter.agent.jar`  jar를 tomcat application에 설정해야합니다. 위치를 기억해 두세요.
  • Confluence의 setenv.sh 을 수정합니다. (setenv.sh는 Application을 실행할 때 환경 변수를 설정하는 파일입니다.)
  • `/opt/atlassian/confluence/bin/setenv.sh` 설치 경로는 다를 수 있습니다.
JAVA_OPTS="-javaagent:/opt/scouter/agent.java/scouter.agent.jar"
JAVA_OPTS="${JAVA_OPTS} -Dscouter.config=/opt/scouter/agent.java/conf/scouter.conf"
JAVA_OPTS="${JAVA_OPTS} -Datlassian.org.osgi.framework.bootdelegation=META-INF.services,com.yourkit,com.singularity.*,com.jprofiler,com.jprofiler.*,org.apache.xerces,org.apache.xerces.*,org.apache.xalan,org.apache.xalan.*,sun.*,com.sun.jndi.*,com.icl.saxon,com.icl.saxon.*,javax.servlet,javax.servlet.*,com.sun.xml.bind.*,javax.xml.*,scouter.*"
export JAVA_OPTS
  • Confluence Service 시작
  • catalina.out 로그를 보시면 Scouter가 시작됩니다. 퐈이야!!
  ____                  _
 / ___|  ___ ___  _   _| |_ ___ _ __
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |
 |____/ \___\___/ \__,_|\__\___|_|
 Open Source S/W Performance Monitoring
 Scouter version 2.5.1

20181216 14:09:29 [SCOUTER] Version 2.5.1 2018-12-16 08:55 GMT_ENV_java8plus
20181216 14:09:29 [SCOUTER] loaded by system classloader
20181216 14:09:29 [SCOUTER] jar:file:/opt/scouter/agent.java/scouter.agent.jar
20181216 14:09:30 [SCOUTER] objType:java
20181216 14:09:30 [SCOUTER] objName:/ubuntu-bionic/confluence-01
20181216 14:09:30 [A113] Counter Collector Started (#19)
20181216 14:09:30 [A113] InteractionCounter Collector Started (#19)
20181216 14:09:30 [SCOUTER] Configure -Dscouter.config=/opt/scouter/agent.java/conf/scouter.conf
20181216 14:09:30 [A100] agent boot seed=xk5irljeeb
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractAppService service.plug loaded #xghqpc
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractHttpService httpservice.plug loaded #xg8h3a1
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCapture capture.plug loaded #x469nrf
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCapture springControllerCapture.plug loaded #x1rvuqrv
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractJdbcPool jdbcpool.plug loaded #x148lqht
20181216 14:09:30 [NONE] LoadJarBytes scouter.jdbc 33156 bytes
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractHttpCall httpcall.plug loaded #x14uol51
20181216 14:09:30 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCounter counter.plug loaded #x1obvb4m
  • 모니터링 시작입니다! 느린 응답, SQL 확인할 수 있습니다.
  • Heap used, Disk, CPU, Memory 등을 모니터링 시작입니다.

오픈소스컨설팅의 마스코트, 열린이입니다! :)

Leave a Reply

Your email address will not be published. Required fields are marked *