実際の戦闘|ピンポイントのフルリンク監視構造

実際の戦闘|ピンポイントのフルリンク監視構造

ピンポイント入門

Pinpointは、Javaで記述された大規模分散システム用のAPMツールです。このようなツールをチェーンシステムや分散追跡システムと呼ぶことを好む人もいます。フロントエンドがバックエンドへのクエリリクエストを開始し、バックエンドサービスが複数のサービスを呼び出し、各サービスが他のサービスを呼び出し、最終的に結果を返し、ページに要約する場合があることはわかっています。特定のリンクに異常が発生した場合、エンジニアが問題の原因となったサービスコールを正確に特定することは困難です。ピンポイントなどの関連ツールの機能は、各リクエストの完全なコールリンクを追跡し、各サービスのパフォーマンスを収集することです。エンジニアが問題をすばやく特定できるようにするためのデータ。Githubアドレス:https//github.com/naver/pinpoint

アーキテクチャ図は次のとおりです(写真は公式Webサイトからのものです)。
実際の戦闘|ピンポイントのフルリンク監視構造

アーキテクチャの説明:

  • ピンポイント-コレクター:さまざまなパフォーマンスデータを収集します

  • Pinpoint-Agent:実行しているアプリケーションに関連付けられているプローブ

  • Pinpoint-Web:収集したデータをWEBページの形式で表示します

  • HBaseストレージ:収集されたデータはHBaseに保存されます

ピンポイントビルド

ここではデータをHDFSに直接保存するため、全体的な計画は次のようになります。
実際の戦闘|ピンポイントのフルリンク監視構造

ソフトウェアバージョン:
実際の戦闘|ピンポイントのフルリンク監視構造

JDKをインストールします

JDKをoptディレクトリに解凍し、環境変数を構成します

tar xf jdk-8u131-linux-x64.tar.gz -C /opt

vim / etc / profile

export JAVA_HOME=/opt/jdk1.8.0_131

export PATH=$JAVA_HOME/bin:$PATH

環境変数をロードする

source /etc/profile

パスワードなしで構成する

10.2.42.61、10.2.42.62、および10.2.42.63ノード間の相互信頼を構成します。これらのノードは同時に3つを操作できます。

ssh-keygen

ssh-copy-id 10.2.42.61

ssh-copy-id 10.2.42.62

ssh-copy-id 10.2.42.63

ssh-copy-idがない場合は、次のコマンドを使用してインストールします

yum -y install openssh-clients

ホストマッピングの構成

ホストマッピングを使用して5つのホストを構成する必要があります。
vim / etc / hosts

10.2.42.61    DCA-APP-COM-pinpoint-HBaseMaster

10.2.42.62    DCA-APP-COM-pinpoint-HBaseSlave01

10.2.42.63    DCA-APP-COM-pinpoint-HBaseSlave02

Zookeeperクラスターをインストールします

インストールパッケージをoptディレクトリに解凍すると、3つを同時に操作できます。

tar xf zookeeper-3.4.10.tar.gz -C /opt/

cd /opt/zookeeper-3.4.10/conf

cp zoo_sample.cfg zoo.cfg

zoo.cfgに来ました

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/data/zookeeper/data

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=10.2.42.61:12888:13888

server.2=10.2.42.62:12888:13888

server.3=10.2.42.63:12888:13888

データディレクトリを作成する

mkdir /data/zookeeper/data -p

10.2.42.61にキャンペーンIDを追加します

echo 1 > /data/zookeeper/data/myid

10.2.42.62にキャンペーンIDを追加します

echo 2 > /data/zookeeper/data/myid

10.2.42.63にキャンペーンIDを追加します

echo 3 > /data/zookeeper/data/myid

サービス開始

/opt/zookeeper-3.4.10/bin/zkServer.sh start

クラスターステータスの表示

[root@DCA-APP-COM-pinpoint-HBaseMaster data]# /opt/zookeeper-3.4.10/bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg

Mode: follower

Hadoopクラスターをインストールします

実際の戦闘|ピンポイントのフルリンク監視構造
インストールファイルをoptディレクトリに解凍します。注:特別な指示がない場合、次の操作は3台のマシンで同時に実行されます。

tar xf hadoop-2.8.3.tar.gz -C /opt/

Hadoop構成ファイルのディレクトリに入り、構成します

cd /opt/hadoop-2.8.3/etc/hadoop

構成しhadoop-env.shは、Javaの動作環境を指定する
のvim hadoop-env.shのHadoopの

#export JAVA_HOME=${JAVA_HOME}     # 默认就是这个,所以实际上这一步可以跳过

export JAVA_HOME=/opt/jdk1.8.0_131

構成するコア-site.xmlには、アクセスにHadoopのWebインターフェイスにアクセスするために指定する
Vimのコア-site.xmlの

<configuration>

  <property>

    <name>fs.defaultFS</name>

    <value>hdfs://10.2.42.61:9000</value>

  </property>

  <property>

  <name>io.file.buffer.size</name>

  <value>131072</value>

  </property>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>/data/hadoop/tmp</value>

  </property>

