본문으로 바로가기
728x90
반응형
SMALL

pinpoint란?

대규모 분산 시스템에서 성능 분석, 문제 진단 및 처리 하는 플랫폼이다.

내부적으로 서버 상태를 실시간으로 모니터링 할 수 있는 다양한 시각지표를 제공한다.

구성도

img

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