플랫폼 개발팀 기술 블로그

JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플러그인 본문

Article

JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플러그인

알 수 없는 사용자 2019. 1. 31. 16:48

이번 내용에서는 스카우터 클라이언트를 본격적으로 사용하면서 알면 도움이 되는 내용을 주로 다루려고 한다.
수집된 지표를 보기위한 방법은 여러가지가 있지만, 일반적으로 사용하는 방법은 2가지이다.

  • 자바로 된 스카우터 클라이언트 프로그램을 이용해서 확인하는 방법
  • 페이퍼 플러그인을 이용해서 만든 웹서버에 웹브라우저를 통해 접속해서 확인하는 방법

2가지 방법에 대해 소개하고 사용하면서 느낀 활용법을 정리하였다.



스카우터 클라이언트

스카우터 클라이언트의 모습


스카우터 클라이언트는 Windows / MacOS / Linux 용 버전이 제공된다.
맥 버전과 윈도우 버전을 둘다 사용중인데, Java 로 이루어진 덕분에 동일한 사용자경험을 제공한다.

설치 및 기능에 대해서는 스카우터 공식 깃헙에 잘 정리되어 있다. 기본적인 기능에 대해서는 아래 링크를 참조하자.




스카우터 페이퍼 플러그인

웹브라우저로 페이퍼 플러그인에 접속한 모습

