-
Pinpoint를 이용하여 서버 관리하기.Computer Science/Spring boot 2022. 11. 12. 21:35
https://github.com/pinpoint-apm/pinpoint
Datadog을 사용하다가 pinpoint로 넘어오게 되었다.
가장 큰 이유로는 비용이다. pinpoint는 오픈소스로 오픈 소스 라이센스 범위 내에서 자유롭게 사용할 수 있다는 것이 큰 장점이다.
구성요소
pinpoint의 가장 큰 구성요소라고 하면 3가지가 있다.
agent, collector, web으로 이들과 Hbase가 있다면 구성할 수 있다.
1. agent
Application의 모니터링한 정보를 collector로 보내주는 모듈이다.
2. collector
Agent에서 보내주는 정보를 Hbase에 적재하는 모듈이다.
3. web
Hbase 에 적재되어 있는 정보들을 web으로 ui를 구성해서 보여주는 모듈이다.
https://github.com/pinpoint-apm/pinpoint#compatibility
를 확인해보면 자신이 사용하고 있는 spring boot의 java Version에 맞추어서 쓰는 것이 좋다.
Java17을 사용하고 있기에 현재 가장 최근에 Release가 된 2.4.2 version을 사용하려고 한다.
hbase는 현재 2.x 까지 있지만 2.x대에는 추가 module을 설정 해주어야하고 해서
1.2.7을 사용하려고 한다. 다만 해당 hbase는 Java 1.8로 실행을 해야 오류가 안생기니 추가로 java 1.8도 설치를 해주자.
wget https://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz
tar xzvf hbase-1.2.7-bin.tar.gz
vi /home/ec2-user/hbase-1.2.7/conf/hbase-env.sh
해당 sh 파일을 열면 JAVA_HOME을 설정하는 곳이 있는데 그곳을 다운했던 java 1.8로 변경을 해주자.
# This script sets variables multiple times over the course of starting an hbase process, # so try to keep things idempotent unless you want to take an even deeper look # into the startup scripts (bin/hbase, etc.) # The java implementation to use. Java 1.7+ required. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/ # Extra Java CLASSPATH elements. Optional. # export HBASE_CLASSPATH=
또한 export한 두 옵션을 주석처리를 해주어야 warining이 뜨지 않으므로 주석처리를 해주자.
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+ #export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" #export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
ln -s hbase-1.2.7 hbase
hbase/bin/start-hbase.sh
해서 Hbase를 실행해준다.
Hbase의 Table을 만들어주어야하는데 공식 github에서 다 만들어주었다.
https://github.com/pinpoint-apm/pinpoint/tree/master/hbase/scripts
에서 hbase-create.hbase 를 다운 받아 실행해주자.
wget https://github.com/pinpoint-apm/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
hbase/bin/hbase shell ../hbase-create.hbase
이제 Hbase관련 준비가 끝났으니 3가지 모듈을 설치해보자.
https://github.com/pinpoint-apm/pinpoint/releases
모든 것은 release되어있는 곳에서 가져와서 사용하면된다.
2.4.2를 사용할 것이기에 2.4.2의
pinpoint-collector-boot-2.4.2.jar
이렇게 3가지를 다운 받아 진행하려고 한다.
우선 collector이다.
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.4.2/pinpoint-collector-boot-2.4.2.jar
chmod +x pinpoint-collector-boot-2.4.2.jar
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.4.2.jar >/dev/null 2>&1 &
로 실행을 하되 주의해야할 것은 현재 2.4.x의 collector와 web은 java 11로 실행하여야한다는 것이다.
collector실행뒤 web을 실행해준다.
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.4.2/pinpoint-web-boot-2.4.2.jar
chmod +x pinpoint-web-boot-2.4.2.jar
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.4.2.jar >/dev/null 2>&1 &
마찬가지로 java 11로 실행을 주의하고 진행하자.
이제 마지막으로 agent이다.
agent는 실행되고 있는 server에서 실행할 spring boot jar 파일과 같이 실행해준다.
이 agent가 java 7에서 18을 지원하기에 필자는 2.4.2 버전으로 진행하는 것이다.
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.4.2/pinpoint-agent-2.4.2.tar.gz
tar xvzf pinpoint-agent-2.4.2.tar.gz
cd pinpoint-agent-2.2.2
sudo vi pinpoint-root.config
config 파일에서 내 agent가 수집해서 보내야할 collector의 ip 주소를 입력해준다.
########################################################### # gRPC Configuration # ########################################################### profiler.transport.grpc.collector.ip= myCollectorUrl
그런뒤 agent와 함께 springboot를 실행해주면 된다.
java -jar -javaagent:/home/ec2-user/pinpoint-agent-2.4.2/pinpoint-bootstrap-2.4.2.jar -Dpinpoint.agentId=api1 -Dpinpoint.applicationName=API-SERVER -Dpinpoint.config=/home/ec2-user/pinpoint-agent-2.4.2/pinpoint-root.config "$JAR_NAME" 1>$REPOSITORY/lof.log 2>&1 &
'Computer Science > Spring boot' 카테고리의 다른 글
Servlet & DispatcherServlet (0) 2023.07.18 Spring boot Entity test code (0) 2022.10.07 Spring boot DB 한글 깨짐 현상 (0) 2022.10.06 Spring boot 생성자 주입으로 사용해야 하는 이유 (0) 2022.10.06 Spring boot api test code (0) 2022.10.06