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. NPOI读取Excel数据应用

    NPOI 是 POI 项目的 .NET 版本.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它 ...

  2. 3036: 绿豆蛙的归宿 - BZOJ

    Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点.到达每 ...

  3. Vim 配置 winmanager

    问题描述: winmanager是vim中插件,可以方便的查看当前文件夹中文件,可以切换vim打开文件,非常方便 现在说明安装和使用winmanager 问题解决: (1)winmanager源文件 ...

  4. 使用EF code first和asp.net mvc4遇到的问题总结

    最近使用EF code first和asp.net mvc4做项目,遇到些问题,记录一下. 一.EF code first 生成外键列问题. 一般情况下,都是先写一个int型外键id属性,然后写一个外 ...

  5. Unity3D研究院之Machine动画脚本自动生成AnimatorController

    原地址: http://www.xuanyusong.com/archives/2811 以前的项目一直不敢用Machine动画,因为当时立项的时候Machine动画还不成熟,最近项目做得差不多了我能 ...

  6. facebook代码发布

     facebook代码发布 2011-08-09 20:34:02 分类: LINUX 所有提交的代码每周二打包一次. 只要多一分努力,终于一天会发生改变. 星期二的代码发布,需要所有的提交过代码的工 ...

  7. zju 2972 Hurdles of 110m(简单的dp)

    题目 简单的dp,但是我还是参考了网上的思路,具体我没考虑到的地方见代码 #include<stdio.h> #include<iostream> #include<st ...

  8. C# 委托的”四步走“

    看了一本<深入了解C#>感觉很不错,对于委托的讲解,给大家摘录了下来! 1.什么是委托 我的拙见:委托就是将方法作为参数,进行传递的 书中的记载:将某种行为“包含”在一个对象中,这个对象可 ...

  9. 0环境设置 - SQLPLUS设置

    define _editor=vi - SQL*PLUS默认编辑器set serveroutput on size 1000000 - 默认打开DBMS_OUTPUT, 不用每次使用都执行这个命令来启 ...

  10. 小米2000万买域名mi.com

    来源:互联网的一些事   移动互联网之下,域名对于企业的吸引力将会越来越低,因为网站的入口多元化,不再仅凭域名.小米用超2000万人民币的代价购买mi.com域名,仅仅是为了所谓的国际化吗?小米此举, ...