ganglia是采用yum的安装,因此安装相关内容路径可能不同,但是不影响插件的扩展编写;

本次介绍的扩展是采用python脚本进行扩展,因此监控节点上需要安装python的相关插件;

sudo yum -y install  ganglia-gmond-python  python-devel*

由于脚本要引入psutil的库,因此需要加载此模块,安装此模块需要首先按装gcc和pip

sudo yum -y install gcc python-pip

最后安装psutil模块

sudo pip install psutil

一般进入ganglia的python脚本模块,编写脚本

 路径一般为: /usr/lib64/ganglia/python_modules,新建脚本编辑,vi tomcat_mem.py

#encoding=utf-8
import psutil
import time
import sys
import commands
#获取tomcat的id进程号
commandLine1="sudo ps -ef | grep tomcat | grep -v grep|grep -v python | awk '{print $2}'";
(status,pid)=commands.getstatusoutput(commandLine1)
print pid
dscriptors = list() def tomcat_res(name):
p=psutil.Process(int(pid))
return int((p.memory_info()[0]))
def metric_init(params):
global descriptors
d1 ={
"name":"tomcat_res",
"call_back":tomcat_res,
"time_max":90,
"value_type":"uint",
"units": "memory info",
"slope":"both",
"format":"%u",
"description": "",
"groups":"tomcat",
}
descriptors = [d1]
return descriptors def metric_cleanup():
pass #This code is for debugging and unit testing
if __name__=='__main__':
metric_init('init')
for d in descriptors:
v=d["call_back"](d["name"])
print 'value for %s is %u '%(d["name"],v)

在到配置目录下,vi /etc/ganglia/conf.d/tomcat.pyconf,前提是已经配置好了modpython.conf

 modules{
module{
name="tomcat_mem"
language="python"
}
} collection_group{
collect_every = 2
time_threshold =90
metric{
name="tomcat_res"
title="tomcat memory"
value_threshold = 0
}
}

modpython.conf

 /*
params - path to the directory where mod_python
should look for python metric modules the "pyconf" files in the include directory below
will be scanned for configurations for those modules
*/
modules {
module {
name = "python_module"
path = "modpython.so"
params = "/usr/lib64/ganglia/python_modules"
}
} include ("/etc/ganglia/conf.d/*.pyconf")

 这个有一个缺点就是,tomcat挂了以后重启,ganglia就获取不到数据,需要重启gmond进程,原因目前未知;

ganglia对于tomcat进程的res内存监控扩展的更多相关文章

  1. 阿里云自定义监控tomcat进程数

    阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :c ...

  2. Windows下tomcat进程监控批处理程序

    在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...

  3. 为Zabbix配置Nova服务、Keystone和Placement进程CPU和内存usage监控

    目前已经完成了RabbitMQ和MySQL的监控项配置,还差对nova-api.nova-conductor.nova-scheduler和keystone进程CPU和内存 usage的监控,类似的轮 ...

  4. c++ 对特定进程的内存监控

    在工具实现的过程中,遇到了内存爆了的问题,部分模型的规模可以达到10的100次方方甚至1000次方.(工具的主要算法涉及到了递归,递归深度会很深,所以也用到了ulimit修改栈空间来缓解爆栈的问题,治 ...

  5. 【进程/作业管理】篇章一:Linux进程及管理(专用内存监控类工具)------【vmstat、pmap】

    主要讲解专用内存监控工具的使用:vmstat.pmap命令的使用. 命令概览: vmstat 显示虚拟内存状态 pmap 报告进程与内存映射关系 vmstat命令是最常见的Linux/Unix监控工具 ...

  6. Tomcat调优及JMX监控

    Tomcat调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS release 6.5 ( ...

  7. Ganglia监控扩展实现机制

    Ganglia监控扩展实现机制 默认安装完成的Ganglia仅向我们提供基础的系统监控信息,通过Ganglia插件可以实现两种扩展Ganglia监控功能的方法.1.添加带内(in-band)插件,主要 ...

  8. docker内存监控与压测

    一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式, ...

  9. spring boot + embed tomcat + standalone jar的内存泄露问题

    前一阵遇到了一个很坑的内存泄露问题,记录于此: 有个项目采用spring cloud重构后,部署到线上(其中有一个接口,大概每天调用量在1千万次左右),发现zabbix监控里,linux的可用内存一直 ...

随机推荐

  1. python学习小结4:类

    虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 类和对象是面向对象编程的两个主要方面.类:创建一个新类型,而对象是这个类的实例,类使用class关键字创建.类的域和方法被列在一个 ...

  2. 实现 iframe 子页面调用父页面中的js方法

    父页面:index.html(使用iframe包含子页面child.html) [xhtml] view plaincopyprint? <html> <head> <s ...

  3. android 开发不能创建目录

    原来代码: File tempDir = new File(path); //path 是一个参数 if (!tempDir.exists()) { try { tempDir.mkdir(); // ...

  4. Feature Extraction

    http://www.erogol.com/ml-work-flow-part-3-feature-extraction/

  5. mac mysql安装

    一.安装 1.下载软件包直接安装即可: http://rj.baidu.com/soft/detail/25675.html?ald 安装完成后root默认密码为空: 二.修改密码 直接修改密码会提示 ...

  6. JavaScript高级---门面模式设计

    门面模式 两个作用: 1.简化类的接口 2.消除类与使用它的客户代码之间的耦合 门面模式常常是开发人员最亲密的朋友.它几乎是所有javascript库的核心原则 门面模式的目的是为了让开发人员用更简单 ...

  7. Emmet快速编写CSS样式

    基本的CSS样式编写时,很多样式只需输入首字母即可得到不带属性值的CSS样式,像上面说到的margin. 1.而对于一些带有特定的属性值的CSS样式,只需输入CSS标签与属性值的首字母就可以,比如: ...

  8. MonoBehaviour.StopCoroutine

    MonoBehaviour.StopCoroutine Description Stops all coroutines named methodName running on this behavi ...

  9. Open multiple Eclipse workspaces on the Mac

    This seems to be the supported native method in OS X: cd /Applications/eclipse/ open -n Eclipse.app ...

  10. POJ2996Help Me with the Game

    http://poj.org/problem?id=2996 又是一个大模拟题,表示做模拟题做的恶心,这个题主要是对数据的处理,从表格中将数据取出来再进行处理即可. 主要注意的点就是:1.KQRBN五 ...