Skip to end of metadata
Go to start of metadata


APM

Application Performance Management는 웹 어플리케이션을 운영하는 시스템, 프로그램 성능을 측정하고 모니터링하는 도구

Scouter

LG CNS에서 만들어 공개한 오픈소스 APM 

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


▲ Scouter 구성도



  • Scouter는 네가지 모듈로 구성

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



Step 1. Scouter 다운로드 및 압축풀기

  • https://github.com/scouter-project/scouter/releases 에서 최신버전(가이드 작성 기준 scouter-min-2.6.2.tar.gz) 다운로드 후 압축 풀기

    Linux
    [root@junoya junoya]# wget https://github.com/scouter-project/scouter/releases/download/v2.5.1/scouter-min-2.6.2.tar.gz		// 다운로드
    
    [root@junoya junoya]# tar xzf scouter-min-2.6.2.tar.gz																		// 압축 풀기
    
    [root@junoya junoya]# mv scouter /opt/																						// 이후 편의를 위해 scouter 폴더 이동
    
    [root@junoya junoya]# cd /opt/scouter
    
    [root@junoya scouter]# ls -al																									// 압축푼 폴더 안 확인
    drwxr-xr-x. 3 root root  210  6월 20 15:26 agent.host
    drwxr-xr-x. 4 root root   57  6월 20 15:26 agent.java
    drwxr-xr-x. 6 root root 4096  6월 20 15:26 server
    
    


Step 2. Scouter.server 환경 설정 및 시작 

  • scouter/server/conf/scouter.conf 파일에 다음과 같이 내용 추가

    scouter.conf
    # 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


  • 서버 시작

    Linux
    [root@junoya server]# ./startup.sh
    
    
    nohup: redirecting stderr to stdout
      ____                  _
     / ___|  ___ ___  _   _| |_ ___ _ __
     \___ \ / __/   \| | | | __/ _ \ '__|
      ___) | (_| (+) | |_| | ||  __/ |
     |____/ \___\___/ \__,_|\__\___|_|
     Open Source S/W Performance Monitoring
     Scouter version 2.6.2

    *정지는 stop.sh


Step 3. Scouter.agent.host 환경 설정 및 시작 

  • scouter/agent.host/conf/scouter.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


  • 서버 시작

    Linux
    [root@junoya agent.host]# ./host.sh
    
    
    nohup: redirecting stderr to stdout
      ____                  _
     / ___|  ___ ___  _   _| |_ ___ _ __
     \___ \ / __/   \| | | | __/ _ \ '__|
      ___) | (_| (+) | |_| | ||  __/ |
     |____/ \___\___/ \__,_|\__\___|_|
     Open Source S/W Performance Monitoring
     Scouter version 2.6.2
    
    Configure -Dscouter.config=./conf/scouter.conf
    Scouter Host Agent Version 2.6.2 2019-04-28 13:41 GMT
    System JRE version : 1.8.0_212

    *정지는 stop.sh




Step 4. Scouter.agent.java 환경 설정

  • Scouter Agent는 모니터링 할 서버(여기선 Confluence 서버)에 설치해야함
  • scouter/agent.java/conf/scouter.conf 파일에 다음과 같이 주석 제거 및 서버 정보 입력

    scouter.conf
    ### scouter java agent configuration sample
    obj_name=WAS-01																// 모니터링 될 서버명(임의 지정)
    net_collector_ip=127.0.0.1													// Scouter 서버 IP
    net_collector_udp_port=6100													// Scouter 서버 TCP 포트
    net_collector_tcp_port=6100													// Scouter 서버 UDP 포트
    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


  • Agent 경로 확인

    Linux
    [root@junoya agent.java]# pwd
    /opt/scouter/agent.java

Step 5. Confluence Tomcat 설정

  • <confluence installation-directory>/bin/setenv.sh 파일 마지막 줄에 다음 항목 추가

    setenv.sh
    .
    .
    .
    CATALINA_OPTS="-Dconfluence.context.path=${CONFLUENCE_CONTEXT_PATH} ${CATALINA_OPTS}"
    CATALINA_OPTS="-XX:ReservedCodeCacheSize=256m -XX:+UseCodeCacheFlushing ${CATALINA_OPTS}"
    
    export CATALINA_OPTS
    #########################아래 부터 추가되는 내용#############################################
    
    JAVA_OPTS="-javaagent:/opt/scouter/agent.java/scouter.agent.jar"										// Agent 위치한 경로 지정
    uJAVA_OPTS="${JAVA_OPTS} -Dscouter.config=/opt/scouter/agent.java/conf/scouter.conf"					// Agent 위치한 경로 지정
    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 재시작

    Linux
    systemctl restart confluence.service
    
    Confluence 시작시 <confluence installation-directory>/logs/catalina.out 파일에서 다음과 같이 Scouter 구동 확인 가능
    
    
     / ___|  ___ ___  _   _| |_ ___ _ __
     \___ \ / __/   \| | | | __/ _ \ '__|
      ___) | (_| (+) | |_| | ||  __/ |
     |____/ \___\___/ \__,_|\__\___|_|
     Open Source S/W Performance Monitoring
     Scouter version 2.6.2
    
    20190620 14:49:18 [SCOUTER] loaded by system classloader
    20190620 14:49:18 [SCOUTER] Version 2.6.2 2019-04-28 13:41 GMT_ENV_java8plus
    20190620 14:49:18 [SCOUTER] jar:file:/opt/scouter/agent.java/scouter.agent.jar
    20190620 14:49:18 [SCOUTER] objType:tomcat
    20190620 14:49:18 [SCOUTER] objName:/junoya.i.curvc.com/WAS-01
    20190620 14:49:18 [A113] Counter Collector Started (#19)
    20190620 14:49:18 [A113] InteractionCounter Collector Started (#19)
    20190620 14:49:18 [SCOUTER] Configure -Dscouter.config=/opt/scouter/agent.java/conf/scouter.conf
    20190620 14:49:18 [A100] agent boot seed=x3oglpmt82t
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractAppService service.plug loaded #xhhabrt
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractHttpService httpservice.plug loaded #x1hg5o31
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCapture capture.plug loaded #x1hn36kv
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCapture springControllerCapture.plug loaded #xdonb7s
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractJdbcPool jdbcpool.plug loaded #xfi7537
    20190620 14:49:18 [NONE] LoadJarBytes scouter.jdbc 33156 bytes
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractHttpCall httpcall.plug loaded #x18uihq9
    20190620 14:49:18 [SCOUTER] PLUG-IN : scouter.agent.plugin.AbstractCounter counter.plug loaded #x11splbj
    
    


Step 6. Client 설치 및 확인

  • https://github.com/scouter-project/scouter/releases 에서 OS 맞는 client 다운로드 후 압축 풀기

    *가이드에서는 윈도우용 클라이언트로 진행 

  • 압축 푼 scouter.client 폴더 안 scouter.exe 실행


  • 서버 IP & 포트 및 ID / Password 입력(admin / admin)



  • Agent의 상태 모니터링





  • No labels