一,需求:大數據的機器,不少jvm進程,須要監控特定的幾個的進程的FGC,FGCT,YGC,YGCT,GCT。java
二,在服務器上能夠經過命令查看python
jps命令能夠獲取到進程的ID,jstat -gc ID ,獲取gc的信息shell
三,編寫自定義腳本(不會shell,用Python加命令湊的,尷尬)服務器
cat jps1.py
#!/usr/bin/env python import os,sys jps_info = os.popen("/usr/bin/sudo /usr/local/java/bin/jps | grep %s | awk '{print $1}'"% sys.argv[1]) jps_info = jps_info.read() jps_id = jps_info.strip() jstat = {'YGC':'$13','YGCT':'$14','FGC':'$15','FGCT':'$16','GCT':'$17'} info = jstat[sys.argv[2]] command = "/usr/bin/sudo /usr/local/java/bin/jstat -gc "+jps_id+" | awk '{print "+info+"}'| /usr/bin/tail -n 1" os.system(command)
四,編輯zabbix agent配置文件jvm
添加:UserParameter=jstat[*], /usr/bin/python /etc/zabbix/scripts/jps1.py $1 $2測試
五,其它地方的調整大數據
在本機測試腳本是正常的,可是在zabbix server上測試有幾個問題須要修改ui
編輯 /etc/sudoers文件,添加一行:spa
zabbix ALL=(ALL) NOPASSWD:ALL3d
這一行須要註釋掉:#Defaults requiretty
六,建立item(數據類型選擇浮點數)
七:展現