네이버 오픈 APM 도구 Pinpoint (핀포인트) 도입하기 위해 잘 정리된 블로그가 있어서 공유 한다.
APM이란?
Application Performance Management
애플리케이션 성능 관리라는 뜻으로, 웹 서비스의 성능의 관리 및 향상을 도와주는 툴을 일컫는다.
Pinpoint란?

대규모 애플리케이션의 성능 및 구조를 분석하고 문제를 진단 및 처리하는 분산 시스템 추적 플랫폼으로, 네이버에서 개발 및 유지보수하고 있다.
Pinpoint의 장점
오픈 소스
Pinpoint는 오픈 소스로서, 유료 APM 솔루션들과 달리 오픈 소스 라이센스 범위 내에서 자유롭게 사용할 수 있다. 또한 네이버에서 개발 중인 툴이기 때문에 한국어 문서도 찾아볼 수 있다.
간편한 설치
설치 및 적용이 간편하고, UI도 직관적이다.
Pinpoint의 구조

Pinpoint의 구조는 다음과 같다.
Pinpoint는 Hbase를 매트릭 저장소로 사용한다.
Agent가 Application의 데이터를 수집하여 Collector에 전송하면, Collector가 해당 데이터를 Hbase에 적재하고, Web UI에서 Hbase의 데이터를 읽어 화면에 출력하는 구조이다.
Agent(App) -> Collector -> Hbase -> Web의 방식인 것이다.
Pinpoint 적용
설치 환경
CentOS 7.6
JDK 11
Hbase-2.4.14
Pinpoint 2.3.0
1. Hbase 설치
먼저 저장소인 Hbase부터 설치해야 한다.
# hbase 다운로드
1. wget http://mirror.navercorp.com/apache/hbase/2.4.14/hbase-2.4.14-bin.tar.gz
# 압축해제
2. tar -zxvf hbase-2.4.14-bin.tar.gz
Hbase는 Java 기반이기 때문에, JDK의 경로를 등록해줘야 한다.
vi /conf/hbase-env.sh
ex) vi /home/think/app/pinpoint/hbase-2.4.14/conf/hbase-env.sh

Java가 설치된 경로로 잡아주면 된다.
# Hbase를 시작
./bin/start-hbase.sh
Hbase를 시작한 후, Pinpoint에 사용되는 테이블 생성 Hbase Script를 실행한다.
# 스크립트 다운로드
wget https://github.com/pinpoint-apm/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
# 스크립트 실행
./bin/hbase shell hbase-create.hbase

2. Pinpoint 설치
Collector, Web 설치 및 실행 (CentOS8 기준)
- Pinpoint Collector 설치 및 실행
// port: 8081 $ wget https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.0/pinpoint-collector-boot-2.3.0.jar $ java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.3.0.jar & - Pinpoint Web 설치 및 실행
// port: 8080 $ wget https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.0/pinpoint-web-boot-2.3.0.jar $ java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.3.0.jar & - {접속할IP}:8080 으로 접속하면 된다.

Agent 설치 및 실행 (CentOS8 기준)
- Pinpoint에 로그를 보낼 서버에 Pinpoint Agent 설치
# agent 다운 및 압축해제
$ wget https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.0/pinpoint-agent-2.3.0.tar.gz
$ tar -zxvf pinpoint-agent-2.3.0.tar.gz
3. 실행
실행할 어플리케이션에 VM 옵션으로 -javaagent로 Pinpoint 설정을 붙여 실행한다. (인텔리제이)
java -jar
-javaagent:(PINPOINT Root)/pinpoint-bootstrap-2.3.0.jar
-Dpinpoint.agentId=(Agent Id)
-Dpinpoint.applicationName=(Application Name)
-Dpinpoint.config=(pinpoint-root.config Root) (JAR NAME).jar
ex)
-javaagent:/Users/think/pinpoint/hbase-2.4.13/pinpoint-agent-2.3.0/pinpoint-bootstrap-2.3.0.jar
-Dpinpoint.agentId=think-local
-Dpinpoint.applicationName=think-admin-local
-Dpinpoint.config=/Users/think/pinpoint/hbase-2.4.13/pinpoint-agent-2.3.0/pinpoint-root.config
릴리스 2.3.0 pinpoint-apm 깃 주소 https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.0
참고:
https://developerlee79.github.io/blog/pinpoint, https://bkjeon1614.tistory.com/662, https://bkjeon1614.tistory.com/662
'SpringBoot' 카테고리의 다른 글
| [Lombok] Using Lombok UtilityClass (0) | 2023.03.02 |
|---|---|
| [SpringBoot] CIDR 주소체계 계산을 도와주는 SubnetUtils (0) | 2023.01.19 |
| [Spring Boot] Thymeleaf Layout Dialect (0) | 2022.07.24 |
| 스프링 부트(Spring Boot) 게시판 만들기 (0) | 2020.06.20 |
| 스프링 게시판 만들기 (0) | 2019.12.15 |
댓글