Centos7部署pinpoint微服务全链路性能监控

2023-11-20 12:51

本文主要是介绍Centos7部署pinpoint微服务全链路性能监控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Centos7部署pinpoint微服务全链路性能监控

  • 前置条件
    • 环境声明
  • Centos7部署pinpoint微服务全链路性能监控
    • 0.安装Oracle JDK8
    • 1.安装HBase1.2.7
      • 下载并解压HBase
      • 将hbase添加到环境变量
      • 修改HBase配置
      • 配置hbase的数据保存配置
      • 启动HBase
      • 消除HBase启动告警
      • 重启hbase
      • 验证启动是否正常
        • `从web端`验证`HBase`是否启动成功
    • 2.初始化pinpoint数据库
      • 下载初始化pinpoint数据库
      • 解压hbase初始化脚本
      • 执行Hbase数据库初始化脚本
        • Hbase数据库初始化告警
      • 验证HBase数据库是否初始化成功
    • 3.安装pinpoint
      • 安装pinpoint-collector
      • 安装pinpoint-web
      • 查看是否启动成功
      • 验证pinpoint-web是否安装成功
    • 4.部署pinpoint-agent采集监控数据
      • 1)基本配置部署
      • 2)如果监控的是tomcat(监控war包)
      • 3)如果监控的是springboot(jar包)
    • 5.监控及服务启动顺序:
  • 实战案例:监控蜗牛影院系统(监控jar包)
    • 启动并监控蜗牛影院系统

前置条件

  1. JDK版本必须和Linux系统版本吻合(Linux是64位的必须安装64位的JDK);
  2. Hbase所在的服务器的内存地址不能小于4个G

环境声明

  • OS Version: RHEL7.8
  • JDK Version: Oracle JDK1.8.0_261
  • HBase Version: 1.2.7
  • Hadoop Version: 3.0.3
  • PinPoint Version: 2.1.0

Centos7部署pinpoint微服务全链路性能监控


0.安装Oracle JDK8

https://blog.csdn.net/omaidb/article/details/128634443


1.安装HBase1.2.7

Apache HBase 是 Hadoop 数据库,一个分布式、可伸缩的大数据存储。


下载并解压HBase

# 下载Hbase1.2.7压缩包
wget https://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz# 创建pinpoint目录
mkdir -p /opt/pinpoint# 解压到/opt/pinpoint目录
tar -zxvf hbase-1.2.7-bin.tar.gz -C /opt/pinpoint

将hbase添加到环境变量

vi /etc/profile# 添加hbase的执行路径
export PATH=$PATH:/opt/pinpoint/hbase-1.2.7/bin# 使变量生效
source /etc/profile# 查看hbase版本
habse version
# 如果回显显示hbase版本即为成功

修改HBase配置

# 查看你的java变量配置
cat /etc/profile# 我这里的结果是
export JAVA_HOME=/opt/jdk1.8.0_261# 修改配置信息
vim /opt/pinpoint/hbase-1.2.7/conf/hbase-env.sh# 在第28行插入java的变量
export JAVA_HOME=/opt/jdk1.8.0_261

配置hbase的数据保存配置

vim /opt/pinpoint/hbase-1.2.7/conf/hbase-site.xml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ROSgb5vy-1622553983785)(resources/fa86284dbcda4a1497c77e2439afd7ab.png)]

将下列配置信息粘贴到hbase-site.xml

<configuration><property><!-- 配置Hbase的目录 --><name>hbase.rootdir</name><value>file:opt/pinpoint/hbase-1.2.7/hbase_data</value></property><property><name>zookeeper.session.timeout</name><value>120000</value></property><property><name>hbase.zookeeper.property.tickTime</name><value>6000</value></property>
</configuration>

启动HBase

# 启动HBase
sh /opt/pinpoint/hbase-1.2.7/bin/start-hbase.sh

启动后提示信息:

starting master, logging to /opt/pinpoint/hbase-1.2.7/bin/../logs/hbase-root-master-woniu184.woniuxy.com.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0启动 master,登录到 /opt/pinpoint/hbase-1.2.7/bin/../logs/hbase-root-master-woniu184.woniuxy.com.out
Java HotSpot(TM) 64 位服务器 VM 警告:忽略选项 PermSize=128m; 在 8.0 中移除了支持
Java HotSpot(TM) 64 位服务器 VM 警告:忽略选项 MaxPermSize=128m; 在 8.0 中移除了支持

