0%

Scouter 기본

Scouter란..

Open Source APM(Application Performance Management)으로 서버의 성능을 모니터링 하기위한 도구이다.
오픈소스APM 종류로는 Pinpoint, Glowroot이 있고, 유료상품으로는 Jennifer, Dynatrace 등이 있다.

설치

Github(https://github.com/scouter-project/scouter/releases/) 에서 다운받을 수 있다.
두개의 파일을 받는데 하나는 서버용이고, 하나는 클라이언트용이다.

  • 서버용 : scouter-all-[VERSION].tar.gz
  • 클라이언트 : scouter.client.product-[Client OS]

Scouter 구성

Scouter_Sturcture

Scouter(Collector) Server

  • 스카우터 수집서버. 모니터링할 정보들을 수집하는 서버이다.
  • 데이터는 자체 제작된 내부파일 DB에 저장된다.
  • 최근에 Collector API가 제공되고 있으며, Scouter Paper(웹 브라우저 클라이언트인듯?). 안정될때까지 기다리자.. Scouter Paper는 이것을 사용한다.

Scouter Agent

  • Agent는 HostAgent와 JavaAgent가 있고, 모니터링대상(WAS)에 설치한다.
  • 데이터는 UDP와 TCP로 전송된다.
  • Host Agent: CPU, MEMORY, DISK 정보를 전달한다.
  • Java Agent: Heap, TPS, Response Time, Service Profile 정보를 전달한다.

Scouter Client

  • 스카우터 클라이언트로 스카우터 서버에 접속하여 수집된 정보를 모니터링한다.
  • 모니터링 화면은 Eclipse기반의 UI로 구성되어 있다.

Collector 하위 메뉴

Collector에 수집된 모니터링 정보들을 다양한 뷰로 선택해 볼 수 있다.
보여지는 데이터는 실시간은 아니고 살짝 delay된 지표이다.
Collector_Tomcat

Tomcat

상단메뉴 Collector > Tomcat 하위의 메뉴에 대한 내용을 요약한다.

  • Elapsed 90% : 전체 사용자의 90%가 받는 응답속도. 대부분의 사용자의 응답속도. 이게 좀 더 중요하다.
  • Elapsed Time(평균속도) : 크게 의미없다
  • Error Rate : 이건없어야 한다.
  • GC Count : 1초 간격으로 gc가 몇번 일어나는지(이게 올라가면..)
  • GC Time : GC 수행시간 (300ms-1s)
  • Heap used : 톱니모양이 좋은것.. 가장 최저점들의 노드를 연결해보면 우상향그래프가 될텐데 그럼 Full GC가 발생한다.
    그리고 다시 아래부터 올라간다. 올라가면 안좋은거..
  • Heap Memory : Heap used 와 함께 Max 사용가능한 수치도 같이 볼수 있다.
  • ProcessCpu : JVM CPU 사용
  • Recent User : 최근(새로운)사용자. 믿기 어렵다. 구글 애널리틱스를 쓰자. 스카우터 쿠키를 구워서 다음에 왔을땐 새로운게 아니니까.. 믿지말자..
  • TPS : CPU사용량과 밀접한 관계가 있다.
    • User Transaction : 하나의 행위(메일을쓰기, 하나의 페이지를 로딩)
    • Server Transaction : 하나의 행위를 위해 여러번 요청을 할때 각각 트랜잭션으로..
  • Active Service EQ : 쓰레드 정보. 빨간색 8초 응답, 노란색 4초 응답, 파란색은 OK
  • 문제가 생기면 더블클릭을 해서 상세내용을 보고 판단한다.
  • Active Service List : 톰캣에 돌고 있는 쓰레드(CPU잡아먹으니 장애났을떄만 본다)
  • Active Service Vertical EQ : 세로로 보여준거.
  • Active Speed : 이건 띄워놓는게 좋다. 장애가 나면 빨개진다. 장애여부를 바로볼수있다.
  • XLog : 스카우터에서 가장 메인으로 보게될 뷰로 요청과 프로파일정보들을 제공한다.
  • 24H Service Count : 일별 문제 카운트
  • Throughput : Thoughput을 임의로 지정해서 볼수 있다. url 기능마다 그룹지어놓으면 분석할 수 있다. 많은 수작업이 들어간다. 설정에..
  • Today visitor : 오늘 온사람 확인용도
  • Summary : 통계기능. 특정시간에 요청된 내용을 볼수 있음
  • File Descriptor : 현재 오픈된 파일?

CPU

NET.. : 리눅스 서버 disk i/o 개수에 포함된다.

RequestProc

ErrorCount : 에러개수를 보여주는 뷰로 서비스 초기에 유용하다.

화면구성

View_Save

  • 우측상단에 각각 view를 저장할 수 있다. 화면 편집하고나서는 반드시 저장을 해야한다.

로그파일

저장경로: ${SCOUTER_HOME}/server/database
한달이 넘거나 서버 디스크의 70%이상이면 가장 오래된로그부터 지운다.
백업을 해야할경우 해당 디렉토리를 압축해서 백업해둔다.

XLog

View_Save

  • CPU Time: JVM 사용, 스카우터는 정확히 안보여 주기때문에 jvmtop(https://github.com/patric-r/jvmtop) 으로 확인해본다.
  • Wait Time: 기타.. 다른서비스 (api나 sql등..)
  • Error(빨간색 표시)
  • 점은 x축 기준으로 요청끝난시간을 찍는다.(스타트타임을 찾아봐야한다.)

Configuration

  • Tomcat, Host Agent 는 수정과 저장시 재시작없이 바로 설정이 적용된다.
  • 수집서버 설정은 변경해도 재시작하지 않으면 적용이 되지 않는다.
  • object_name은 항상 추가해주어야한다. 하나의 수집서버내 object_name은 중복되어서는 안된다. 데이터가 꼬일수 있다. (호스트가 다르면 상관없지만.. 왠만하면 다르게하자.)
  • Scouter수집서버 하나에 1000TPS가 넘으면 불안하다.

Plugin

  • Capture 플러그인 : hook_method_pattern과 함께 쓸수 없다. return에서 찍는게 좋다.
  • 플러그인에 스타트말고 엔드에 넣은다. 파라미터로 들어오는게 한글일 경우 인코딩문제가 생길 수 있다.