라벨이 scouter인 게시물 표시

Telegraf와 연동하여 Scouter에서 NGINX를 모니터링 해보자

이미지
운영중인 서비스를 모니터링 할때, 어떤 문제의 원인을 발견하고 이를 해결하기 위해서는 인프라의 성능 메트릭 정보 뿐 아니라 어플리케이션의 메트릭도 함께 모니터링하는 것이 중요하다.
Scouter나 Scouter Paper를 통하면 어플리케이션의 요청 처리 상태와 인프라 소프트웨어의 성능 메트릭을 하나의 대시보드로 구성하여 모니터링하는 것이 가능한데, 이 글을 통해 Scouter의 Telegraf 확장 기능으로 nginx의 성능 정보를 모니터링하는 것을 구성 해보도록 한다.




0. scouter collector (v2.6) 실행아래 Step들을 진행하기 전에 먼저 Scouter server v2.6+를 다운로드 받고 기동시킨다.Scouter를 처음 사용한다면 Scouter 설치하기를 참고한다.Collector 옵션에서 net_http_server 옵션을 true로 하고 기동하여야 한다. 이 설정이 없거나 true가 아닌 경우는 true로 설정하고 collector server를 재시작한다. 1. scouter client (v2.6) 실행Scouter Client v2.6을 실행하여 collector에 접속한다.Collector 메뉴 중 Collector > Configures > Telegraf Config > Telegraf Configure설정 화면이 열리면 scouter v2.6에서 샘플로 제공되는 Telegraf measurement 설정을 확인할 수 있다. (cpu, redis, nginx 등)트리메뉴의 General에서 Enabled에 체크한다. 여기서 nginx 설정을 지우고 재구성 해본다.설정을 지우기 전에 Telegraf Config > Edit Telegraf config directly 메뉴를 선택하고, 여기에 보이는 xml의 내용을 복사하여 백업해 놓도록 한다.아래 그림에서 Measurement의 nginx를 선택한 후 Remove Measurement 버튼으로 삭제할 수 있다.변경된 내용의 저장은 우상단의 &quo…

Zipkin과 Scouter v2.5를 연동해보자.

이미지
Scouter v2.5 에 Zipkin 지원 기능이 추가되었다.

지난 9월말에 Scouter의 버전을 1.x에서 2.x로 올리며 v2의 방향을 다양한 오픈소스와의 통합으로 정하였는데 v2.5는 inbound로의 통합이 어느 정도 진행된 버전이다.
(v2.0 telegraf 호환 서버 기능, v2.5 zipkin-scouter storage 기능)



Zipkin과의 통합을 위해서는 Zipkin server의 storage를 scouter로 설정한 후 Zipkin server를 구동하면된다.
이때 필요에 따라 scouter의 collector의 IP등을 설정할 수 있다.
그러면 Zipkin server로 수집되는 span들은 scouter server로 저장되고 scouter의 client를 통해 이를 확인할 수 있다.

그럼 이제 Zipkin을 통하여 서비스의 Trace 데이터 수집하고 이를 Scouter의 XLog로 모니터링 해보도록 하자.

0. scouter server (v2.5) 실행본 예제에서는 Scouter server v2.5가 실행된 vm과 동일한 vm에 zipkin server를 실행하는 것으로 가정하고 진행한다.아래 Step들을 진행하기 전에 먼저 Scouter server v2.5+를 다운로드 받고 기동시킨다.Scouter를 처음 사용한다면 Scouter 설치하기를 참고한다.
1. zipkin-scouter-storage를 포함하여 Zipkin server 실행하기최신버전의 zipkin을 다운로드 받는다.wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'


최신버전의 zipkin-storage-scouter를 다운로드 받는다.
wget -O zipkin-storage-scouter.jar 'https://search.maven.org/remote_content?g…

Scouter APM 소소한 시리즈 #4 - XLog 활용 - 상세기능

이미지
Scouter is an APM optimized for developers. XLog 활용 Scouter 개발시 가장 중점을 두었던 것 중 하나가 "XLog 차트 안에서 모든 문제를 다 해결할 수 있도록 하자" 였습니다. 그래서 XLog 차트는 상당히 많은 기능을 가지고 있으며 그중 중요한 기능들에 대해 설명하도록 하겠습니다.