这个警告是因为:
Java8中,命令行标记MaxPermSize已被删除。原因永久代已从热点堆删除,并已移至本机内存。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ljjEVHt-1622553983788)(resources/979c28d2735b41a0a7e6c5b88807f37e.png)]


消除HBase启动告警

为了消除警告信息,需要再次编辑配置文件

# 再次编辑hbase配置
vim /opt/pinpoint/hbase-1.2.7/conf/hbase-env.sh

将第48行49行注释掉

# 需要将第48行和49行注释掉# 48行
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
# 49行
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:Perm

在这里插入图片描述


重启hbase

# 停止hbase
bash /opt/pinpoint/hbase-1.2.7/bin/stop-hbase.sh# 启动hbase
bash /opt/pinpoint/hbase-1.2.7/bin/start-hbase.sh

重启不再有JDK警告信息了.

在这里插入图片描述


验证启动是否正常

# 输入jps查看hbase是否启动
jps
# 回显中有HMaster即为启动成功

在这里插入图片描述


从web端验证HBase是否启动成功
# 用浏览器访问16010端口可以查看HBase状态
http://本机ip:16010/master-status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZiLXUJgv-1622553983797)(resources/4d0b215dd4934826b889b202ce98eb0d.png)]


2.初始化pinpoint数据库


下载初始化pinpoint数据库

需要从github上下载
https://github.com/pinpoint-apm/pinpoint/tree/master/hbase/scripts

我已经上传好了,需要国内加速的点击下方链接下载

pinpoint数据库CSDN国内加速下载点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U4HLvRhU-1622553983798)(resources/b081c8c1fb1048a580d671c4438db663.png)]

# 将pinpoint_master.tar.gz上传到`/opt/pinpoint/hbase-1.2.7`目录下
## 在windows机器命令行下执行
scp .\pinpoint_master.tar.gz root@服务器IP:/opt/pinpoint/hbase-1.2.7/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u0AxQBvV-1622553983799)(resources/32be1e0c4e8849d2b874e37f4e29cd91.png)]


解压hbase初始化脚本

# 在centos7中执行
cd /opt/pinpoint/hbase-1.2.7/# 解压到当前目录下
tar zxvf pinpoint_master.tar.gz

执行Hbase数据库初始化脚本

# 执行初始化
hbase shell hbase-create.hbase

可能会有一行报错,可以忽略

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在这里插入图片描述


Hbase数据库初始化告警

https://www.cnblogs.com/shoufeng/p/14940245.html

如果你和我一样是强迫症患者,想解决这个警告信息,安装native-hadoop库就可以解决

下面我们安装native-hadoop来解决这个警告

# 下载hadoop-3.0.3的包,有点大么300MB,从国外站点下载很慢,我建议你本地下载好再上传到centos7
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.0.3/hadoop-3.0.3.tar.gz# 解压到/opt/
tar zxvf hadoop-3.0.3.tar.gz -C /opt/# 编辑/opt/pinpoint/hbase-1.2.7/conf/hbase-env.sh
vi /opt/pinpoint/hbase-1.2.7/conf/hbase-env.sh# 将以下内容添加到hbase-env.sh
export LD_LIBRARY_PATH=/opt/hadoop-3.0.3/lib/native:$LD_LIBRARY_PATH# 再执行hbase时就不会再报警告了

验证HBase数据库是否初始化成功

打开web验证

# 登录web,来查看HBase的数据是否初始化成功
http://服务器ip地址:16010/tablesDetailed.jsp

如果出现15张数据表,那就是成功

在这里插入图片描述


3.安装pinpoint


安装pinpoint-collector

pinpoint-collector-boot-2.1.0.jar下载地址
https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.1.0

# 下载好后pinpoint-collector-boot-2.1.0.jar上传到/opt/pinpoint/目录
wget -c https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.0/pinpoint-collector-boot-2.1.0.jar

以后台运行的方式启动 pinpoint-collector

# 后台启动pinpoint-collector-boot-2.1.0.jar
nohup java -jar -Dpinpoint.zookeeper.address=localhost \
/opt/pinpoint/pinpoint-collector-boot-2.1.0.jar > collector.log 2>&1 &# 持续查看日志信息
tail –f collector.log

安装pinpoint-web