(출처 : https://github.com/scouter-contrib/scouter-paper)


스카우터 서버(수집기)에는 데이터를 제공해주는 WEB API 가 있다. 이 WEB API 를 활용해서 많은 플러그인이 만들어지고 있는데, 그 중에 완성도도 높고 오픈소스로 공개된 것이 이 페이퍼 플러그인이다. 단순히 보자면 스카우터 클라이언트의 웹버전이라고 볼 수도 있다. 

리액트(?)로 개발된 페이퍼 플러그인은,  스카우터 서버 WEB API 에서 가져온 정보를 화면에 보여 준다. 

웹브라우저를 통해 사용할수 있다보니 설치하는 번거러움이 줄어 좋다. (누군가에게 급히 자신의 모니터링 시스템에 대해 자랑해야 할 타이밍에도 좋다..)

설치 및 스카우터와의 연동 방법



기능 활용


클라이언트에서 스카우터 설정을 변경하기

스카우터 설정은 스카우터서버, 에이전트호스트, 에이전트자바 이렇게 3곳에서 이루어진다. 
각각의 설치된 경로에 있는 conf 폴더 하위에 scouter.conf 파일을 수정해도 되지만, 스카우트 클라이언트 UI 에서 바로 수정이 가능하다.

(스카우터 서버 의 설정변경 화면)


우측 목록에서 클릭을 하면 툴팁이 나오니 참고하면 좋다.

원하는 값을 우측 목록에서 더블클릭하면 좌측 EDIT 창에 항목정보가 입력된다. 그 후 원하는 값으로 변경을 하고 우측 상단에 디스켓 아이콘을 누르면 저장된다.


저장 아이콘을 누르면, 대부분의 설정은 실시간으로 반영이 된다.

실시간 반영이 안되는 대표적 설정으로 스카우터 에이전트자바 설정 쪽에 hook_ 로 시작하는 설정들이 있다. 이때는 다시 시작을 해야 반영된다.




클라이언트 XLog 서치

XLog는 WAS에 들어온 Http 요청의 처리시간 및 상태를 시각적으로 표시해주는 유용한 그래프이다. 

그래프의 좌측이 과거, 우측이 현재를 뜻한다.



실시간으로 갱신이 되는데, 과거 데이터는 좌측으로 해서 없어지게 된다. 급하게 가까운 과거 데이터를 보고 싶을 때는 키보드의 방향키를 이용하면 이동을 할 수 있다. 위 스크린샷도 과거 데이터를 찾기 위해 방향키를 여러번 누른 상태이다.


현재 그래프로 되돌리고 싶다면 우측 가운데에 있는 검은 큰 점을 클릭하면 된다.


데이터 양이 많을 때는 스카우터 서버의 CPU 자원을 꽤나 먹는것으로 보인다. 스카우터 서버의 성능이 충분치 않은 상황이라면 약간의 주의가 필요할 듯 하다.




클라이언트의 지표 그래프 과거 기록 조회하기

스카우터 클라이언트에는 각 지표별로 과거 데이터를 볼수 있는 3가지 방식이 있다. 
  • Today All : 오늘 날짜의 하루치 모든 데이터
  • Past All : 과거 특정 시점의 모든 데이터
  • Daily All : 특정 날짜의 하루치 데이터

( Today All 방식으로 조회한 하루치 데이터)


사진에는 그래프 각 plot 에 대한 범례가 나오지 않았다. 


아마도 특정 높이 이상에서만 범례가 나오는 것으로 보인다.

정확한 높이는 찾지 못했지만.. 범례가 필요할 때는 드래그 해서 높이를 늘려주면서 확인하면 된다.




스카우터 로그 저장 비율 설정

따로 설정하지 않았다면, 스카우터의 지표 데이터는 스카우터 서버(수집기) 내부에 저장이 된다. 
만약 장비의 디스크가 가득차게 된다면 스카우터 서버 뿐만 아니라 해당 장비에 있는 다른 서비스들에도 영향을 줄 수 있기 때문에 위험하다.

그래서 스카우터에서는 OS의 디스크 사용량이 특정 비율을 넘게 되면 스카우터의 오래된 데이터부터 삭제하도록 설정 할 수 있다.


스카우터 서버 설정 중 mgr_purge_disk_usage_pct 라는 설정에 원하는 비율을 입력해주면 된다.




Customize Alert 설정 

스카우터 클라이언트에서는 각종 상황에 대한 Alert 설정을 할 수가 있다. 

스카우터 깃헙에 정리된 내용을 참조해서 만들어 보았다. 

GC Time 을 기준으로 얼럿 설정해보자.


클라이언트에서 Alert 설정을 편집하기 위해서는 위 메뉴를 누르면 된다.


우측에 나온 편집창에 원하는 스크립트를 넣어주면 된다. 



위 사진에서 사용한 스크립트 내용이다.


int gcTime = $counter.intValue();

if(gcTime > 2000) {

   $counter.fatal("gc time fatal", "gc time:" + respTime + "ms");

}


GC 시간이 2000ms 가 넘으면 얼럿이 발생하는 조건이다.
아래 Alert Configuration 에 있는 항목들로 얼럿의 빈도를 조절할 수 있다.


위와 같이 알럿 설정을 하면 스카우터 클라이언트 얼럿 정보 화면에 얼럿이 뜬다. 

이메일, 메신저 등 외부로 얼럿을 보내고 싶다면 별도의 플러그인을 설치하여야 하는데, 이에 대해서는 3부에서 다루어 보려고 한다.





스카우터 서버 아이디 / 비밀번호 설정

스카우터 클라이언트로 스카우터 서버에 접속하려고 하면 주소와 아이디/비번이 필요하다.
처음 설치 때 세팅되는 기본 아이디/비번은 admin/admin 이다.

위에도 설명했지만, 클라이언트로 할 수 있는것들이 꽤나 많다. 악의적으로 과부하를 일으킬 수 도 있고, 지표에 대한 데이터를 노출하게 될 수도 있다.
스카우터 서버(수집기)가 외부와 네트워크로 단단히 격리 되어있는 상황이 아니라면 아이디/비번은 변경을 꼭 해야 한다.

변경은 아래 메뉴에서 가능하다.






마치며.. 
본인도 스카우터 클라이언트와 페이퍼 플러그인을 사용중이다. 이 툴들을 통해 아름답게 표현되는 지표는 보기만 해도 흐뭇해진다.
하지만.. 장애상황이나 시스템이 위험한 상황이 되었을 때를 알기 위해 24시간 이것들을 볼수는 없고, 다양한 외부 얼럿을 설정하였다.
3부에서는 스카우터에서 할 수 있는 외부 얼럿 기능에 대해 다뤄보겠다.



'Article' 카테고리의 다른 글

[FCM] #3. Firebase 메시지 전송  (3) 2019.02.14
머신러닝 입문하기  (0) 2019.01.31
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정  (0) 2019.01.31
MariaDB : Xtrabackup 편  (0) 2019.01.25
[FCM] #1. 소개 및 메시지  (0) 2019.01.24
Comments