ganglia对于tomcat进程的res内存监控扩展
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内存监控扩展的更多相关文章
- 阿里云自定义监控tomcat进程数
阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :c ...
- Windows下tomcat进程监控批处理程序
在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...
- 为Zabbix配置Nova服务、Keystone和Placement进程CPU和内存usage监控
目前已经完成了RabbitMQ和MySQL的监控项配置,还差对nova-api.nova-conductor.nova-scheduler和keystone进程CPU和内存 usage的监控,类似的轮 ...
- c++ 对特定进程的内存监控
在工具实现的过程中,遇到了内存爆了的问题,部分模型的规模可以达到10的100次方方甚至1000次方.(工具的主要算法涉及到了递归,递归深度会很深,所以也用到了ulimit修改栈空间来缓解爆栈的问题,治 ...
- 【进程/作业管理】篇章一:Linux进程及管理(专用内存监控类工具)------【vmstat、pmap】
主要讲解专用内存监控工具的使用:vmstat.pmap命令的使用. 命令概览: vmstat 显示虚拟内存状态 pmap 报告进程与内存映射关系 vmstat命令是最常见的Linux/Unix监控工具 ...
- Tomcat调优及JMX监控
Tomcat调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS release 6.5 ( ...
- Ganglia监控扩展实现机制
Ganglia监控扩展实现机制 默认安装完成的Ganglia仅向我们提供基础的系统监控信息,通过Ganglia插件可以实现两种扩展Ganglia监控功能的方法.1.添加带内(in-band)插件,主要 ...
- docker内存监控与压测
一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式, ...
- spring boot + embed tomcat + standalone jar的内存泄露问题
前一阵遇到了一个很坑的内存泄露问题,记录于此: 有个项目采用spring cloud重构后,部署到线上(其中有一个接口,大概每天调用量在1千万次左右),发现zabbix监控里,linux的可用内存一直 ...
随机推荐
- [C#]Linq To Xml 实例操作- 转
http://blog.sina.com.cn/s/blog_6c762bb301010oi5.html http://blog.xuite.net/cppbuilder/blog/9940157 在 ...
- Linux环境下的Nodejs
最近在学习Node.js,在window下总是觉得不那么爽快.最简单而且环保的方法是在虚拟机中安装一个Linux. { 1.Linux:家中的Linux为Centos. 2.VirtuallyBox: ...
- P1676陶陶吃苹果 - vijos
描述 curimit知道陶陶很喜欢吃苹果.于是curimit准备在陶陶生日的时候送给他一棵苹果树. curimit准备了一棵这样的苹果树作为生日礼物:这棵苹果树有n个节点,每个节点上有c[i]个苹果, ...
- C++文件操作之 seekg/seekp/tellg/tellp
问题描述: C++文件操作之 tellg/tellp/seekg/seekp 的使用 问题解决: (1)seekg/tellg/seekp/tellp 使用 tellp用于ostream调用,用来&q ...
- 自定义nagios check_load告警阀值
自定义nagios check_load告警阀值 日期:2012-01-11 来源: heipark 分享至: - 默认check_load配置 define service{ use generi ...
- linux上部署应用
1.编写traffic.sh 引入相关的jar包及java环境路径 2.crontab -e 加入: */10 * * * * cd /opt/sys/traffic_version/bin & ...
- SNAT
http://blog.chinaunix.net/uid-2628744-id-2454879.html
- SDUT2241计算组合数C(n,m)(组合数)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2241 这个题的代码适应性也挺强,但这个题倒不适 ...
- Struts2 SSH整合框架返回json时,要注意懒加载问题
返回的这个json对象,要保证它里面的所有属性都已经取出来了(即不是proxy或者是懒加载),否则当struts框架将该对象转化成json数据时,会报出一个no session的错误. 因此你要将该懒 ...
- 李洪强iOS开发之OC[017]函数和方法的区别
// // main.m // 15 - 函数和对象的方法的区别 // // Created by vic fan on 16/7/12. // Copyright © 2016年 李洪强. ...