搭建有登录验证的APM监控工具Pinpoint(版本2.3.3)

1.前言

pinpoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控。本文记录了一次Pinpoint2.3.3的单机部署,由于pinpoint本身没有用户验证功能,这里加入了Nginx反代来认证。

本文工作目录为/home/pinpoint/,全程不切换目录,有需要切换目录请注意调整路径。

pinpoint安装过程参考了APM链路监控:pinpoint安装部署实战详细手册-CSDN博客

2.环境

linux版本:Rocky Linux release 9.4 (Blue Onyx)

java版本:1.8.0_141

pinpoint版本:2.3.3

nginx版本:1.20.1

hbase版本:1.4.9

3.资源

链接: https://pan.baidu.com/s/1Ex4scT6Gct47547gpG73cw 提取码: gh8e 

下载网盘中所有资源上传至/home/pinpoint/目录下。

4.安装

4.1JDK安装

解压jdk:

cd /home/pinpoint
mkdir /usr/local/jdk
tar -zxvf jdk-8u141-linux-x64.tar.gz -C /usr/local/jdk/

修改环境变量:

vi /ect/profile并在文件的最后插入

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_141/
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME:$JAVA_HOME/bin

保存后退出并运行:

source /etc/profile

4.2HBase单机安装

解压HBase:

tar -xzvf hbase-1.4.9-bin.tar.gz

修改HBase配置文件hbase-site.xml:
注:HBase支持HDFS存储,但是需要安装Hadoop等组件,这里为了方便,暂时先不使用HDFS。另外,生产环境建议搭HBase集群,这里暂时只搭HBase单节点。

<configuration>
		<property>
    	<name>hbase.rootdir</name>
    	<value>file:///app/application/data/hbase</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/app/application/data/zookeeper</value>
	</property>
	<property>
	    <name>zookeeper.session.timeout</name>
	    <value>300000</value>
	    <description>加大zookeeper会话超时时间</description>
	</property>
	<property>
	    <name>hbase.regionserver.restart.on.zk.expire</name>
	    <value>true</value>
	    <description>设置 regionserver 起死回生</description>
	</property>
	<property>
	    <name>hbase.regionserver.handler.count</name>
	    <value>50</value>
	    <description>regionserver处理IO请求的线程数</description>
	</property>
      <property>
        <name>hbase.zookeeper.property.tickTime</name>
        <value>60000</value>
      <description>Client端与zk发送心跳的时间间隔</description>
      </property>
        <property>
            <name>zookeeper.session.timeout.localHBaseCluster</name>
            <value>300000</value>
            <description>本地模式HMasterCommandLine类中的startMaster方法会将zookeeper.session.timeout.localHBaseCluster设置给zookeeper.session.timeout,本地模式默认10000ms</description>
        </property>
        <property>
            <name>hbase.localcluster.assign.random.ports</name>
            <value>false</value>
            <description>本地模式端口号是随机分配,取消随机端口才能变成默认端口</description>
        </property>
</configuration>

修改启动文件hbase-env.sh的JAVA_HOME环境变量位置:

vi /home/hbase-1.4.9/conf/hbase-env.sh


# 在27行左右的位置,修改如下
export JAVA_HOME=/opt/jdk1.8.0/
 
# 在124行开启自带zookeeper
export HBASE_MANAGES_ZK=true
 

配置环境变量:

#配置环境变量HBASE_HOME
vi /etc/profile

#在末尾添加:
export HBASE_HOME=/home/hbase-1.4.9


#让环境变量生效
source /etc/profile

启动HBase:

hbase-1.4.9/bin/start-hbase.sh

初始化HBase的pinpoint库:

hbase-1.4.9/bin/hbase shell hbase-create.hbase 

 结果验证:

hbase-1.4.9/bin/hbase shell
#进入shell后输入list
list

显示如下,即为成功初始化: 

进入自带zookeeper模式命令

hbase-1.4.9/bin/hbase zkcli

进入hbase命令

hbase-1.4.9/bin/hbase shell

4.3pinpoint-collector安装

pinpoint-collector-boot-2.3.3.jar默认端口为8081,可自行修改application.yml的端口地址

nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-collector-boot-2.3.3.jar >/var/logs/pinpoint-collector.log 2>&1 &

4.4pinpoint-web安装

pinpoint-web-boot-2.3.3.jar默认端口为8080,可自行修改application.yml的端口地址

nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-web-boot-2.3.3.jar >/var/logs/pinpoint-web.log 2>&1 &

 4.5配置用户验证

安装htpasswd工具:

yum install -y httpd-tools

设置用户名和密码,并把用户名、密码保存到指定文件中:

htpasswd -c /home/pinpoint/passwd username
#将username替换成你的用户名,回车,输入两次密码

4.6nginx安装

安装nginx:

yum install -y nginx

vi /etc/nginx/nginx.conf修改nginx配置:

#注释掉root         /usr/share/nginx/html;并在其下方插入
                location / {
                        auth_basic "PINPOINT Auth";
                        auth_basic_user_file /home/pinpoint/passwd;
                        proxy_pass http://localhost:8080/;
                        proxy_set_header Host $host:8080;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }

nginx命令:

nginx -t    #测试NGINX
nginx    #启动NGINX
ningx -s stop    #关闭NGINX
nginx -s reload    #重启NGINX

测试无异常后启动nginx。

4.7防火墙配置

#放开collector端口
firewall-cmd --add-port=9991-9994/tcp --zone=public --permanent
firewall-cmd --add-port=8081/tcp --zone=public --permanent
#放开nginx端口
firewall-cmd --add-port=80/tcp --zone=public --permanent
#重启防火墙生效
firewall-cmd --reload

4.8pinpoint-agent安装

注:PinPoint-Agent需要与被测应用安装在一起。

修改agent配置文件:

vim /home/pinpoint-agent-2.3.3/profiles/release/pinpoint.config

profiler.collector.ip=192.168.197.131   #hbase服务器地址
profiler.transport.grpc.collector.ip=192.168.0.10    # 即安装pinpoint-collector的虚拟机IP
profiler.sampling.counting.sampling-rate=1 #采样率配置,访问量不大的情况,建议全部采集

增加监控的服务的启动命令:

# 启动应用A
nohup java -javaagent:/root/pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=demoA -Dpinpoint.applicationName=demoA -jar demoA.jar > nohup.out 2>&1 &

-javaagent:/root/pinpoint/pinpoint-agent-2.1.0/pinpoint-bootstrap-2.3.3.jar:agent所在位置。

-Dpinpoint.agentId:这个参数只能唯一。

-Dpinpoint.applicationName:可以重复,但为了更好地查看应用间的调用关系,这里按照应用名取值。

5.pinpoint优化

5.1collector日志输出级别优化

collector默认输出级别为info,当服务多,访问高时,日志量比较大,可以设置为warn
文件路径:pinpoint-collector-boot-2.3.3.jar\BOOT-INF\classes\profiles\release\log4j2.xml

5.2Hbase GC优化(jdk1.8)

修改hbase/conf/hbase-env.sh配置文件
修改/新增配置如下:
注意修改GC日志路径/app/application/linux/hbase-1.4.9为实际部署路径

export HBASE_HEAPSIZE=4G
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4g -Xmx4g"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xloggc:/app/application/linux/hbase-1.4.9/logs/hbase.gc.log -XX:ErrorFile=/app/application/linux/hbase-1.4.9/logs/hs_err_pid.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -Xmx4g -Xms4g"

6.简单使用

访问地址:http://服务器IP

进入后界面:

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值