欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python远程监控jvm_python和jstat命令采集jvm数据导入zabbix监控-阿里云开发者社区

发布时间:2024/7/23 python 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python远程监控jvm_python和jstat命令采集jvm数据导入zabbix监控-阿里云开发者社区 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

利用python和jstat命令采集jvm数据

注:用法运行python jvcheck.py 变量如EC或E等

#coding=utf-8

#author=yangzai

# 用jstat检查jvm信息然后用zabbix监控

import commands

import sys

jvmvars=sys.argv[1]

(status, PID) = commands.getstatusoutput("sudo -u tomcat jps|grep Bootstrap$|grep -v Jps$|awk '{print $1}'") # PID

def change_gc_ke(cmd):

(status,gcresult_tmp)=commands.getstatusoutput(cmd)

gcresult_tmp = gcresult_tmp.split('\n')

gcresult_key = gcresult_tmp[0].split() # key

gcresult_values = gcresult_tmp[1].split() # values

gcresult = dict(zip(gcresult_key, gcresult_values))

return gcresult

####gcutil

if jvmvars in ('S0','S1','E','O','M','CCS','YGC','YGCT','FGC','FGCT','GCT'):

cmd_gcutil = "sudo -u tomcat jstat -gcutil " + PID

gcutil = change_gc_ke(cmd_gcutil)

print gcutil.get(jvmvars)

####gccapacity

if jvmvars in ('NGCMN', 'NGCMX', 'NGC', 'S0C', 'S1C', 'OGCMX', 'OGCMN', 'OGC', 'MCMX', 'MCMN', 'MC'):

cmd_gccapacity = "sudo -u tomcat jstat -gccapacity " + PID

gccapacity = change_gc_ke(cmd_gccapacity)

print gccapacity.get(jvmvars)

####gcnew

if jvmvars in ('EU', 'EC', 'S0U', 'S1U'):

cmd_gcnew = "sudo -u tomcat jstat -gcnew " + PID

gcnew = change_gc_ke(cmd_gcnew)

print gcnew.get(jvmvars)

####gccode

if jvmvars in ('OU', 'MU'):

cmd_gcold = "sudo -u tomcat jstat -gcold " + PID

gcold = change_gc_ke(cmd_gcold)

print gcold.get(jvmvars)

####gcclass

if jvmvars in ('Loaded', 'Bytes', 'Unloaded'):

cmd_class = "sudo -u tomcat jstat -class " + PID + "|awk '{print $1,$2,$3}'"

gcclass = change_gc_ke(cmd_class)

print gcclass.get(jvmvars)

总结

以上是生活随笔为你收集整理的python远程监控jvm_python和jstat命令采集jvm数据导入zabbix监控-阿里云开发者社区的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。