운영체제 이야기/Linux(CentOS)

[CentOS7] APM 프로그램 Scouter + Slack 을 이용한 JAVA 서비스 모니터링 - 1편

한희성 2021. 7. 19.
반응형

소개

JVM 기반 WAS, OS 모니터링 시스템으로 오픈소스 APM 입니다. 스카우터는 크게 4가지 모듈로 구성되어 있으며, 각 역할은 아래 에서 소개하도록 하겠습니다. Java 시스템에서 주로 사용하지만 스카우터 git 설명에 따르면 다른 시스템에서도 사용 가능한 것으로 보입니다.

https://github.com/scouter-project/scouter/blob/master/README_kr.md

 

scouter-project/scouter

Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter

github.com

 

스카우터 기본 구성

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

 

시스템 적용 버전

1. API Server

    * CentOS7.9

    * JAVA 11

2. Backoffice Server

    * CentOS7.9

    * JAVA 11

3. 공통

    * scouter-all-2.12.0.1

 

설치

1. releases - https://github.com/scouter-project/scouter/releases
2. wget https://github.com/scouter-project/scouter/releases/download/v2.12.0.1.SNAPSHOT/scouter-all-2.12.0.1.SNAPSHOT.tar.gz
3. tar xzvf scouter-all-2.12.0.1.SNAPSHOT.tar.gz
4. cd scouter

 

각 모듈 확인

agent.batch

WAS 뿐만 아니라 대량의 데이터를 처리하는 배치 모듈등 통계 중심의 성능 데이터를 수집 및 분석

(https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Stand-alone-Java-Batch-Agent_kr.md)

 

agent.host

OS 성능정보를 수집하여(메모리, CPU) Server(Collector)로 전송

cd scouter/agent.host
cd conf
vi scouter.conf

주석을 해제하지 않으면 디폴트로 동작

net_collector_ip=127.0.0.1      // Server(collector) 의 IP 
#net_collector_udp_port=6100  // 기본 통신 포트
#net_collector_tcp_port=6100

 

JAVA_HOME의 위차가 특정 위치로 설정 되어 있다면 host.sh 을 아래와 같이 실행하자

#!/usr/bin/env bash

nohup $JAVA_HOME/bin/java  -classpath ./scouter.host.jar scouter.boot.Boot ./lib > nohup.out &
sleep 1
tail -100 nohup.out


agent.java

자바 어플리케이션에 포함된 채로 구동되며, JVM 수준에서 확인할 수 있는 자료들을 수집하여 Server(Collector)로 전송.

cd scouter/agent.java
cd conf
vi scouter.conf
#obj_name=WAS-01 //수집기에서 보여질 Object 이름
#net_collector_ip=127.0.0.1  //서버 IP
#net_collector_udp_port=6100 //기본 통신 포트
#net_collector_tcp_port=6100

 

was 실행 시 agent.java 가 같이 실행 되도록 설정

사내 서비스는 Embedded tomcat(spring boot)를 사용하기 때문에 scouter 정보를 java 명령어에 추가

nohup java -javaagent:/home/scouter/scouter/agent.java/scouter.agent.jar -Dscouter.config=/home/scouter/scouter/agent.java/conf/scouter.conf -jar jarName.jar --spring.profiles.active=dev &

 

server(collector)

scouter agent 의 수집기록을 받아 저장하고, scouter client 로 데이터를 내려주는 역할.

cd scouter/server
cd startup.sh

 

JAVA_HOME 별도로 설정 되어 있다면 아래와 같이 실행 시키며, 그외 추가 설정은 없다.

#!/usr/bin/env bash

nohup $JAVA_HOME/bin/java -Xmx1024m -classpath ./scouter-server-boot.jar scouter.boot.Boot ./lib > nohup.out &

sleep 1
tail -100 nohup.out

 

webapp(클라이언트)

수집기를 통해 지표들을 받아서 그래프로 표현.  JAVA로 만들어진 윈도우와 리눅스, 맥OS 버전이 모두 갖추어져 있다. 특정 조건을 걸어서 알림을 받을 수 있도록 설정 가능 (참고 : https://team-platform.tistory.com/14)

 

OS에 맞는 scouter client 다운로드하여 실행. 디폴트 계정은 admin/admin

https://github.com/scouter-project/scouter/releases/tag/v2.10.2 

 

 

참고 : 

https://team-platform.tistory.com/14

 

JAVA APM Scouter 활용 - 1부 APM 선정과 스카우터의 지표 소개

JAVA 기반 서비스에서 운영할수 있는 APM Tool 을 선정하는 과정에서 스카우터를 선택하고 구성을 마친 경험을 다루어 보려고 한다. 1부 APM 선정과 스카우터의 지표 소개 2부 스카우터 기능 활용 및

team-platform.tistory.com

https://daddyprogrammer.org/post/10230/scouter-apm-jvm-was-os-monitoring/

 

Scouter APM(Application Performance Monitoring)을 이용한 Java 서비스 모니터링

소개 JVM 기반 WAS, OS 모니터링 시스템으로 Opensource APM(Application Performance Monitoring)입니다. APM은 응용 프로그램 성능 모니터링 또는 응용 프로그램 성능 관리를 의미합니다. Scouter는 Server(Collector), Ag

daddyprogrammer.org

 

반응형

댓글

💲 추천 글