zabbix监控大数据应用的JVM进程的GC信息

一,需求:大数据的机器,很多jvm进程,需要监控特定的几个的进程的FGC,FGCT,YGC,YGCT,GCT。

  • YGC:从应用程序启动到采样时年轻代中gc次数 
  • YGCT:从应用程序启动到采样时年轻代中gc所用时间(s) 
  • FGC:从应用程序启动到采样时old代(全gc)gc次数 
  • FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s) 
  • GCT:从应用程序启动到采样时gc用的总时间(s)

二,在服务器上可以通过命令查看

  jps命令可以获取到进程的ID,jstat -gc ID ,获取gc的信息

  

三,编写自定义脚本(不会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配置文件

  添加:UserParameter=jstat[*], /usr/bin/python /etc/zabbix/scripts/jps1.py $1 $2

五,其它地方的调整

  在本机测试脚本是正常的,但是在zabbix server上测试有几个问题需要修改

  编辑 /etc/sudoers文件,添加一行:

  zabbix    ALL=(ALL)       NOPASSWD:ALL

  这一行需要注释掉:#Defaults    requiretty  

六,创建item(数据类型选择浮点数)

  

 七:展示

  

原文地址:https://www.cnblogs.com/cq90/p/8558641.html