안녕하세요 "미들웨어" 입니다.

 

이번 장에서는 오픈소스 WAS 모니터링 툴을 소개하려 합니다.

WEB/WAS 서비스 구조에서 기본적이면서도 이슈 발생시 가장 많이 자주 보는 것이 아마 모니터링 툴이 아닐까 싶습니다.

모니터링 툴은 상용과 오픈소스로 나뉘는데, 상용은 jennifer, whatap 이 시장에서 반응이 좋습니다. 

물론 tmcat 사의 sysmaster과 같은 많은 서비스 모니터링 툴도 있지만, 제가 모두 사용해봤을때는... 요즘 whatap 이 가장 업데이트도 빠르고 가성비도 좋고 많은 기능을 가지고 있습니다.

 

저는 주로 오픈소스를 위주로 사용하는데, WAS (tomcat, jboss, wildfly, springboot) 기반일 경우 무조건 scouter 을 사용합니다.

scouter 은 사용자가 원하는 dashboard 를 직접 꾸밀수도 있고, 원하는 기능을 튜닝해서 slack 연동도 가능하고, 심지어 scouter paper 로 모바일 환경에서도 지원이 됩니다.

 

제가 이번 scouter 소개에서 scouter 의 기능을 일일히 나열하는 것은 의미가 없을 것이고, 자주 사용하는 기능과 튜닝하는 방법에 대해서만 일부 소개해보려 합니다.

반응 좋으면 모듈 생성 후 연동 하는 것 까지도 해보겠습니다.

 

 

scouter 소개사이트 
 
2. scouter 항목 모니터링 방법-1
  https://gunsdevlog.blogspot.kr/2017/07/scouter-apm-2-12.html

 
 
4. scouter agent 사용 방법 샘플
 # Scouter Agent Configure
SCOUTER_AGENT_DIR="/app/scouter/agent.java"
JAVA_OPTS=" ${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
JAVA_OPTS=" ${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf"
JAVA_OPTS=" ${JAVA_OPTS} -Dobj_name=test-app"

 

 

5. scouter dashboard 샘플화면
  jennifer 와 비슷하면서도 다른 느낌일것 같네요. (확장성은 최고입니다)

 

[Scouter 연동 구조] 

Agent  ⇨⇨⇨  [성능 데이터]  ⇨⇨⇨  Collector(Server)
Client  ⇦⇦⇦  [성능 데이터]  ⇦⇦⇦  Collector(Server)



 

6. Scouter Alert (slack 연동) 

 (참고) scouter & slack 연동 설정방법 

  URL : https://github.com/scouter-project/scouter-plugin-server-alert-slack

- slack 알람 연동을 위해선 아래 lib 모두 위 링크에서 다운로드 받은 뒤 /server/lib 안에 넣어주고 재시동을 해야한다. 

 

- 기본 제공되는 알람 옵션

 기본 제공되는 알람 옵션
  • CPU 알림 설정 옵션
    • Host agent의 옵션을 통해 설정할 수 있습니다.
    • cpu_alert_enabled : cpu 알림을 활성화하거나 비활성화 합니다.(기본 : true)
    • cpu_warnig_pct : cpu waring 레벨 알림의 퍼센트입니다.(정수로 설정)
    • cpu_fatal_pct : cpu fatal 레벨 알림의 퍼센트입니다.(정수로 설정)
    • cpu_check_period_ms : 어느 기간동안 cpu를 체크할지를 지정합니다.
    • cpu_waring_history, cpu_fatal_history : 각 레벨에 설정한 값의 초과가 몇회 발생하였을때 알림을 알릴지를 설정합니다.
      • 예를 들어 cpu_fatal_pct가 90%이고 cpu_check_period_ms가 5분(300000ms), cpu_fatal_history가 3이라면 CPU가 최근 5분간 90%를 3회 넘는 경우 알림을 발송하게 됩니다.
    • cpu_alert_interval_ms : 설정 시간동안 동일한 알림을 발송하지 않습니다. 
       
  • Memory 알림 설정 옵션
    • mem_alert_enabled=false
    • mem_alert_interval_ms=30000
    • mem_warning_pct=80
    • mem_fatal_pct=90
       
  • Disk 사용량 알림 설정 옵션
    • disk_alert_enabled=true
    • disk_warning_pct=70
    • disk_fatal_pct=90

 

 

7. Scouter Dashboard 사용자 PC(MAC, Window) export 공유 방법

 Dashboard 생성후 사용자 PC에 따른 Dashboard 공유 방법

- MAC 사용자가 만든 DashBoard는 MAC, Window PC에 Dashboard를 export 후 별도 작업 없이 공유 가능
   MAC DashBoard --> MAC DashBoard  
   MAC DashBoard --> Window DashBoard  

2. Windown  사용자가 만든 DashBoard 는 Window 사용자 간 Dashboard는 별도 작업 없이 공유 가능
   Window DashBoard --> Window DashBoard
   Window DashBoard --> MAC DashBoard  (아래 작업으로 전달해줘야 한다)
 

  • Window에서 $USER_HOME/scouter 디렉토리 안에 있는 파일들을 압축하여 zip 파일로 생성.
  • OSX에서 해당 파일을 Import
  • 예를들면.. C:\Users\middleware\scouter 압축
 
이처럼 scouter 기능은 무궁무진 합니다.
WEB/WAS 설치 후 서비스 운영하시면서 모니터링은 무엇으로 해야할까.. 란 고민을 많이 하실텐데..
 
위 가이드 참고해서 WAS (jboss, tomcat등) java 기반 미들웨어일 경우는 scouter로 모니터링 하시면 여러모로 서비스 운영에 큰 도움이 될것 같습니다.
이상 미들웨어 였습니다.

 

+ Recent posts