# 将pinpoint-web-boot-2.1.0.jar下载到/opt/pinpoint/目录
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.0/pinpoint-web-boot-2.1.0.jar

以后台的方式运行:pinpoint-web-boot-2.1.0.jar

# 后台启动pinpoint-web
nohup java -jar -Dpinpoint.zookeeper.address=localhost \
/opt/pinpoint/pinpoint-web-boot-2.1.0.jar > web.log 2>&1 &# 持续查看日志信息
tail –f collector.log

查看是否启动成功

# 用jps查看java进程
jps
# 如果终端打印出pinpoint相关的任务,就启动成功了

在这里插入图片描述


验证pinpoint-web是否安装成功

然后可以在浏览器中:http://服务器ip:8080/ ,此时还没有agent

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2iLgrsUc-1622553983804)(resources/34670d4bbc464dcfb22516e9a02effdd.png)]


4.部署pinpoint-agent采集监控数据


1)基本配置部署

  1. 拷贝pinpoint-agent-2.1.0.tar.gz到web应用服务;解压到/opt/pinpoint目录
# 下载pinpoint-agent-2.1.0.tar.gz
wget -c https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.0/pinpoint-agent-2.1.0.tar.gz# 解压pinpoint-agent到/opt/pinpoint/
tar zxvf pinpoint-agent-2.1.0.tar.gz -C /opt/pinpoint/
  1. 修改配置文件
  • /pinpoint-agent/pinpoint-root.config
  • /pinpoint-agent/profiles/release/pinpoint.config

修改pinpoint-collector地址

# 修改pinpoint-root.config配置
vim /opt/pinpoint/pinpoint-agent-2.1.0/pinpoint-root.config
# 上面两个配置文件中将pinpoint-collector 修改为你的服务器ip地址,大约第20行# 修改 pinpoint.config配置
vim /opt/pinpoint/pinpoint-agent-2.1.0/profiles/release/pinpoint.config# 上面这个两个配置文件的第20行都要修改为你的服务器ip地址

在这里插入图片描述

  1. 修改/opt/pinpoint/pinpoint-agent-2.1.0/profiles/release/ pinpoint.config , 把profiler.sampling.rate值改为1,意思是:捕捉每一个请求,默认值20
# 修改 pinpoint.config配置的第60行,修改为1
vim /opt/pinpoint/pinpoint-agent-2.1.0/profiles/release/pinpoint.config# 捕捉每1个请求(默认值20)
profiler.sampling.rate=1

在这里插入图片描述


2)如果监控的是tomcat(监控war包)

1、 修改测试项目下的tomcat启动文件catalina.sh,修改这个只要是为了监控测试环境的Tomcat

1)增加探针配置vi catalina.sh。
2)添加如下配置:

参数解释
AGENT_PATHpinpoint-agent的目录
AGENT_IDagent的ID,这个ID唯一
APPLICATION_NAME采集项目的名字,各项目不能重复
VERSIONagent的版本

在这里插入图片描述

AGENT_PATH=/opt/pinpoint/pinpoint-agent-2.1.0
AGENT_ID=123456
APPLICATION_NAME=woniu_test
VERSION=2.1.0CATALINA_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"

2、 启动测试用的Tomcat的服务器

3、pinpointweb浏览器中查看

在这里插入图片描述


3)如果监控的是springboot(jar包)

如果是jar包部署,直接在启动命令启动参数

# 启动命令+启动参数
java -javaagent:D:\\Tools\\pinpoint-agent-2.1.0\\pinpoint-bootstrap-2.1.0.jar \
-Dpinpoint.agentId=registry_windows \
-Dpinpoint.applicationName=woniuticket \
-jar registry-0.0.1-SNAPSHOT.jar

【注意】

  • applicationName同一个项目建议相同
  • agentId不同的jar包自定义不同的id

【说明】

# 启动命令格式
java -javaagent:${pinpoint_agent_bootstrap-2.1.0.jar的路径} \ 
-Dpinpoint.agentId=${agentid} \
-Dpinpoint.applicationName=${applicationName} \
-jar ${app服务的jar包路径}

5.监控及服务启动顺序:

Hbase—>pinpoint-collector —> pinpoint-web —> agent-tomcatjar


实战案例:监控蜗牛影院系统(监控jar包)

编辑/opt/qianyao/xm/start_java_app.sh,将下面的内容粘贴进去

