Pinpoint是一个开源的APM(应用性能管理)系统,主要用于监控和管理Java应用程序的性能。它提供了实时的性能指标、分布式追踪和诊断等功能,帮助开发和运维快速定位和解决应用程序中的性能问题。

pinpoint其他部分不变,Hbase由2.3.3升级到2.5.5后经常罢工,暂时没排查到原因,我们写个脚本来监控pinpoint服务,一旦pinpoint哪个服务罢工,就自动去重启它

pinpoint由四部分组成,分别是pinpoint agent、pinpoint collector、pinpoint web、HBase

  • Pinpoint Agent:无侵入式收集应用端监控数据,,只需要在启动命令中加入部分参数即可(探针);

  • Pinpoint Collector:数据收集,将Agent发送过来的数据接收并存储到HBase;

  • Pinpoint Web:pinpint前端展示页面,可视化展示监控详情;

  • HBase:数据库,用于保存pinpoint监控的数据;

Pinpoint Agent随着服务运行,我们需要确保的是Pinpoint Collector,Pinpoint Web,HBase这三部分的运行,保证Pinpoint Agent传回来的数据能保存到数据库,并通过前端页面进行展示

1 监控Pinpoint Collector

检测Pinpoint Collector是否运行,如果没有运行,启动Pinpoint Collector

collector_process=$(ps -ef | grep pinpoint-hbase2-collector-boot | grep -v grep | awk '{print $2}')
if [ -n "$collector_process" ]; then
    echo "pp-collector正在运行中"
else
    # 启动collector的脚本写这里
    
fi

2 监控Pinpoint Web

检测Pinpoint Web是否运行,如果没有运行,启动Pinpoint Web

web_process=$(ps -ef | grep pinpoint-hbase2-web-boot | grep -v grep | awk '{print $2}')
if [ -n "$web_process" ]; then
    echo "pp-web正在运行中"
else
    #启动web的脚本写这里
fi

3 监控HBase

检测HBase是否运行,如果没有运行,启动HBase

hbase_process=$(ps -ef | grep hbase.master | grep -v grep | awk '{print $2}')
​
if [ -n "$hbase_process" ]; then
    echo "HBase正在运行中"
else
    # 启动HBase的脚本写这里
    
fi

4 定时检测

新建一个sh文件,命名为restart_pinpoint.sh,将检测Pinpoint Collector,Pinpoint Web,HBase的检测脚本写在里面

然后利用crontab定时任务,定时启动执行脚本,在上班时间,早八点到晚上六点之间,没五分钟执行一次

*/5 8-18 * * * restart_pinpoint.sh>>restart_pinpoint.log