안녕하세요?

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


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


APM

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

Scouter

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

scouter overview

▲ 스카우터 구성도


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

Modules Desc
Collector 에이전트로부터 실시간 모니터링 정보를 수집, 가공하며 실시간 대시보드 제공 및 통계정보관리, 장애/에러 경보 등 관리에 필요한 각종 기능을 수행합니다
Java Agent

모니터링 대상 시스템(WAS)에 구성되면 되며, 각종 성능 정보를 수집, 스카우터 서버로 전달하는 역할을 합니다.

Host Agent CPU, Memory, 디스크 성능 정보를 Collector로 전송합니다.
Client Collector에서 수집된 정보를 확인하는 클라이언트 프로그램입니다.

설치 Step by step

//환경
Ubuntu 18 LTS
Confluence 6.13 - JRE 

Step1. Confluence 설치

Step2. Scouter Collector Server 설정

  • JDK 1.8+ 필요합니다. OpenJDK를 사용해 볼게요.
  • `apt install openjdk-8-jdk-headless`
  • Scouter Download
  • https://github.com/scouter-project/scouter/releases
  • 2.5.1 버전 다운로드 https://github.com/scouter-project/scouter/releases/download/v2.5.1/scouter-min-2.5.1.tar.gz
  • Confluence Server에는 min 버전을 다운로드 받아서 해보겠습니다.
  • 압축을 해제하면 agent.host, agent.java, server가 생성됩니다.
  • Server 설정을 해보겠습니다.
  • server/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


  • 서비스를 시작해 볼게요.


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 등을 모니터링 시작입니다.


감사합니다.

오픈소스컨설팅

아틀라시안팀 김세연

atlassian@osci.kr

sales@osci.kr

seiyeon.kim's profile image

seiyeon.kim

2018-12-16

Read more posts by this author