나의 주니어 개발 일기/Docker(도커)
Pinpoint 를 통해서 모니터링을 해보자
추억을 백앤드하자
2024. 5. 13. 11:08
728x90
반응형
SMALL
pinpoint란?
대규모 분산 시스템에서 성능 분석, 문제 진단 및 처리 하는 플랫폼이다.
내부적으로 서버 상태를 실시간으로 모니터링 할 수 있는 다양한 시각지표를 제공한다.
구성도
pinpoint는 Agent+Manager 로 구성된다.
Agent는 애플리케이션의 모니터링을 위한 수집 정보를 Pinpoint Collector로 전달한다.
Pinpoint Collector는 Agent로 부터 받은 정보를 HBASE에 적재한다.
Pinpoint Web은 적재 데이터를 Web으로 표출해준다.
1. pinpoint 설치
$ git clone https://github.com/naver/pinpoint-docker.git
$ cd pinpoint-docker
$ docker-compose pull
$ docker-compose up -d
2. pinpoint-agent 설치
$ mkdir pinpoint-agent
$ cd pinpoint-agent
# agent 설치
$ wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.1/pinpoint-agent-2.5.1.tar.gz
# 압축 해제
$ tar xvzf pinpoint-agent-2.5.1.tar.gz
# agnet 설정 파일 수정
$ vi.../pinpoint-agent-2.5.1/pinpoint-root.config
3. 감시모듈 실행시 pinpoint 아규먼트 적용
$ java -javaagent:${pinpoint-bootstrap-2.5.1.jar_경로입력}
-Dpinpoint.agentId=demo
-Dpinpoint.applicationName=Test-Server
-Dpinpoint.config=${pinpoint-root.config_경로입력}
-jar myModule.jar
4. 모니터링 web 접속하기
docker-compose 파일을 확인하면 pinpoint-web 인스턴스 정보를 확인할 수 있다.
"${WEB_SERVER_PORT:-8080}:8080"
를 포트를 참고하자.
pinpoint-web:
container_name: "${PINPOINT_WEB_NAME}"
image: "pinpointdocker/pinpoint-web:${PINPOINT_VERSION}"
depends_on:
- pinpoint-hbase
- pinpoint-mysql
- zoo1
- redis
restart: always
expose:
- "9997"
ports:
- "9997:9997"
- "${WEB_SERVER_PORT:-8080}:8080"
...
...
${WEB_SERVER_PORT:-8080}
환경변수 정보는 상위 디렉토리 pinpoint-docker
에서 .env
파일을 통해 확인할 수 있다.
.env
...
### Pinpoint-Web
PINPOINT_WEB_NAME=pinpoint-web
WEB_SERVER_PORT=1239
...
나 같은 경우 Web port를 1239
로 설정하였다.
도커에서도 확인할 수 있다.
$ docker ps
==============================================================
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e65883154f60 pinpointdocker/pinpoint-web:latest "sh /pinpoint/script…" About an hour ago Up About an hour 0.0.0.0:9997->9997/tcp, :::9997->9997/tcp, 0.0.0.0:1239->8080/tcp, :::1239->8080/tcp pinpoint-web
본인아이피:web포트
접속을 통해 확인해보자
MSA 환경에서 Request에 대한 추적을 모니터링 하기 쉽고, 오류 지점을 파악할 수 있도록 도와준다.
또한 IDE 수준에서 파악할 수 있는 CallStack 정보도 확인이 가능하며, JVM 메모리 정보나 서버 자원정보 등등 다양하고 자세한 엔드포인트 들을 제공해준다.
결국 Pinpoint로 모든것을 쉽게 모니터링을 할 수 있다.
모니터링이 필요한 시스템이면 Pinpoint는 한번쯤 꼭 고민해보면 좋을거 같다.
728x90
반응형
LIST