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" ]; thenecho "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" ]; thenecho "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" ]; thenecho "HBase正在運行中"
else# 啟動HBase的腳本寫這里fi
4 定時檢測
新建一個sh文件,命名為restart_pinpoint.sh,將檢測Pinpoint Collector,Pinpoint Web,HBase的檢測腳本寫在里面
然后利用crontab定時任務,定時啟動執行腳本,在上班時間,早八點到晚上六點之間,沒五分鐘執行一次
*/5 8-18 * * * restart_pinpoint.sh>>restart_pinpoint.log
原文鏈接:pinpoint服務監控