</configuration>

配置hdfs-site.xml
vim hdfs-site.xml

<configuration>

<property>

  <name>dfs.namenode.secondary.http-address</name>

  <value>10.2.42.61:50090</value>

  </property>

  <property>

    <name>dfs.replication</name>

    <value>2</value>

  </property>

  <!-- 指定namenode数据存放临时目录,自行创建 -->

  <property>

    <name>dfs.namenode.name.dir</name>

    <value>file:/data/hadoop/dfs/name</value>

  </property>

  <!-- 指定datanode数据存放临时目录,自行创建 -->

  <property>

    <name>dfs.datanode.data.dir</name>

    <value>file:/data/hadoop/dfs/data</value>

  </property>

</configuration>

mapreduceのタスク構成であるmapred-site.xmlを構成すると、完了したジョブのステータスを表示できます。
vim mapred-site.xml

<configuration>

  <property>

    <name>mapreduce.framework.name</name>

      <value>yarn</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.address</name>

      <value>0.0.0.0:10020</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.webapp.address</name>

      <value>0.0.0.0:19888</value>

  </property>

</configuration>

ヤーンサイト.xmlを構成します。datanodeはこの構成ファイルを変更する必要はありません。
vimyarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

  <name>yarn.nodemanager.aux-services</name>

  <value>mapreduce_shuffle</value>

</property>

<property>

  <name>yarn.resourcemanager.address</name>

  <value>10.2.42.61:8032</value>

</property>

<property>

  <name>yarn.resourcemanager.scheduler.address</name>

  <value>10.2.42.61:8030</value> 

</property>

<property>

  <name>yarn.resourcemanager.resource-tracker.address</name>

  <value>10.2.42.61:8031</value> 

</property>

<property>

  <name>yarn.resourcemanager.admin.address</name>

  <value>10.2.42.61:8033</value> 

</property>

<property>

  <name>yarn.resourcemanager.webapp.address</name>

  <value>10.2.42.61:8088</value> 

</property>

</configuration>

namenodeが
vimスレーブを呼び出すのを容易にするようにdatanodeを構成します

10.2.42.62

10.2.42.63

データディレクトリを作成する

mkdir /data/hadoop/tmp -p

mkdir /data/hadoop/dfs/name -p

mkdir /data/hadoop/dfs/data -p

ネームノードをフォーマットします。ネームノード
のファイルシステムはHDFSであるため、フォーマットする必要があります。

/opt/hadoop-2.8.3/bin/hdfs namenode -format

以下は、フォーマットが成功したことを示しています。
実際の戦闘|ピンポイントのフルリンク監視構造

クラスターを開始します

/opt/hadoop-2.8.3/sbin/start-all.sh

出力ログは次のとおりです
実際の戦闘|ピンポイントのフルリンク監視構造
。jobhistoryサービスを開始し、mapreduceの実行ステータスを確認します

/opt/hadoop-2.8.3/sbin/mr-jobhistory-daemon.sh start historyserver

URL経由でアクセスされるアドレス

http://10.2.42.61:50070  #整个hadoop 集群

http://10.2.42.61:50090  #SecondaryNameNode的情况

http://10.2.42.61:8088   #resourcemanager的情况

http://10.2.42.61:19888  #historyserver(MapReduce历史运行情况)

実際の戦闘|ピンポイントのフルリンク監視構造

HBaseクラスターを構成する

注:特別な記述はありません。次の操作は、3つのノードで同時に実行されます。
**
インストールパッケージをoptディレクトリに解凍します

tar xf hbase-1.2.6-bin.tar.gz -C /opt/

hdfs構成ファイルをコピーします。これは、hbaseとhdfsの両側の構成ファイルの整合性を確保するためです。

cp /opt/hadoop-2.8.3/etc/hadoop/hdfs-site.xml /opt/hbase-1.2.6/conf/

HBase構成ファイル
vimhbase-site.xmlを構成します

<configuration>

  <property>

    <name>hbase.zookeeper.property.clientPort</name>

    <value>2181</value>

  </property>

  <property>

    <name>hbase.zookeeper.quorum</name>

    <value>10.2.42.61,10.2.42.62,10.2.42.63</value>

    <description>The directory shared by RegionServers.</description>

  </property>

  <property>

    <name>hbase.zookeeper.property.dataDir</name>

    <value>/data/zookeeper/zkdata</value>

    <description>

    注意这里的zookeeper数据目录与hadoop ha的共用,也即要与 zoo.cfg 中配置的一致

    Property from ZooKeeper config zoo.cfg.

    The directory where the snapshot is stored.

    </description>

  </property>

  <property>

    <name>hbase.rootdir</name>

    <value>hdfs://10.2.42.61:9000/hbase</value>

    <description>The directory shared by RegionServers.

                 官网多次强调这个目录不要预先创建,hbase会自行创建,否则会做迁移操作,引发错误

                 至于端口,有些是8020,有些是9000,看 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 里面的配置,本实验配置的是

                 dfs.namenode.rpc-address.hdcluster.nn1 , dfs.namenode.rpc-address.hdcluster.nn2

    </description>

  </property>

  <property>

    <name>hbase.cluster.distributed</name>

    <value>tre</value>

    <description>分布式集群配置,这里要设置为true,如果是单节点的,则设置为false

      The mode the cluster will be in. Possible values are

      false: standalone and pseudo-distributed setups with managed ZooKeeper

      true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)

    </description>

  </property>