1. XLog의 조작 (1) 키보드를 통한 간편 이동실시간 XLog 차트에서 키보드를 사용하여 XLog 차트의 시간을 이동시킬수 있습니다. 이를 통해 가까운 과거 시점으로 빠르게 이동이 가능합니다. (큰 시간을 이동하여야 하면 Load History 메뉴를 사용하여야 합니다.)좌우 화살표 : 한번 누르는 경우 10초를 이동합니다.상하 화살표 : 한번 누르는 경우 일정한 비율로 Y축의 스케일을 조절합니다. (2) Y축 항목 변경
Y축 항목을 응답시간(ElapsedTime)이 아닌 다른 값으로 변경할 수 있습니다.현재 서비스가 CPU bound인지 혹은 SQL이나 Api call bound인지를 한눈에 파악할때 주로 사용하게 됩니다.혹은 SQL 호출 회수가 많은 서비스를 골라내거나, 메모리 사용량이 많은 서비스를 골라낼때 사용하기도 합니다.
(3) Load History 과거 특정 시점의 XLog 차트를 로드하기 위해 사용합니다. (4) Summary 화면에 표현된 XLog 점들에 대한 통계를 바로 확인할 수 있는 기능입니다.예를 들면 각 서비스에 대한 총 호출 건수 및 총 응답시간, 평균 응답시간, SQL 및 API 호출에 대한 평균 응답시간 등을 확인할 수 있습니다. (5) Filter XLog를 통한 분석시 가장 많이 사용되는 기능중의 하나입니다. 원하는 조건의 XLog 점들만 보여지도록 하는 기능으로 필터를 적용하면 XLog 차트의 배경색이 에메랄드 색으로 변경됩니다.
Service : Service명으로 Filter 적용IP : IP로 Filter 적용StartHMS: 요청 시작 시간으로 Filter 적용User-Age…

Scouter APM 소소한 시리즈 #3 - Active Service와 XLog

이미지
Scouter is an APM optimized for developers. APM이 다른 모니터링 도구와의 차이점 중 하나는 발생한 문제의 결과가 아닌 원인에 접근할 수 있다는 것입니다.

이를 위해 Scouter에서는 어플리케이션이 지금 어떤 코드를 실행하고 어디서 지연되고 있는지를 파악할 수 있는 "Active Server 모니터링"과 이미 응답한 요청에 대해 상세 분석할 수 있는 Scatter 형식의 차트인 "XLog"를 제공합니다.
1. Active Service 모니터링 "Active service"란 현재 시점에 어플리케이션에서 수행되고 있는 요청을 나타냅니다. 이에 대한 모니터링은 주로 "Active Service EQ" 차트로 하게되는데, 서비스 지연으로 인한 장애를 가장 먼저 발견할 수 있는 차트이기도 합니다.
위 그림은 다섯개의 인스턴스를 모니터링하고 있으며 숫자는 현재 동시에 실행중인 서비스의 개수를 의미합니다. 지연되는 서비스는 3초 이후에는 노란색, 7초 이후에는 빨간색으로 표시가 됩니다.
여기서 실행중인 서비스의 정보를 알고 싶다면 상세히 보고싶은 인스턴스를 더블클릭하면 "Active Service List" 화면이 열리게 됩니다.

여기서는 호출된 서비스명과 현재까지 수행중인 시간(ms), 요청자 IP, 쿼리나 다른 서비스를 호출하고 대기중이라면 해당 쿼리나 서비스의 이름, Thread의 상태와 이름등이 보여집니다.  Service - 요청한 서비스의 이름Elapsed - 현재 시점까지 수행중인 시간Note - 현재 수행중인 쿼리 혹은 원격 호출하고 대기중인 다른 서비스CPU - Thread가 생성된 후 현재까지 사용한 CPUIP - 요청자 IPState / Name - Thread의 상태와 이름 여기서 상세하게 보고 싶은 서비스가 있다면 해당 서비스를 더블클릭하면 아래와 같은 상세화면이 열립니다.

위 예에서는 HttpClient가 서비스 요청하…

SCOUTER 써드파티 UI인 "PAPER" 릴리즈 기념 빠르게 설치해보기

