您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2015-07-02 15:30 381 查看
Zabbix 监控Tomcat

IT辰逸 2014-12-01 75 阅读

CentOS

使用Zabbix监控Tomcat 我早期使用了Zabbix的内置模板,因为得到的数据没太多用,后改用去调jmap的输出,现在每三分钟执行一次脚本,每30秒取一次值,PSPermGeneration和PSOldGeneration做为报警标准.


监控图如下:

zabbix-jmap

zabbix-jmap

代码如下,通过执行jmap heap处理堆信息生成一个Dict,实现的比较妖孽 需要依赖crontab 定时执行….(模板文末下载)

!/usr/bin/python

-conding:utf-8–

——————————————————————————-

Name: Jmap.py

#

Author: LiuSha

#

Created: 9/29/2014

Copyright: (c) WDZJ-SA 2014

——————————————————————————-

import subprocess

import re

import os

def runCommand(cmd,stdinstr = ”):

p=subprocess.Popen(cmd, shell=True, universal_newlines=True, stdin=subprocess.PIPE,stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

stdoutdata, stderrdata = p.communicate(stdinstr)

return p.returncode, stdoutdata, stderrdata

def FormatValue():

Dict = {‘PSOldGeneration’:{‘percent’:”},’PSPermGeneration’:{‘percent’:”}}

_Output = runCommand(“”“jmap -heap
ps aux | grep "/home/tomcat/tomcat/apache-tomcat-7.0.53/conf/logging.properties" | awk '!/grep/{print $2}'
“”“)[1].replace(’ ‘,”).split(‘\n’)

_NewOpt = [x for x in _Output if x]

for i in _NewOpt[-10:-7]:

Dict[‘PSOldGeneration’][i.split(‘=’)[0]] = re.findall(‘\d+’,i.split(‘=’)[1])[0]

Dict['PSOldGeneration']['percent'] = re.findall('\d+\D+\d+',_NewOpt[-7])[0]

for i in _NewOpt[-5:-2]:
Dict['PSPermGeneration'][i.split('=')[0]] =  re.findall('\d+',i.split('=')[1])[0]

Dict['PSPermGeneration']['percent'] = re.findall('\d+\D+\d+',_NewOpt[-2])[0]

file = open('%s/Dict.py'%os.path.dirname(__file__),'w')
file.write("""Dict = %s\n\nif __name__ == '__main__':
import sys
print Dict[sys.argv[1]][sys.argv[2]]"""%repr(Dict))
file.close()


if name == ‘main‘:

FormatValue()

生成的Dict.py

Dict = {‘PSOldGeneration’: {‘capacity’: ‘602406912’, ‘used’: ‘101426704’, ‘percent’: ‘16.8369090691974’, ‘free’: ‘500980208’}, ‘PSPermGeneration’: {‘capacity’: ‘268435456’, ‘used’: ‘71036880’, ‘percent’: ‘26.463299989700317’, ‘free’: ‘197398576’}}

if name == ‘main‘:

import sys

print Dict[sys.argv[1]][sys.argv[2]]

相关Key如下:

UserParameter=Tomcat.PSOldGeneration.capacity[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSOldGeneration capacity

UserParameter=Tomcat.PSOldGeneration.free[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSOldGeneration free

UserParameter=Tomcat.PSOldGeneration.used[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSOldGeneration used

UserParameter=Tomcat.PSOldGeneration.percent[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSOldGeneration percent

UserParameter=Tomcat.PSPermGeneration.capacity[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSPermGeneration capacity

UserParameter=Tomcat.PSPermGeneration.free[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSPermGeneration free

UserParameter=Tomcat.PSPermGeneration.used[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSPermGeneration used

UserParameter=Tomcat.PSPermGeneration.percent[*],/usr/bin/python /software/zabbix/scripts/Dict.py PSPermGeneration percent

Zabbix-tomcat模板下载地址

百度云盘

腾讯云盘

文件信息:zbx_export_templates.xml

更新时间:2014-12-1 18:43

» 转载保留版权:IT辰逸 » 《Zabbix 监控Tomcat》
» 本文链接地址:http://www.ipython.me/centos/zabbix-monitor-tomcat.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: