インストールと構成を正確に特定する

インストールと構成を正確に特定する

Sanfeng soft Zhang Sanfeng

ピンポイントとは何ですか?

Pinpointは、非侵入型のコールチェーン監視、メソッド実行の詳細の表示、アプリケーションステータス情報の監視、およびその他の機能を提供するフルリンク分析ツールです。GoogleDapperペーパーに基づく実装は、別のオープンソースのフルリンク分析ツールZipkinに似ていますが、Zipkinと比較して、非侵入型やコード次元の監視など、より多くの機能を提供します。Pinpointがサポートする機能は比較的豊富で、次の機能をサポートできます。

•サービストポロジ図:システム全体のアプリケーションの呼び出し関係を視覚的に表示します。サービスノードをクリックすると、現在のノードステータス、要求数など、ノードに関する詳細情報が表示されます。
•リアルタイムのアクティブスレッド図:アプリケーションの監視アプリケーション内のアクティブなスレッドの実行ステータスは、アプリケーションのスレッド実行パフォーマンスをより直感的に理解できます。
要求応答分散図:時間ディメンションに要求数と応答時間を表示し、チャートをドラッグして対応するものを選択しますリクエスト
呼び出しスタックビューの実行の詳細を表示するリクエスト:分散環境での各リクエストのコードディメンションの可視性を提供します。ページのコードディメンションに対するリクエストの実行の詳細を表示して、ボトルネックと失敗の原因。
•アプリケーションステータス、マシンステータスチェック:この機能により、CPU使用率、メモリステータス、ガベージコレクションステータス、TPSおよびJVM情報、その他のパラメータなど、関連するアプリケーションのその他の詳細情報を表示できます。

アーキテクチャ構成

Pinpointは、主に3つのコンポーネントとHbaseデータベースで構成されています。3つのコンポーネントは、エージェント、コレクター、およびWebUIです。

•エージェントコンポーネント:アプリケーション側の監視データを収集するために使用され、邪魔にならず、起動コマンドにいくつかのパラメーターを追加するだけで済みます。
•コレクターコンポーネント:データ収集モジュール、エージェントから送信された監視データを受信し、HBaseに保存し
ます•WebUI :表示モジュールの監視、システムコールの関係、通話の詳細、アプリケーションのステータスなどの表示、アラームやその他の機能のサポート
以下は、ハンサムで直感的な公式スクリーンショットです。

インストールと構成を正確に特定する
インストールと構成を正確に特定する
インストールと構成を正確に特定する
インストールと構成を正確に特定する

インストールと構成

使用した2台のCentOS6.8仮想マシンをインストールしました。1台はピンポイントのメインプログラムを展開するためのもので、もう1台はテスト環境をシミュレートするためのものです。構成は次のとおりです。

インストールと構成を正確に特定する
java 1.7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

ピンポイントhttps://github.com/naver/pinpoint

必要なすべてのリソースを統合し、BaiduSkyDriveにアップロードしました

Baidu Netdisk :<リンク:https://pan.baidu.com/s/1WC3VhyhgicqMMmTgbxMziAパスワード:vdp6

依存関係をインストールする

ホームディレクトリを入力し、リソースディレクトリ「pp_res」を作成して、インストールする必要のあるパッケージを保存します


mkdir /home/pp_res
cd /home/pp_res/

xshellおよび他の同様のツールを使用して、必要なファイルをLinux仮想マシンにアップロードします。アップロードされる主なファイルはすべてBaiduネットワークディスクにあります。

•jdk7 --- Javaランタイム環境
•hbase-1.0 ---データベース
監視情報の保存に使用されます•tomcat8.0 --- Webサーバー
•pinpoint-collector.war --- ppコントローラー
•pinpoint-web.war- --pp表示ページ
•pp-collector.init --- pp-colをすばやく起動するために使用され
ます(不要)•pp-web.init --- pp-webをすばやく起動するために使用されます(不可能)
インストールと構成を正確に特定する

JDKを構成し、hbaseをインストールします

Hbase構成情報を変更する


vi hbase-site.xml

    hbase.rootdir
    file:///data/hbase

hbaseを開始します


cd /data/service/hbase/bin
./start-hbase.sh

# 查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程
[root@localhost bin]# jps
12075 Jps
11784 HMaster

Hbaseのピンポイントライブラリを初期化します


# 执行pinpoint提供的Hbase初始化语句,这时会初始化一会。
./hbase shell /home/pp_res/hbase-create.hbase

# 执行完了以后,进入Hbase
./hbase shell

# 进入后可以看到Hbase的版本,还有一些相关的信息
2016-11-15 01:55:44,861 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using built
in-java classes where applicableHBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016

hbase(main):001:0>

# 输入"status 'detailed'"可以查看刚才初始化的表,是否存在
hbase(main):001:0> status 'detailed'
version 1.0.3
0 regionsInTransition
master coprocessors: []
1 live servers
    localhost:50887 1478538574709
        requestsPerSecond=0.0, numberOfOnlineRegions=498, usedHeapMB=24, maxHeapMB=237, numberOfStores=626, numberOfStorefiles=0, storefileUncom
pressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=7714, writeRequestsCount=996, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, coprocessors=[MultiRowMutationEndpoint]        "AgentEvent,,1478539104778.aa1b3b14d0b48d83cbf4705b75cb35b7."
            numberOfStores=1, numberOfStorefiles=0, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0,
readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, completeSequenceId=-1, dataLocality=0.0
...

Webにログインして、HBaseデータが正常に初期化されているかどうかを確認することもできます。

HbaseWeb:http://192.168.245.134:16010 / master-status
インストールと構成を正確に特定する

pinpoint-collectorをインストールします

warパッケージをデプロイしてから、クイックスタートを構成します


# 配置快速启动需要修改pp-collector.init的路径( pp-collector在网盘里面有 ),可以"vi"进去,大概在18,24,27行处,修改相关的路径。我这边为了方便,直接就用替换的shell做了,如果路径与我的不一致,需要将路径修改成自己的路径。
cd /home/pp_res
sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-collector.init
sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-collector\//CATALINA_HOME=\/data\/service\/pp-col\//g" pp-collector.init
sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-collector\//CATALINA_BASE=\/data\/service\/pp-col\//g" pp-collector.init

# 将文件赋予"执行"的权限,把它放到"init.d"中去。以后就可以restart快速重启了。
chmod 711 pp-collector.init
mv pp-collector.init /etc/init.d/pp-col

# 测试一下restart
[root@localhost pp_res]# /etc/init.d/pp-col restart
Stoping Tomcat
Using CATALINA_BASE:   /data/service/pp-col/
Using CATALINA_HOME:   /data/service/pp-col/
Using CATALINA_TMPDIR: /data/service/pp-col//temp
Using JRE_HOME:        /usr/java/jdk17/
Using CLASSPATH:       /data/service/pp-col//bin/bootstrap.jar:/data/service/pp-col//bin/tomcat-juli.jar

waiting for processes to exitStarting tomcat
Using CATALINA_BASE:   /data/service/pp-col/
Using CATALINA_HOME:   /data/service/pp-col/
Using CATALINA_TMPDIR: /data/service/pp-col//temp
Using JRE_HOME:        /usr/java/jdk17/
Using CLASSPATH:       /data/service/pp-col//bin/bootstrap.jar:/data/service/pp-col//bin/tomcat-juli.jar
Tomcat started.
Tomcat is running with pid: 22824

pinpoint-webをインストールする

WARパッケージ構成のクイックスタートをデプロイする


# 需要修改"pp-web.init",与上面的步骤一致
cd /home/pp_res
sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-web.init
sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-web\//CATALINA_HOME=\/data\/service\/pp-web\//g" pp-web.init
sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-web\//CATALINA_BASE=\/data\/service\/pp-web\//g" pp-web.init

# 将文件赋予"执行"的权限,把让放到"init.d"中去。以后就可以restart快速重启了。
chmod 711 pp-web.init
mv pp-web.init /etc/init.d/pp-web

# 测试一下restart
[root@localhost pp_res]# /etc/init.d/pp-web restart
Stoping Tomcat
Using CATALINA_BASE:   /data/service/pp-web/
Using CATALINA_HOME:   /data/service/pp-web/
Using CATALINA_TMPDIR: /data/service/pp-web//temp
Using JRE_HOME:        /usr/java/jdk17/
Using CLASSPATH:       /data/service/pp-web//bin/bootstrap.jar:/data/service/pp-web//bin/tomcat-juli.jar

waiting for processes to exitStarting tomcat
Using CATALINA_BASE:   /data/service/pp-web/
Using CATALINA_HOME:   /data/service/pp-web/
Using CATALINA_TMPDIR: /data/service/pp-web//temp
Using JRE_HOME:        /usr/java/jdk17/
Using CLASSPATH:       /data/service/pp-web//bin/bootstrap.jar:/data/service/pp-web//bin/tomcat-juli.jar
Tomcat started.
Tomcat is running with pid: 22703

pp-agentをデプロイして監視データを収集する

テストシステムで、pp-agentを展開して監視データを収集します

コレクターの展開は非常に簡単で、3文を追加するだけです。ここでTomcatのテストを行い、展開をシミュレートします。

まず、テストに必要なパッケージを配置するフォルダーを作成します


mkdir /home/pp_test
cd /home/test

テストに必要なpp-agentをサーバーにプルし、シミュレートされたTomcatテスト環境を構成し、pp-agentコレクターを構成します


# 解压pp-agent
cd /home/pp_test
tar -zxvf pinpoint-agent-1.5.2.tar.gz
mv pinpoint-agent-1.5.2 /data/pp-agent

# 编辑配置文件
cd /data/pp-agent/
vi pinpoint.config

# 主要修改IP,只需要指定到安装pp-col的IP就行了,安装pp-col启动后,自动就开启了9994,9995,9996的端口了。这里就不需要操心了,如果有端口需求,要去pp-col的配置文件("pp-col/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties")中,修改这些端口
profiler.collector.ip=192.168.245.136

# 修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
cd /data/pp-test/bin
vi catalina.sh

# 在20行增加如下字段
# 第一行是pp-agent的jar包位置
# 第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了
# 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pp-agent/pinpoint-bootstrap-1.5.2.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20161122"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP

開始しました。テスト環境にアクセスできます
インストールと構成を正確に特定する

おすすめ

転載: blog.51cto.com/15065852/2606446