一,需求:大数据的机器,不少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(数据类型选择浮点数)
七:展现