0.0 前言html
國內的APM行業這兩年剛剛起步,可是在國外卻比較成熟了,而且因爲這兩年人力成本的快速提升,國內外涌現了幾家很是不錯的APM企業,例如APPdynamic,Dynamic,NewRelic等。java
咱們這裏不考慮商業化的實現方案,如何可以提供一種免費的開源實現方案呢?linux
下面給你們介紹一個開源的 APM (Application Performance Management/應用性能管理)工具 - Pinpoint。一個分佈式事務跟蹤系統的平臺,思路基於google Dapper,用於基於java的大規模分佈式系統,經過跟蹤分佈式應用之間的調用來提供解決方案,以幫助分析系統的整體結構和內部模塊之間如何相互聯繫。Pinpoint的目標就是爲n(n>=1)層架構開發新的跟蹤平臺,爲n層架構的系統提供解決方案。git
0.1 Pinpoint的特色以下:github
0.2 Pinpoint 架構web
1.0 環境準備sql
爲了省事能夠直接就到這裏(https://get.k8scn.org/packages/others/pinpoint/)下載所需安裝包,統一放置在 /root/pp/
目錄下面。shell
apache-tomcat-8.0.36.tar.gz hbase-1.0.3-bin.tar.gz jdk-8u92-linux-x64.rpm pinpoint-agent-1.5.2.tar.gz pinpoint-collector-1.5.2.war pinpoint-web-1.5.2.war pp-collector pp-web zookeeper-3.4.6-10.el6.x86_64.rpm
1.1 部署環境約定數據庫
192.168.56.11 CentOS6(jdk1.8.0) Pinpoint-collector, Pinpoint-web, zookeeper # 下面咱們將簡稱pp-collector&pp-web 192.168.56.12 CentOS6(jdk1.8.0) Hbase 192.168.56.13 CentOS6(jdk1.8.0) Pinpoint-agent(demo應用)
1.2 系統環境說明apache
$ /etc/init.d/iptables stop $ setenforce 0
這裏咱們爲了避免影響模塊之間的相互通訊,暫時先把幾臺設備的iptables都關閉了。
2.0 開始部署 咱們採用rpm方式安裝jdk,這裏就略過安裝過程了,主要說一下Tomcat 和Bbase的安裝和配置
2.1 部署和初始化 Hbase
$ vim ~/.bashrc # Java Environment Variables export JAVA_HOME=/usr/java/default export PATH=$PATH:$JAVA_HOME/bin $ source ~/.bashrc $ tar xf /root/pp/hbase-1.0.3-bin.tar.gz /usr/local/ $ cd /usr/local/hbase-1.0.3/conf $ vim hbase-env.sh export JAVA_HOME=/usr/java/default/ # 指到本身對應的JAVA_HOME,默認使用java6 $ vim hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbase</value> # 這裏咱們指定Hbase本地來存儲數據,生產環境將數據建議存入HDFS中。 </property> </configuration> $ ../bin/start-hbase.sh // 啓動 Hbase
注意: 這裏說明一下,咱們是最簡方式啓動的Hbase,沒有單獨部署Hbase集羣管理的zookeeper,而是直接使用Hbase自帶的zk模塊。另外,Hbase牆裂建議將數據存入HDFS裏面,目前咱們是存在Hbase本地的。
2.1.1 驗證Hbase是否啓動成功
$ jps 8114 Jps 7820 HMaster
2.1.2下載並執行pp的Hbase初始化表語句
$ wget -c https://raw.githubusercontent.com/naver/pinpoint/master/hbase/scripts/hbase-create.hbase -P /root/pp/ $ cd /usr/local/hbase-1.0.3 $ ./bin/hbase shell /root/pp/hbase-create.hbase # 這裏須要大概半分鐘時間完成pp的表初始化 $ ./bin/hbase shell 2016-07-14 20:57:10,606 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016 hbase(main):001:0> status 'detailed' # 我這裏已經初始化pp相關表,因此數據展現比較多 version 1.0.3 0 regionsInTransition master coprocessors: [] 1 live servers c612:46781 1468494831781 requestsPerSecond=0.0, numberOfOnlineRegions=194, usedHeapMB=18, maxHeapMB=241, numberOfStores=322, numberOfStorefiles=3, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=9272, writeRequestsCount=385, rootIndexSizeKB=2, totalStaticIndexSizeKB=1, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, coprocessors=[MultiRowMutationEndpoint] "AgentEvent,,1468495003477.b13eb3203210fb9d94feb1a445e0ad1b." numberOfStores=1, numberOfStorefiles=0, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=0