1. Pinpoint 정의
APM 이란 Application Performance Management 애플리케이션 성능 관리라는 뜻으로 웹 서비스의 성능 관리 및 향상을 도와주는 툴이다.
Pinpoint 란 대규모 애플리케이션의 성능 및 구조를 분석하고 문제를 진단 및 처리하는 분석 시스템 추적 플랫폼
Pinpoint github : https://github.com/pinpoint-apm/pinpoint
2. Pinpoint 설치
2-1) JAVA 설치
- JDK 다운로드 : ORACLE
$ wget https://files-cdn.liferay.com/mirrors/download.oracle.com/otn-pub/java/jdk/8u121-b13/jdk-8u121-linux-x64.rpm
$ rpm -Uvh jdk-8u121-linux-x64.rpm
$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
- 환경변수 설정
$ vi /root/.bash_profile
export JAVA_HOME=/usr/java/jdk1.8.0_121
export JAVA_6_HOME=/usr/java/jdk1.6.0_45
export JAVA_7_HOME=/usr/java/jdk1.7.0_80
export JAVA_8_HOME=/usr/java/jdk1.8.0_121
2-2) HBase 설치
$ wget http://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz
$ tar xvf hbase-1.2.7-bin.tar.gz
# hbase 데이터 설정위치
$ vi hbase-1.2.7/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/pinpoint/hbase-data/data</value> #데이터 디렉토리경로
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/pinpoint/hbase-data/zookeeper</value> #zookeeper 디렉토리 경로
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
<description>
Controls whether HBase will check for stream capabilities (hflush/hsync).
Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
with the 'file://' scheme, but be mindful of the NOTE below.
WARNING: Setting this to false blinds you to potential data loss and
inconsistent system state in the event of process and/or node failures. If
HBase is complaining of an inability to use hsync or hflush it's most
likely not a false positive.
</description>
</property>
</configuration>
# data, zookeeper 디렉토리 생성
$ mkdir -p /data/pinpoint/hbase-data/data
$ mkdir -p /data/pinpoint/hbase-data/zookeeper
- Hbase 시작
$ /data/hbase-1.2.7/bin/start-hbase.sh
starting master, logging to /data/hbase-1.2.7/bin/../logs/hbase-root-master-mongo-shard1.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
$ netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26370/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1022/master
tcp6 0 0 :::44309 :::* LISTEN 24743/java
tcp6 0 0 :::22 :::* LISTEN 26370/sshd
tcp6 0 0 xxx.xxx.xxx.xxx:41335 :::* LISTEN 24743/java
tcp6 0 0 xxx.xxx.xxx.xxx:42117 :::* LISTEN 24743/java
tcp6 0 0 :::2181 :::* LISTEN 24743/java
tcp6 0 0 :::16010 :::* LISTEN 24743/java
- Hbase 스키마 생성
아래 github에 있는 파일을 다운로드 받습니다
https://github.com/pinpoint-apm/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
$ wget https://github.com/pinpoint-apm/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
$ sed 's/31536000/604800/' hbase-create.hbase > hbase-create-my.hbase
$ sed -i 's/5184000/604800/' hbase-create-my.hbase
$ /data/hbase-1.2.7/bin/hbase shell /data/hbase-create-my.hbase
2022-04-01 14:44:44,347 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
0 row(s) in 2.0200 seconds
0 row(s) in 8.5610 seconds
0 row(s) in 8.5340 seconds
0 row(s) in 1.3080 seconds
0 row(s) in 1.3150 seconds
0 row(s) in 1.3200 seconds
0 row(s) in 1.2780 seconds
0 row(s) in 2.3820 seconds
0 row(s) in 2.3350 seconds
0 row(s) in 18.6080 seconds
0 row(s) in 2.3240 seconds
0 row(s) in 2.2980 seconds
0 row(s) in 2.3430 seconds
0 row(s) in 2.3510 seconds
0 row(s) in 1.2630 seconds
TABLE
AgentEvent
AgentInfo
AgentLifeCycle
AgentStatV2
ApiMetaData
ApplicationIndex
ApplicationMapStatisticsCallee_Ver2
ApplicationMapStatisticsCaller_Ver2
ApplicationMapStatisticsSelf_Ver2
ApplicationStatAggre
ApplicationTraceIndex
HostApplicationMap_Ver2
SqlMetaData_Ver2
StringMetaData
TraceV2
15 row(s) in 0.0390 seconds
2-3) web,collector 다운로드 및 설정
pinpoint 2.1.0 이상부터는 tomcat을 설치하지 않고도, spring boot를 이용해서 실행이 가능합니다.
참고) https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.1.2
$ wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.2/pinpoint-collector-boot-2.1.2.jar
$ wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.2/pinpoint-web-boot-2.1.2.jar
$ vi pinpoint-start.sh
#!/bin/bash
cd /data/pinpoint
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.1.2.jar >/dev/null 2>&1 &
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.1.2.jar >/dev/null 2>&1 &
$ chmod 755 pinpoint-start.sh
$ ./pinpoint-start.sh
$ netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1098/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1032/master
tcp6 0 0 xxx.xxx.xxx.xxx:41335 :::* LISTEN 24743/java
tcp6 0 0 :::2181 :::* LISTEN 24743/java
tcp6 0 0 :::9991 :::* LISTEN 11513/java
tcp6 0 0 :::9992 :::* LISTEN 11513/java
tcp6 0 0 :::9993 :::* LISTEN 11513/java
tcp6 0 0 :::9994 :::* LISTEN 11513/java
tcp6 0 0 :::16010 :::* LISTEN 24743/java
tcp6 0 0 xxx.xxx.xxx.xxx:9997 :::* LISTEN 11514/java
tcp6 0 0 :::8080 :::* LISTEN 11514/java
tcp6 0 0 :::35664 :::* LISTEN 24743/java
tcp6 0 0 :::8081 :::* LISTEN 11513/java
tcp6 0 0 :::22 :::* LISTEN 1098/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1032/master
tcp6 0 0 xxx.xxx.xxx.xxx:42117 :::* LISTEN 24743/java
2-4) Agent 설치
Tomcat 이 설치된 Agent 내에 Agent 파일을 풉니다
$ wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.2/pinpoint-agent-2.1.2.tar.gz
$ tar xvf pinpoint-agent-2.1.2.tar.gz
$ vi /data/pinpoint/pinpoint-agent-2.1.2/pinpoint-root.config
profiler.transport.grpc.collector.ip=COLLECTOR PUBLIC IP
$ vi /data/pinpoint/pinpoint-agent-2.1.2/profiles/local/pinpoint.config
profiler.transport.grpc.collector.ip=COLLECTOR PUBLIC IP
profiler.transport.grpc.collector.ip=COLLECTOR PUBLIC IP
$ vi /data/pinpoint/pinpoint-agent-2.1.2/profiles/release/pinpoint.config
profiler.transport.grpc.collector.ip=COLLECTOR PUBLIC IP
profiler.collector.ip=COLLECTOR PUBLIC IP
$ vi /data/apache-tomcat-8.5.77/bin/catalina.sh
JAVA_OPTS 추가
JAVA_OPTS="-javaagent:/data/pinpoint/pinpoint-agent-2.1.2/pinpoint-bootstrap-2.1.2.jar -Dpinpoint.agentId=tomcat_test -Dpinpoint.applicationName=tomcat_test"
TOMCAT 재시작
3. Pinpoint web 접속
1) WEB 접속
- COLLECTOR 서버 공인 아이피:8080 으로 접속합니다
- Agent를 설치하게 되면 어플리케이션 선택하는 부분에 생기게 되며, 모니터링이 가능합니다.
참조 URL)
https://velog.io/@developerlee79/Pinpoint-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
https://github.com/pinpoint-apm/pinpoint
https://velog.io/@developerlee79/Pinpoint-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
'LINUX > WEB' 카테고리의 다른 글
[Tomcat] org.apache.catalina.LifecycleException: Protocol handler start failed (0) | 2022.05.25 |
---|---|
[GeoIP] dat 파일로 변환 (0) | 2022.05.24 |
Tomcat 8.5 Cookie 설정 (0) | 2022.03.21 |
[Java] java.security.InvalidKeyException: Illegal key size 해결 방안 (0) | 2022.03.20 |
Tomcat Memory Leak 설정 (0) | 2022.03.18 |