본문 바로가기

프로젝트/Pinpoint, Scouter 구축(APM)

Pinpoint 구축 중간 정리

목차

     

    환경 구축

    Pinpoint 2.3.x 버전 사용(Web, Agent, Collector).

    VirtualBox의 인스턴스들을 사용하여 가상화 환경에서 테스트 진행. (NAT network와 포트 포워딩을 사용하여 각 인스턴스에 요청 분할)

     

    - Main Server (Tomcat 위치, 자세한 내부 정보 확인용) : 2Core, 8G RAM, 20GB DISK

    - Pinpoint Server (Web 및 Collector 위치) : 4Core, 8GB RAM, 40GB DISK

    - 부가 Agent Server : 1Core .. 유동적 할당

     

    구축 메뉴얼

    Pinpoint Server

    1. 버전에 맞는 JAVA 설치, Pinpoint collector, Web 설치 (github 참조)

    2. HBase 설치 -> 스키마 생성 스크립트 설치. 기본 table setting을 만들어주는 스크립트가 존재

    https://github.com/pinpoint-apm/pinpoint/blob/master/hbase/scripts/hbase-create.hbase

    3. hbase 실행 및 collector, web 실행

    이 과정에서 nohup 및 실행 명령어를 면밀히 확인할 것.

    nohup java -jar -Dpinpoint.zookeeper.address=localhost 파일명 >/dev/null 2>&1 &
    
    이 구문은 Java 시스템 프로퍼티 -Dpinpoint.zookeeper.address=localhost을 설정한다. 
    이는 Pinpoint가 ZooKeeper 서버로 localhost를 사용하도록 지시한다.
    
    이 설정을 하지 않아 계속 Connection ERR가 떴다.

     

     

    Agent Server

    1. 기본 환경 구축 (Spring 등)

    2. pinpoint agent 설치(  config 폴더 안의 파일에서 collector ip를 설정), Agent -> Collector로 정보 전송 시 기본적으로 9991 ~ 9993 포트를 사용

     

    3. jar을 직접 실행하지 않고 sh 코드를 통해 tomcat 구동 시 같이 실행되게 함.

    Dockerfile(컨테이너 사용 시)을 사용하거나, 이번 경우처럼 tomcat 내부에 스크립트 코드를 생성할 수 있음.

    4. Tomcat 내부의 catalina.sh 코드 변경하여 agent jar 파일 설정(혹은 setenv.sh 생성 후 변경(권장))

    #Add Pinpoint Agent Option
    CATALINA_OPTS="$CATALINA_OPTS -javaagent:경로 /pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=myTestAPM"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=TestApplicationName"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.config=경로 /pinpoint/pinpoint-agent-2.3.3/pinpoint-root.config"

     

    5. 요청 사항 발생 시 java agent api를 기반으로 한 pinpoint agent가 JVM의 내부 실행 바이트코드를 파싱, collector 주소로 data 전송 -> 이를 web으로 전송

     

     

     

    기타(port)

     

    Hbase 
    2181 : Client가 Zookeeper 연결에 사용하는 포트
    16010 : HBase 마스터 웹 포트, localhost:16010로 HBase 웹 UI 사용 가능
    9991 ~ 9993 : JVM agent가 Collector로 전송하는 포트(현재 설정상 9991)