</configuration>

regionserversファイルを設定します
vimregionservers

10.2.42.62

10.2.42.63

hbase-env.shを構成します。自分でzookeeperを作成したので、次のコードを追加する必要があります。

export HBASE_MANAGES_ZK=false

クラスターを開始します

/opt/hbase-1.2.6/bin/start-hbase.sh

実際の戦闘|ピンポイントのフルリンク監視構造

クラスタステータスの
表示1.URL
経由で表示http//10.2.42.6116010 / master-status2。コマンドライン経由で表示

/opt/hbase-1.2.6/bin/hbase shell

hbase(main):002:0> status

1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average load

エラーが報告された場合:エラー:org.apache.hadoop.hbase.PleaseHoldException:マスターが初期化中
です1.最初にHBaseを停止します:/opt/hbase-1.2.6/bin/stop-hbase.sh
2. regionserverを起動します:/ opt / hbase- 1.2.6 / bin / hbase-daemon.sh start regionserver
3.マスターの開始:/opt/hbase-1.2.6/bin/hbase-daemon.shマスターの開始

HBaseのPinPointライブラリを初期化します。hbase-create.hbaseをダウンロードする必要があります。
アドレスは次のとおりです:https//github.com/naver/pinpoint/tree/master/hbase/scripts

/opt/hbase-1.2.6/bin/hbase shell /root/install/hbase-create.hbase

実際の戦闘|ピンポイントのフルリンク監視構造

PinPoint-Collecterを構成する

warパッケージをtomcatのwebappsディレクトリに解凍します

unzip pinpoint-collector-1.7.1.war -d /home/tomcat/apache-tomcat-8.0.47/webapps/ROOT

構成ファイルディレクトリ/home/tomcat/apache-tomcat-8.0.47/webapps/ROOT/WEB-INF/classes
は構成ファイルhbase.propertiesを変更します

hbase.client.host=10.2.42.61,10.2.42.62,10.2.42.63

hbase.client.port=2181

......

構成ファイルpinpoint-collector.propertiesを変更します

cluster.enable=true

cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63

......

flink.cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63

flink.cluster.zookeeper.sessiontimeout=3000

Tomcatを開始します

/home/tomcat/apache-tomcat-8.0.47/bin/startup.sh

PinPoint-WEBを構成する

対応するwarパッケージをtomcatのwebappsディレクトリに解凍します

unzip pinpoint-web-1.7.1.war -d /home/tomcat/apache-tomcat-8.0.47/webapps/ROOT

構成ファイルディレクトリ/home/tomcat/apache-tomcat-8.0.47/webapps/ROOT/WEB-INF/classesvim
hbase.properties

hbase.client.host=10.2.42.61,10.2.42.62,10.2.42.63

hbase.client.port=2181

......

vim pinpoint-web.properties

cluster.enable=true

cluster.web.tcp.port=9997

cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63

cluster.zookeeper.sessiontimeout=30000

cluster.zookeeper.retry.interval=60000

.......

Tomcatを開始します

/home/tomcat/apache-tomcat-8.0.47/bin/startup.sh

URLにアクセス:http//10.2.42.608080 / / main
実際の戦闘|ピンポイントのフルリンク監視構造

プローブを構成します

pinpoint-agent-1.7.1.tar.gzをアプリケーションサーバーにコピーし、tomcatディレクトリに解凍します

tar xf pinpoint-agent-1.7.1.tar.gz -C /home/tomcat

構成ファイルを変更します:
vim /home/tomcat/ppagent/pinpoint.config

# ip为pinpoint-collecter的服务器ip

profiler.collector.ip=10.2.42.59

tomcatのCatalina.sh起動スクリプトを構成し、次のコードをスクリプトに追加します

CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"

jarパッケージの場合は、Javaから直接開始し、次のパラメーターに従う必要があります。

java -javaagent:/home/tomcat/tmp/ppagent/pinpoint-bootstrap-1.7.1.jar -Dpinpoint.agentId=jss-spring-boot-app11201 -Dpinpoint.applicationName=jss-spring-boot-app -jar jssSpringBootDemo-0.0.1-SNAPSHOT.jar

構成後にtomcatを再起動し、WEB側で以下を確認します。
実際の戦闘|ピンポイントのフルリンク監視構造

おすすめ

転載: blog.51cto.com/15080014/2654775