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)
时间: 2024-09-09 18:57:36

python和jstat命令采集jvm数据导入zabbix监控的相关文章

Python使用xlrd模块操作Excel数据导入的方法

  本文实例讲述了Python使用xlrd模块操作Excel数据导入的方法.分享给大家供大家参考.具体分析如下: xlrd是一个基于python的可以读取excel文件的产品.和pyExcelerator相比,xlrd的主要特点在于读的功能比较强大,提供了表单行数.列数.单元格数据类型等pyExcelrator无法提供的详细信息,使得开发人员无须了解表单的具体结构也能对表单中的数据进行正确的分析转换. 但是xlrd仅仅提供了读取excel文件的功能,不能像pyExcelrator那样生成exce

php 将火车头采集db3数据导入到dedecms完整代码

$path ="d:pdoSpiderResult.db3";  $conn = new PDO("sqlite:$path");  $array=array('','','');   if( $conn )  {   //echo ('connection pdo success');  }  else  {   echo ('cnnection pdo fail ,plase check database server!');  }  $count=0;  $s

Oracle工具之sqlldr的使用--如何将文本文件或Excel中的数据导入数据库

Oracle工具之sqlldr的使用 有多种方式可以将文本文件的数据导入到数据库中,例如,利用PLSQL Developer软件进行复制粘贴,利用外部表,利用SQL*Loader等方式.至于EXCEL中的数据可以另存为csv文件(csv文件其实是逗号分隔的文本文件),然后导入到数据库中. 下面简单介绍一下SQL*Loader的使用方式. SQL*Loader是一个Oracle工具,能够将数据从外部数据文件装载到数据库中.SQL*Loader必须包含一个控制文件,该控制文件是SQL*Loader的

sqlserver bcp(数据导入导出工具)一般用法与命令详解_MsSql

bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中.下面将详细讨论如何利用bcp导入导出数据. 1. bcp的主要参数介绍 bcp共有四个动作可以选择. (1) 导入. 这个动作使用in命令完成,后面跟

Oracle数据导入导出imp/exp sp2-0734:未知的命令开头imp

sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类 应该是在cmd的dos命令提示符下执行,而不是在sqlplus里面......但是格式一定要类似于: imp PERSONNEL_MANAGE/MWQ@DBSQL full=y  file=C:personnel_manage.dmpignore=y 谨以此纪念我的粗心.....我错了.   imp 命令是在dos提示符下执行的. 直接cmd后执行而不是在sql下执行的 数据导出: 1 将数据库TEST完全导出,用户名system

MySQL用load data命令进行数据导入方法

LOAD DATA语法说明: LOAD DATA INFILE句法 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]     INTO TABLE tbl_name     [FIELDS         [TERMINATED BY 't']         [OPTIONALLY] ENCLOSED BY '']         [ESCAPED BY '\' ]]     [LINES TE

sqlserver bcp(数据导入导出工具)一般用法与命令详解

bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中.下面将详细讨论如何利用bcp导入导出数据. 1. bcp的主要参数介绍 bcp共有四个动作可以选择. (1) 导入. 这个动作使用in命令完成,后面跟

数据导入HBase最常用的三种方式及实践分析

要使用Hadoop,数据合并至关重要,HBase应用甚广.一般而言,需要 针对不同情景模式将现有的各种类型的数据库或数据文件中的数据转入至HBase 中.常见方式为:使用HBase的API中的Put方法: 使用HBase 的bulk load 工具:使用定制的MapReduce Job方式.<HBase Administration Cookbook>一书对这三种方式有着详尽描述,由 ImportNew 的陈晨进行了编译,很有收获,推荐给大家. HBase数据迁移(1)-使用HBase的API

HBase数据导入工具总结

本文对HBase常用的数据导入工具进行介绍,并结合云HBase常见的导入场景,给出建议的迁移工具和参考资料. HBase之间数据导入常用工具 HBase提供了几种数据迁移工具,其中基于API调用的有CopyTable,Export&Import.基于写HDFS的有distcp,snapshot. 这里要说明的是,本文作为一般性的介绍,不能忽略常用的工具distcp和snapshot,但是由于云HBase默认不开启HDFS端口,所以在云HBase上面基于HDFS的方法都是用不了的.我们推荐用户使用