Pinpoint是一個(gè)開源的 APM (Application Performance Management/應(yīng)用性能管理)工具姊舵,用于基于java的大規(guī)模分布式系統(tǒng)棘劣。 仿照Google Dapper嗅虏,Pinpoint通過跟蹤分布式應(yīng)用之間的調(diào)用來提供解決方案赤惊,以幫助分析系統(tǒng)的總體結(jié)構(gòu)和內(nèi)部模塊之間如何相互聯(lián)系敲长。
Pinpoint-Collector:收集各種性能數(shù)據(jù)
Pinpoint-Agent:和自己運(yùn)行的應(yīng)用關(guān)聯(lián)起來的探針
Pinpoint-Web:將收集到的數(shù)據(jù)顯示成WEB網(wǎng)頁形式
HBase Storage:收集到的數(shù)據(jù)存到HBase中
安裝步驟
一.安裝 JDK1.8
略
二.安裝Zookeeper
- 下載Zookeeper并解壓
cd /usr/local/src
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/zookeeper-3.4.9.tar.gz
tar -xzvf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 /usr/local/ - 配置Zookeeper
cd /usr/local/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
添加以下內(nèi)容:
tickTime=20000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.9/data
clientPort=2181
MaxSessionTimeout=200000
注解 生產(chǎn)環(huán)境中建議搭Zookeeper集群,這里暫時(shí)只搭單節(jié)點(diǎn)捡硅。
- 啟動(dòng)Zookeeper
cd /usr/local/zookeeper-3.4.9/bin
./zkServer.sh start
輸出以下內(nèi)容表示Zookeeper啟動(dòng)成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ps -ef|grep zookeeper
Zookeeper啟動(dòng)成功后哮内,綁定到2181端口提供服務(wù)。
三.安裝HBase
- 下載Hbase并解壓
cd /usr/local/
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/hbase-1.2.4-bin.tar.gz
tar -xzvf hbase-1.2.4-bin.tar.gz - 配置HBase環(huán)境變量
vim /etc/profile
在/etc/profile
文件末尾追加以下內(nèi)容:
#HBASE_HOME
export HBASE_HOME=/usr/local/hbase-1.2.4
使配置生效:
source /etc/profile
- 配置HBase配置文件
cd /usr/local/hbase-1.2.4/conf
vim hbase-site.xml
hbase-site.xml中添加以下內(nèi)容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:/usr/local/hbase-1.2.4/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>20</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>200000</value>
</property>
</configuration>
注意:這里不是直接加在文件末尾處壮韭,直接加需要?jiǎng)h除本來帶的<configuration></configuration>
注:HBase支持HDFS存儲北发,但是需要安裝Hadoop等組件,這里為了方便喷屋,暫時(shí)先不使用HDFS琳拨。另外,生產(chǎn)環(huán)境建議搭HBase集群屯曹,這里暫時(shí)只搭HBase單節(jié)點(diǎn)狱庇。
- 修改hbase-env.sh:
vim hbase-env.sh
添加配置行:
export HBASE_MANAGES_ZK=false
使得HBase不使用內(nèi)置Zookeeper,而使用前面安裝好的外置Zookeeper恶耽。
- 啟動(dòng)HBase (jdk 1.7+安裝略)
cd /usr/local/hbase-1.2.4/bin
./start-hbase.sh
HBase日志文件位于 /usr/local/hbase-1.2.4/logs 密任,可以查看HBase啟動(dòng)日志。
tail -f /usr/local/hbase-1.2.4/logs/hbase-root-1-regionserver-VM_0_12_centos.out
cat /usr/local/hbase-1.2.4/logs/hbase-root-1-regionserver-VM_0_12_centos.log - 查看HBase狀態(tài)
HBase啟動(dòng)成功以后偷俭,可以通過瀏覽器訪問 http://ip:16010 查看HBase有關(guān)信息浪讳,我這里是訪問
http://129.211.24.177:16010/
image.png
注解
如果發(fā)現(xiàn)成功啟動(dòng)了HBase,但是卻無法在瀏覽器中訪問 http://ip:16010涌萤,這是因?yàn)镃entOS7默認(rèn)開啟了防火墻淹遵,可以先將防火墻關(guān)掉 systemctl stop firewalld.service,再嘗試訪問负溪。
四. 初始化Pinpoint表結(jié)構(gòu)
- Pinpoint采用HBase作為底層存儲透揣,需要先在HBase中初始化表結(jié)構(gòu)。
首先確保HBase是正常啟動(dòng)狀態(tài)川抡,然后:
cd /usr/local
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-hbase-create.hbase
./hbase-1.2.4/bin/hbase shell ./pinpoint-hbase-create.hbase
初始化成功以后辐真,會在HBase中創(chuàng)建16張表。
TABLE
AgentEvent
AgentInfo
AgentLifeCycle
AgentStat
AgentStatV2
ApiMetaData
ApplicationIndex
ApplicationMapStatisticsCallee_Ver2
ApplicationMapStatisticsCaller_Ver2
ApplicationMapStatisticsSelf_Ver2
ApplicationTraceIndex
HostApplicationMap_Ver2
SqlMetaData_Ver2
StringMetaData
TraceV2
Traces
16 row(s) in 0.0430 seconds
五.安裝Pinpoint Collector
- 下載Pinpoint Collector并解壓
Pinpoint Collector猖腕、Pinpoint Web的部署均需要Tomcat拆祈,所以先下載Tomcat恨闪。
cd /usr/local
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/apache-tomcat-8.5.14.zip
unzip apache-tomcat-8.5.14.zip
mv apache-tomcat-8.5.14 pinpoint-collector-1.6.1
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-collector-1.6.1.war
cd /usr/local/pinpoint-collector-1.6.1/webapps
rm -rf *
unzip /usr/local/pinpoint-collector-1.6.1.war -d ROOT
- 修改配置文件
由于我這里HITOA的全部組件都部署在同一臺機(jī)器上倘感,為了避免端口沖突,需要對Tomcat的端口做一些設(shè)置咙咽,可以直接下載已經(jīng)設(shè)置好的配置文件:
cd /usr/local/pinpoint-collector-1.6.1/conf
curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-collector-server.xml -o server.xml
- 啟動(dòng)Pinpoint Collector
cd /usr/local/pinpoint-collector-1.6.1/bin
chmod +x catalina.sh shutdown.sh startup.sh
./startup.sh
注解
啟動(dòng)Pinpoint Collector時(shí)請確保HBase老玛、Zookeeper都是正常啟動(dòng)的,否則會報(bào)錯(cuò)Connection Refused。
-
查看Pinpoint Collector日志
cd /usr/local/pinpoint-collector-1.6.1/logs
tail -f catalina.out
catalina.out 中有詳細(xì)的Pinpoint Collector日志蜡豹,如果輸出如下內(nèi)容麸粮,則表明啟動(dòng)成功:
image.png
另外,可以隨時(shí)通過查看Pinpoint Collector日志來了解Pinpoint Collector運(yùn)行情況 镜廉。
六.安裝Pinpoint Web
- 下載Pinpoint Web并解壓
同安裝Pinpoint Collector一樣弄诲,Pinpoint Web部署一樣需要Tomcat,由于前面已經(jīng)下載了tomcat娇唯,這里不再下載:
cd /usr/local
unzip apache-tomcat-8.5.14.zip
mv apache-tomcat-8.5.14 pinpoint-web-1.6.1
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-web-1.6.1.war
cd /usr/local/pinpoint-web-1.6.1/webapps
rm -rf *
unzip /usr/local/pinpoint-web-1.6.1.war -d ROOT
- 修改配置文件
cd /usr/local/pinpoint-web-1.6.1/webapps/ROOT/WEB-INF/classes
vim pinpoint-web.properties
由于當(dāng)前的Pinpoint Web并不是集群部署齐遵,所以將
cluster.enable=true
改為
cluster.enable=false
為了避免端口沖突,修改tomcat的一些設(shè)置塔插,可以直接下載已經(jīng)設(shè)置好的配置文件:
cd /usr/local/pinpoint-web-1.6.1/conf
curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-web-server.xml -o server.xml - 啟動(dòng)Pinpoint Web
cd /usr/local/pinpoint-web-1.6.1/bin
chmod +x catalina.sh shutdown.sh startup.sh
./startup.sh -
查看Pinpoint Web日志
cd /usr/local/pinpoint-web-1.6.1/logs
tail -f catalina.out
catalina.out 中有詳細(xì)的Pinpoint Web日志梗摇,如果輸出如下內(nèi)容,則表明啟動(dòng)成功:
image.png - 訪問Pinpoint Web
Pinpoint Web啟動(dòng)成功以后想许,瀏覽器訪問 http://ip:19080/伶授,即可訪問Pinpoint Web界面。
http://129.211.24.177:19080/
image.png
注解
Pinpoint Web原來的默認(rèn)端口并不是19080流纹,為了避免沖突糜烹,在 pinpoint-web-server.xml 文件中做了修改。
Pinpoint Web內(nèi)置了告警功能捧颅,需要安裝MySQL景图,本快速安裝文檔暫時(shí)不提供此部分內(nèi)容,后續(xù)手冊中詳細(xì)講解Pinpoint Web告警功能的配置碉哑、開發(fā)及使用挚币。
至此,“調(diào)用鏈路分析平臺”的服務(wù)端基本搭建完成扣典,后面需要在監(jiān)控的目標(biāo)應(yīng)用上安裝Pinpoint Agent妆毕,自動(dòng)采集調(diào)用鏈路數(shù)據(jù)發(fā)送至Pinpoint Collector,并在Pinpoint Web中展現(xiàn)贮尖。
七. 安裝Pinpoint Agent
Pinpoint采用無侵入式的方式跟蹤應(yīng)用的請求調(diào)用鏈路笛粘,需要設(shè)置下目標(biāo)應(yīng)用的JVM參數(shù)即可。
這里以監(jiān)控core
為例:
- 下載Pinpoint Agent并解壓
cd /usr/local
mkdir pinpoint-agent-1.6.1
cd pinpoint-agent-1.6.1/
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-agent-1.6.1.tar.gz
tar -xzvf pinpoint-agent-1.6.1.tar.gz
- 配置Pinpoint Agent
Pinpoint Agent的配置文件是/usr/local/pinpoint-agent-1.6.1/pinpoint.config
湿硝,修改:
vim /usr/local/pinpoint-agent-1.6.1/pinpoint.config
Pinpoint Agent默認(rèn)的配置文件是適用于監(jiān)控OpenJDK的應(yīng)用薪前,對于Oracle JDK的應(yīng)用需要
添加:
profiler.jvm.vendor.name=Oracle
另外,默認(rèn)的采樣率(Sampling Rate)是5%关斜,為了使采集數(shù)據(jù)更完整示括,暫時(shí)設(shè)置為100%,修改以下配置:
profiler.sampling.rate=1
配置collector ip:
profiler.collector.ip=129.211.24.177
//如果collector裝在本機(jī)則不需要修改這個(gè)ip地址 - 配置JVM參數(shù)
Pinpoint Web和Agent關(guān)聯(lián)
因?yàn)槲掖蛩惚O(jiān)控Pinpoint Web本身痢畜,而Pinpoint Web是部署在tomcat中垛膝,所以修改Pinpoint Web的JVM參數(shù)只需要修改 bin/catalina.sh 即可鳍侣。
注意:監(jiān)控哪個(gè)tomcat就修改哪個(gè)tomcat的catalina.sh
vim /usr/local/pinpoint-web-1.6.1/bin/catalina.sh
或者自己所要監(jiān)控的tomcat應(yīng)用:
vim /usr/local/apache-tomcat-8.5.14/bin/catalina.sh
在 catalina.sh 頭部添加以下內(nèi)容:
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent-1.6.1/pinpoint-bootstrap-1.6.1.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=core"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=core01"
其中,第一個(gè)路徑指向pinpoint-bootstrap的jar包位置吼拥,第二個(gè)pinpoint.applicationName表示監(jiān)控的目標(biāo)應(yīng)用的名稱倚聚,第三 個(gè)pinpoint.agentId表示監(jiān)控目標(biāo)應(yīng)用的ID,其中pinpoint.applicationName可以不唯一凿可,pinpoint.agentId要求唯一惑折,如果 pinpoint.applicationName相同但pinpoint.agentId不同,則表示的是同一個(gè)應(yīng)用的集群枯跑。
- Spring boot應(yīng)用的部署:
nohup java -javaagent: /usr/localpinpoint-agent-1.6.1/pinpoint-bootstrap-1.6.1.jar-Dpinpoint.applicationName=hap -Dpinpoint.agentId=hap01 –jar myapp.jar > log.log &
八.啟動(dòng)目標(biāo)應(yīng)用
配置完JVM參數(shù)以后唬复,要啟動(dòng)下目標(biāo)應(yīng)用以使得生效。
由于我這里監(jiān)控的是Pinpoint Web本身全肮,前面已經(jīng)啟動(dòng)過敞咧,這里先停止,再重啟:
cd /usr/local/pinpoint-web-1.6.1/bin
./shutdown.sh
./startup.sh
重啟成功以后辜腺,訪問Pinpoint Web:http://ip:19080 休建,如果能在應(yīng)用列表中看到 hap,則說明監(jiān)控成功评疗。
如下圖所示:
鼠標(biāo)點(diǎn)擊右上角箭頭位置测砂,鼠標(biāo)左鍵按住不動(dòng),拉框查看百匆。