이미지
이미 Scouter의 코어나 Web API를 통해서 UI를 만드신다는 소식은 몇 번 접하였고, 몇몇 회사에서는 특정 제품의 APM 엔진으로 사용되거나 또는 기업 내부에서 사용하는 자체 APM으로 개발된 것도 보았습니다만 오픈 소스로 공개된 적은 없었습니다.

드디어 오픈소스로 개발된 스카우터의 첫번째 3rd party UI인 PAPER가 나왔네요.
케빈님 감사합니다!!
호주 케빈님이 아닌 카카오 케빈님 이십니다.
mindplates(마음판??) 또는 beperson(인간이되거라??)이라는 닉으로 주로 활동하십니다. 아 그리고 Paper를 같이 개발하실 분들 대모집 이라고 합니다. 관심 있으신 분들 컨택해 보시길.. 제가 연결해 드릴수도 있습니다.
React로 개발되어 있으니 이쪽 관심있으신 분들이 많이 참여하셨으면 좋겠습니다.(전 UI알못이라...)

출시 기념으로 제가 설치를 한번 해보도록 하겠습니다.
Paper를 사용하기 위해서는 scouter v1.8.4.1 이상을 사용하여야 합니다.
1. scouter demo 설치 여기서는 데모 환경을 설치하며 운영 환경에 설치할 경우는 정식 버전 설치 방법에 따라 설치하여야 합니다. SCOUTER DEMO를 다운로드하고 압축을 풉니다.
wget https://github.com/scouter-project/scouter-demo/releases/download/v1.8.4.1/demo-env1.tar.gz ... tar -xvzf demo-env1.tar.gz ... Scouter Server, Host Agent, 데모 환경(jpetstore)를 차례로 실행시킵니다.
cd ./demo-env1 ./start-scouter-server.sh ... ./start-scouter-host.sh ... ./start-tomcat.sh ... 데모 환경에서는 가상의 부하를 줄수 있는 기능이 있습니다. 필요하다면 이를 실행합니다.
5분간 실행되며 종료시 이 script를 다시 실행하면 됩니다.
./start-jmeter.…

Scouter APM 개발환경 구성하기

이미지
Scouter 개발 환경을 구성해보자.

사전 준비 사항 먼저 Java 8, Maven 3, Git 이 설치되어 있어야 하며 GitHub 계정이 있어야 한다. 당연히 PC에 Eclipse (Neon)나 IntelliJ 같은 개발 도구도 설치되어 있어야 한다. 1. GitHub에서 Fork 하기Scouter Github 저장소에서 내 저장소로 Fork 한다.Scouter 저장소 : https://github.com/scouter-project/scouter(물론 당연히 예의상 Fork를 누르기 전에 Star를 먼저 눌러준다!)개발환경을 구성하기 위해 좀 전에 Fork한 저장소를 내 PC로 Clone 한다.필자의 경우는git clone https://github.com/gunlee01/scouter.git
develop branch로 변경한다.git checkout develop

2. Eclipse에 개발환경 구성하기  여기서는 Eclipse Neon3를 기준으로 설명한다.
 현재 시점 최신버전인 Scouter 1.7.x 의 클라이언트 개발을 위해서는 Eclipse Neon이 필요하다.
(1) Eclipse Neon을 Java 8로 실행한다. 기본 Java가 Java 8 JDK가 아닌경우에는 eclipse.ini에 vm 경로를 PC에 설치되어 있는 java 8 JDK로 설정한다. (2) git clone 받은 위치의 scouter project 소스를 eclipse로 import 한다.우리는 이미 local PC에 소스를 받아놓은 상태이므로 "Existing Maven Project"로 import 받는다.

정상적으로 import되면 자동으로 빌드가 수행되는데 scouter.serverscouter.webapp이 빌드가 되지 않을 수 있다.scouter.webapp은 Lombok이 필요하고 scouter.server는 scala IDE가 필요한데 Eclipse에 이 두가지가 기본으로 포함되어 있지 않기 때문에 빌드 에러가 발생하게 되며 추가적인 설…

이 블로그의 인기 게시물

Scouter APM 소소한 시리즈 #1 - 설치하기

Scouter APM 소소한 시리즈 #4 - XLog 활용 - 상세기능

Scouter APM 소소한 시리즈 #2 - 기본 항목 모니터링(1/2)