#!/usr/bin/env bash
# Author: 自然自在
# Email: omaidb@gmail.com
# Description: 使用javaagent 启动并使用pinpoint-agent监控蜗牛影院系统
# Description: 原创代码,使用MIT协议开源,使用全部或部分代码,必须保留原作者信息及声明
# Description: IT培训机构不遵守MIT协议,不保留作者信息,!!!律师函警告!!!
# web: https://blog.csdn.net/omaidb
# Version:2.0
# CreateTime:2023-09-13 16:34:41# 软件开源协议侵权警告
WARING_DIY() {echo "
作者: 自然自在
Email: omaidb@gmail.com
脚本功能描述: 使用javaagent 启动并使用pinpoint-agent监控蜗牛影院系统
!!风险警告⚠️: 该代码,使用MIT协议开源,使用全部或部分代码,必须保留原作者信息及声明
!!风险警告⚠️: IT培训机构不遵守MIT协议,不保留作者信息,!!!律师函警告!!!
web: https://blog.csdn.net/omaidb
"
}
# 声明Pinpoint代理程序的jar包路径
JAVAAGENT_PATH="/opt/pinpoint/pinpoint-agent-2.1.0/pinpoint-bootstrap.jar"# 应用程序列表
## 将所有要启动的程序写入到一个列表中
APPS=(# 数据结构如下:## "${jar_file} : ${agent_id} : ${同项目_app_name 相同}"# eureka-server1"eureka-server1-0.0.1-SNAPSHOT.jar:eureka1:woniuticket"# eureka-server2"eureka-server2-0.0.1-SNAPSHOT.jar:eureka2:woniuticket"# cinema-stage"cinema-stage-0.0.1-SNAPSHOT.jar:cinema:woniuticket"# jobs-0.0.1-SNAPSHOT"jobs-0.0.1-SNAPSHOT.jar:jobs:woniuticket"# comment-0.0.1-SNAPSHOT"comment-0.0.1-SNAPSHOT.jar:comment:woniuticket"# movie-stage"movie-stage-0.0.1-SNAPSHOT.jar:movie:woniuticket"# orders-stage"orders-stage-0.0.1-SNAPSHOT.jar:orders:woniuticket"# gateway"gateway-0.0.1-SNAPSHOT.jar:gateway:woniuticket"# user"user-0.0.1-SNAPSHOT.jar:user:woniuticket"# general"general-0.0.1-SNAPSHOT.jar:general:woniuticket"# web"web-0.0.1-SNAPSHOT.jar:web:woniuticket"
)# 使用javaagent启动应用程序函数
javaagent_start_application() {# jar包路径local jar_file="$1"# -Dpinpoint.agentIdlocal agent_id="$2"# -Dpinpoint.applicationNamelocal app_name="$3"# app日志路径local log_file="${agent_id}.log"# 使用javaagent启动jar包,并输出日志## 要传入-Dpinpoint.agentId 和 -Dpinpoint.applicationNamejava -javaagent:"${JAVAAGENT_PATH}" -Dpinpoint.agentId="${agent_id}" -Dpinpoint.applicationName="${app_name}" \-jar "/opt/qianyao/xm/${jar_file}" >"/var/log/qianyao/${log_file}" 2>&1 &
}# 遍历应用程序列表并启动应用程序
for app in "${APPS[@]}"; doIFS=':' read -r jar_file agent_id app_name <<<"${app}"# echo "${jar_file}" "${agent_id}" "${app_name}"## echo示例:eureka-server1-0.0.1-SNAPSHOT.jar eureka1 woniuticketjavaagent_start_application "${jar_file}" "${agent_id}" "${app_name}"# 警告WARING_DIY
done

启动并监控蜗牛影院系统

# 赋予可执行权限
chmod u+x /opt/qianyao/xm/start_java_app.sh# 运行启动脚本
bash /opt/qianyao/xm/start_java_app.sh

这篇关于Centos7部署pinpoint微服务全链路性能监控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394734

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

SpringBoot如何使用TraceId日志链路追踪

《SpringBoot如何使用TraceId日志链路追踪》文章介绍了如何使用TraceId进行日志链路追踪,通过在日志中添加TraceId关键字,可以将同一次业务调用链上的日志串起来,本文通过实例代码... 目录项目场景:实现步骤1、pom.XML 依赖2、整合logback,打印日志,logback-sp

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red