博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zabbix监控JVM内存
阅读量:6711 次
发布时间:2019-06-25

本文共 6433 字,大约阅读时间需要 21 分钟。

上篇最后提到了jstat,jstat可以查看统计JVM内存信息,那么结合Zabbix,就可以监控多实例的JVM内存了。

 

1、下面两个脚本部署在被监控主机:

vm.py

用于JVM实例PID查找,ps命令亦可以换成jdk自带的jps工具:

#!/usr/bin.python#import osimport json data = {}tcp_list = []port_list = []command = "ps -ef | grep weblogic.Server | grep -v \"grep web\" | awk '{print $2}'"lines = os.popen(command).readlines()for line in lines:    port=line.strip('\n')#   port = line.split(':')[1]    port_list.append(port) for port in list(set(port_list)):    port_dict = {}    port_dict['{#PID}'] = port    tcp_list.append(port_dict) data['data'] = tcp_listjsonStr = json.dumps(data, sort_keys=True, indent=4)print jsonStr

 getvm.sh

统计内存使用情况脚本,需修改JAVA_HOME环境变量:

#!/bin/bash#JAVA_HOME="/u01/Middleware/jdk1.6.0_45"javapid=$2#S0function s0 {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $1}')}#S1function s1 {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $2}')}#Edenfunction eden {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $3}')}#Oldfunction old {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $4}')}#Permfunction perm {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $5}')}#YGCfunction ygc {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $6}')}#YGCTfunction ygct {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $7}')}#FGCfunction fgc {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $8}')}#FGCTfunction fgct {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $9}')}#GCTfunction gct {  echo $(sudo -u weblogic ${JAVA_HOME}/bin/jstat -gccause $javapid | awk '{if(NR!=1) print $10}')}$1exit $?

2、增加被监控主机zabbix_agentd配置文件

/etc/zabbix/zabbix_agentd.d下添加配置文件,jvm.conf

根据脚本实际目录配置:

UserParameter=java.pid,/home/weblogic/zabbix/vm.py

UserParameter=java.memory[*],/home/weblogic/zabbix/getvm.sh $1 $2

3、 为zabbix运行脚本授权

zabbix      ALL=(user)     NOPASSWD: /u01/Middleware/jdk1.6.0_45/bin/jstat,/usr/bin/python

Defaults    !requiretty

4、 zabbix server端测试

./zabbix_get -s 192.168.1.109 -p 10050 -k 'java.pid'{    "data": [        {            "{#PID}": "8817"        },        {            "{#PID}": "9041"        },        {            "{#PID}": "3929"        },        {            "{#PID}": "8620"        }    ]} ./zabbix_get -s 192.168.1.109 -p 10050 -k 'java.memory[old,8817]'5.83

5、zabbix导入模板(在最后),监控即可,如果要自己配置自动发现,

 

 

xml模板:

3.2
2017-06-13T05:25:25Z
Templates
View Code

 

转载地址:http://sualo.baihongyu.com/

你可能感兴趣的文章
C# 集合已修改 可能无法执行枚举操作 zz
查看>>
Sword protobuf学习四
查看>>
oracle实用sql之将逗号分割的字符串分割多个列
查看>>
leetcode 4. Median of Two Sorted Arrays
查看>>
前端建立一个本地服务器:browser-sync
查看>>
php的类型运算符instanceof(用于确定一个 PHP 变量是否属于某一类 class 的实例)
查看>>
VMWare Station 问题汇总
查看>>
JQuery判断input是否被禁用
查看>>
ftp、ssh
查看>>
SCSI接口和SAS接口的区别
查看>>
How to install maps and addons (.VPK)
查看>>
解决Android中的ERROR: the user data image is used by another emulator. aborting的方法
查看>>
电子书下载:Metro Revealed Building Windows 8 apps with XAML and C#.
查看>>
jQuery相册插件(开源下载)
查看>>
Azure China (12) 域名备案问题
查看>>
PKU 题目分类
查看>>
HDU What Are You Talking About
查看>>
[1443] Weiqi
查看>>
Unity3D Mecanim :Body Mask的使用、 角色Retargeting原理分析、Apply RootMotion
查看>>
MySQL技术内幕读书笔记(六)——索引与算法之全文索引
查看>>