Open source APM Scouter – InfluxDB – Grafana 연동 step by step

Scouter에 InfluxDB 공식 Plugin이 릴리즈 됨에 따라 이전에 Scouter APM, influxdb, grafana 로 모니터링 대시보드 만들기 라는 글에서 소개한 내용을 scouter-influx-plugin을 통해 직접 연동해 보았습니다.

먼저 Scouter 를 설치합니다.

저는 Quick start 가이드를 통해 샘플 데모 환경을 설치하였습니다.
– [Scouter Quick Start Guide]

Scouter를 설치하여 Server, Host Agent, Java agent가 탑재된 웹어플리케이션을 기동한 후 잘 수행중인지 Client로 확인하여 봅니다.
스크린샷 2016-04-01 오후 5.43.21.png데이터가 잘 들어오고 있네요.

InfluxDB를 설치하도록 하겠습니다.

각 OS에 맞는 설치는 공식 페이지를 참고하시기 바랍니다.
[InfluxDB Installation]

brew update
brew install influxdb

InfluxDB를 시작해 보도록 하겠습니다.

influxd -config /usr/local/etc/influxdb.conf

Database를 생성하기 위해 influx에 접속합니다.
스크린샷 2016-04-01 오후 6.15.11

ScouterCounter라는 database를 생성합니다.

CREATE DATABASE scouterCounter

(실제 운영시는 retention policy 를 지정하고 CQ를 통해 지난데이터를 downsampling 해야 겠지만 여기서는 설명을 생략 하도록 하겠습니다.)
[down sampling and retention]

저는 UDP프로토콜을 통해 데이터를 전송할 것이므로 influxDB의 UDP설정을 활성화 하도록 하겠습니다.
influxdb.conf를 수정합니다.
[influxdb – UDP 가이드 페이지]

저는 8089 포트를 사용하였습니다.
스크린샷 2016-04-01 오후 7.14.59.png
influxdb를 재기동 합니다.

Scouter Server에 influxdb-plugin을 설치합니다.

release 페이지에서 plugin을 다운로드 받습니다. 제공하는 모든 *.jar를 받아야 합니다.
다운로드 받은 scouter-plugin-server-influxdb-x.x.x.jar 및 기타 참조 jar 파일들을 scouter server가 설치된 디렉토리의 ./lib 에 복사합니다.
default 설치상태이므로 influxdb와 연동을 위한 추가적인 설정은 하지 않았습니다.
plugin의 상세 설정은 plugin에 대한 도큐먼트 페이지를 참고하시기 바랍니다.
아무 설정을 하지 않은 경우는 성능데이터를 influxdb로 전송시 UDP를 이용해 localhost 8089로 전송합니다.(설정을 통해 UDP / HTTP 선택 및 Target IP/Port 등의 지정이 가능합니다)

Scouter Server를 재기동 합니다.

influxdb에 데이터가 잘 들어오는지 확인해 봅니다.

use scouterCounter
show measurements
select * from counter limit 5

데이터가 잘 들어오는 것을 확인한 후 이제 Grafana를 설치하도록 하겠습니다.

Grafana 설치

각 OS별 설치 방법은 Grafana document를 참고하시기 바랍니다.
라구 하고…
설치하려고 했더니… 헉.. OS X용만 바이너리를 제공하지 않네요.  이런  ;-(
Go 1.5와 NodeJS가 필요합니다.
일단 Go를 깔겠습니다. (NodeJS는 있는지라.)
Windows와 Linux는 다행히 binary를 제공합니다.

갑자기 의도치 않게 Go를 설치하게 되었습니다.
이번 기회에 Go를 배울까하는 생각이 살짝 스쳐지나가네요.
Go 공식페이지에서 패키지를 다운로드 받아 설치하였습니다.

그러면 Grafana를 빌드하도록 하겠습니다.

export GOPATH=`pwd`
go get github.com/grafana/grafana

왠지 멈춘듯 해 보이지만 인내심을 가지고 기달리셔야 합니다. 좀 걸리네요.

cd $GOPATH/src/github.com/grafana/grafana
go run build.go setup
$GOPATH/bin/godep restore
go run build.go build

마찬가지로 인내심이 필요합니다.

여기까지가 go로 개발된 bac kend 빌드이고 이제 front end를 빌드합니다.

npm install
npm install -g grunt-cli
grunt

이제 Grafana를 실행해 봅니다.

/bin/grafana-server

드디어 설치 완료입니다.
http://localhost:3000 으로 접속이 가능합니다.
(초기 사용자는 admin / admin 입니다.)

Datasource를 설정해 보겠습니다. 앞서 설치했던 influxDB로 지정합니다.
스크린샷 2016-04-01 오후 9.11.19.png
스크린샷 2016-04-01 오후 9.15.09.png

datasource를 추가하였으면 dashboard > new 메뉴를 통해 새 dashboard를 생성합니다.

counter measurement를 선택해서 CPU와 memory를 2초 평균으로 보이게 세팅하였습니다.
(scouter의 data가 2초 간격입니다. 더 좁혀봐야 의미가 없습니다.)

스크린샷 2016-04-01 오후 10.19.23.png

몇가지 더 추가해 보았습니다.
스크린샷 2016-04-01 오후 10.34.43.png

Grafana는 보고 싶은 성능 Counter를 쉽게 배치해 볼 수 있어 좋은 것 같습니다.

아래는 제가 만들어 본 데모페이지 입니다.
http://demo.scouterapm.com:3000/
scouter/scouter로 로그인 가능합니다.

#SCOUTER, #담엔뭐만들지, #Contributor모집, #얼른Node.js추가하고싶다

Open source APM Scouter – InfluxDB – Grafana 연동 step by step”에 대한 8개의 생각

    1. influxdb 연동은 단순 시계열 데이터인 숫자로 표현되는 성능 정보들을 수집하는 용도로 활용이 가능하므로 부가적인 용도로 보시면 됩니다.
      그외 액티브 서비스 상세 상태, 통계, 각 URL, 쿼리에 대한 상세 정보, XLog 및 상세 Profile 등은 client를 통해 봐야합니다.

      좋아요

  1. cap_Lee댓글:

    한 가지 문의드리겠습니다. scouter server와 collector는 같은 서버에 설치하고, client를 통해 원격으로 접속할 수 있나요? 현재 클라이언트는 collector에서 127.0.0.1:6100으로만 접속이 되고, 다른 원격지에서는 접속이 안 되네요. 방화벽 문제 같지는 않습니다. 답변 해주시면 감사하겠습니다.

    좋아요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중