오픈소스 성능 모니터링 도구 Scouter 소개

7573
2016-09-27

Scouter 에 대한 소개 글들이 조금 존재하기는 하지만, 여기서는 조금 더 자세한 소개를 하고자 한다. Scouter는 LG CNS 에서 만들어 공개한 오픈소스(https://github.com/scouter-project/scouter)  APM(Application Performance Monitoring) 이다.

참고)  APM 은 애플리케이션의 성능을 모니터링 / 통제하는 도구로 2016년 현재 아주 많은 종류의 APM 이 존재한다. 대표적인 상용 APM 으로 NewRelic과 Dynatrace가 있으며, 국산 툴도 몇 가지 존재한다.

위에 있는 링크를 따라가보면 기본적인 소개글은 확인할 수 있을 것이다.

설치하기

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Quick-Start_kr.md

설치하는 방법이 설명되어 있는 페이지다. Scouter를 설치하기 위해서는 기본적인 구조를 알아야 한다. Scouter는 agent - server - client로 구성되어 있다.

  • agent : 데이터를 수집하는 대상이며, 지금은 java / host 용 agent 가 별도로 존재한다. java용 agent는 JVM이 시작할 때 옵션을 추가하여 적용 가능하고, 시작 시점부터 server에 각종 데이터를 전달한다. host용 agent는 아무때나 프로세스를 시작하면 해당 장비의 CPU, 메모리등의 데이터를 수집하여 server 로 전달한다.
  • server : scouter server는 데이터를 수집하여 저장하며, 저장된 데이터를 연결되어 있는 client에 전달한다. server는 scala로 작성되어 있으나 일반 자바 개발자들이 사용하는데에는 큰 무리가 없다.
  • client : client는 이클립스 프레임웍 기반으로 개발되어 있으며, 각 client 별로 build 가 되어 있기 때문에 사용하는데 그리 어렵지는 않을 것이다. https://github.com/scouter-project/scouter/releases/

사용하기

Scouter 는 처음에는 간단하고 쉬우며 간단하게 사용하려면 그냥 기본적인 사용법만 알면 된다. 하지만, scouter를 제대로 사용하려면 아주 많은 기능들이 내장되어 있는 도구이기 때문에 전문가의 손길이 필요할 수도 있다. 그럴 때에는 scouter 사용자 모임에서 정보를 얻을 수 있다.

이 모임에서는 지금 scouter를 개발하고 있는 개발자가 직접 정보들을 공유하고 답변해 주기 때문에 많은 도움이 될 것이다. 대신 기본적인 가이드 문서들을 전부 다 읽어보고 질문해야만 한다. 예를 들어, scouter 설치해 주세요. 라던지, scouter 설명해 주세요. 와 같은 기본적인 질문을 하면 모임에서 쫓겨 날 수도 있으니 제발 공부 좀 하고 질문하자.

Scouter 기본적인 사용법은 메인 페이지에 제공되는 동영상만 잘 봐도 50% 정도 이해하고 사용할 수 있다.

scouter가 제공하는 기능

기본적으로는 WAS에서 벌어지는 대부분의 내용들을 확인 해 볼 수 있다.

  • 각 요청의 응답속도 / 프로파일링 정보
  • 서버 요청 수 / 응답 수
  • 처리 중인 요청 수
  • 응답속도의 평균
  • JVM 메모리 사용량 / GC 시간
  • CPU 사용량

그리고 프로파일링 정보를 통해서

  • 서버간 요청의 흐름
  • 각 SQL 쿼리의 수행 시간 / 통계
  • API 호출 수행 시간
  • request header 정보
  • 메소드 호출시 수행 시간

등을 상세하게 볼 수 있다.

이렇게 상세하게 볼 수 있다는 말은 거꾸로 말하면 아주 많은 데이터가 저장된다는 것이다. 따라서 Scouter server 로 사용하는 장비는 디스크 용량이 많은 장비를 추천한다.

마지막으로 필자가 Scouter 와 관련된 지원 업무를 수행하면서 많이 받은 질문들을 정리하면서 이 글을 마치겠다. 다음에는 Scouter 에서 제공하는 추가적인 기능들에 대해서 알아볼까 한다.

Q : 사용할 수 있는 WAS 가 ? ? ? A: Tomcat, JBoss, Resin 등이 있다고 깃헙에 나와 있습니다. Q: WAS 만 사용 가능한가요? 일반 데몬처럼 떠 있는 자바 프로세스는 사용 가능한가요 ? A: 사용 가능해요. 단 추가적인 옵션 설정이 필요해요. 그것에 대해서는 다음 글에서 ... Q: SQL 쿼리만 나오는데요? 메소드 프로파일링은 어떻게 하나요 ? A: 메소드 프로파일링도 추가적인 옵션 설정이 필요해요. 이것도 다음 글에서 ... Q: 이거 설치하고 문제 생기면 어떻게 해요 ? 떨리는데...... A: 개발서버 / 개발 PC 에서 한번 설치해서 사용해보고 오류 메시지가 나오지 않는지, 성능 저하가 없는지, 기능들이 정상적으로 동작하는지 확인해 보세요. Q: 정말 무료에요 ? A: 네. 좀 믿으세요. Q: 하드는 몇 기가나 있으면 되나요 ? A: 일단 100 GB 장비에 설치해 보세요. Scouter는 저장소 하드가 70 ~80 % 가 넘으면 오래된 데이터부터 지운답니다. 기본 설정이 되어 있고, 본인이 직접  Scouter server 에 설정해도 됩니다. Q: 성능 저하가 얼마나 되나요 ? A: CPU는 지금 쓰는 것에 2 ~ 10 % 증가하고, 네트워크는 UDP 를 많이 씁니다. TCP도 가끔 쓰고요. 네트워크 상황이 안좋다면 모니터링을 별도로 하셔야 합니다. Q: 단점은 없나요 ? A: 지금으로썬 잘 모르겠지만, 문제 있을 때 부를 벤더가 없는 것 ? 하지만 무료로 페북에서 질문 / 답변 해주니 시간은 걸리지만 해결은 가능하다능 ~~~ Q: 네이버에서 만든 pinpoint 도 있던데 뭘 써야 해요 ? A: 직접 설치해서 둘 다 써 보세요. 각각 장단점이 있는 도구 입니다. Q: 그래도 하나만 꼭 찝어서 쓴다면 ? 추천을 ~~~ A: 자신이 쓰려는 용도에 맞춰서 툴을 써야 합니다.

다음 글에서 설명한다고 한 내용들은 scouter 가 오픈소스이기 때문에 당장 필요한 독자들은 agent / server에 있는 Configure.java 소스를 직접 확인해 보면 된다.


Popit은 페이스북 댓글만 사용하고 있습니다. 페이스북 로그인 후 글을 보시면 댓글이 나타납니다.