zabbix4.0 实现tomcat性能监控的自动化发现脚本和模板

1, zabbix 自动发现脚本编写,采用python

在网上搜索一番,实现方式大部分是采用 zabbix-java-gateway,这个对监控几个的tomcat比较简单方便,但是我一台机器运行的tomcat有十多个,那就显得很傻逼了。

还有就是采用visualvm 这个工具,这个工具能够实时查看tomcat性能参数,包含 堆内存、线程数,元空间等。缺点就是他的数据数据不会存下来,只看到你打开这个工具的开始后的数据。

网上找到的模板和脚本,脚本可以用,但是模板无法导入,由于自己在zabbix在自己编写模板这块不是很熟悉,决定痛定思痛,自己全部写一遍,所有文章脚本和模板这些都是我结合网上的资料和自己的情况下,进行原创的。

前期准备工作,需要修改tomcat的catalina.sh 启动参数添加性能远程监控接口

我这边部署都是批量模板部署,前期我就写好了批量修改启动参数模板和脚本的,所以这边我把模板文件修改下,执行脚本,所有的工程就修改好了。

-Dcom.sun.management.jmxremote.port={jmxport}  #修改远程端口,默认12345

-Djava.rmi.server.hostname={ip} #修改成tomcat 运行机器的ip 内网地址

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

实现思路:

执行脚本返回一个jason 格式数据,包含应用的名称,jmx 端口,http端口,

我这边tomcat都是批量部署,都在同一个路径下,

应用名称通过 os.listdir 处理,获取名称和觉得路径

ip, jmx端口通过 进程命令获取

http 端口,通过读取server.xml 获取。

2,监控脚本编写

实现思路就说python调用sh命令,执行命令:/app/jdk1.8.0_121/bin/java -jar /usr/lib/cmdline-jmxclient-0.10.3.jar - 192.168.254.26:12345 java.lang:type=Memory HeapMemoryUsage 

命令直接执行效果图

解析输出结果获取相关结果。

这里分两种情况,

a,有的命令执行的结果是包含我们监控的三个维度的结果,如上图示例。对结果我们需要分别解析返回结果

b,还有就是就是我们需要的结果,直接提取数据,如下:

所以我在设计了一个监控字典:{项目名称:{需要执行的命令:需要取的值}}

对b情况就直接赋值同一个值 normal

在上图中这里是有点命令是需要转义的,不能会提示找不到命令类,这里需要提供http端口,我这采用有格式化传值,有的人可能 http-bio这里可能需要注意下,脚本中也处理了。

最终脚本执行结果如下:

3,将脚本上传到zabbix服务器和监控主机,验证监控项目和脚本

被监控段机器下,新建 /etc/zabbix/zabbix_agentd.d/userparameter_tomcat.conf,添加下面内容,需要重启监控zabbix-agent

UserParameter=tomcat.discovery,/usr/bin/python2 /etc/zabbix/discovery_tomcat.py

UserParameter=tomcat.status[*],/usr/bin/python2 /etc/zabbix/tomcat_monintor.py  $1 $2 $3 $4

zabbix-server机器,执行

zabbix_get -s 192.168.0.116 -p 10050 -k tomcat.status[192.168.0.116,12351,9050,HeapMemoryUsageused]

执行结果

获取到结果,正常。如果不行,可以尝试重启下zabbix-server

3,zabbix监控模板编写

创建模板

点击创建自动发现规则

创建自动发现规则

设置发现规则的key值

创建监控原型

填入监控key

后面的触发器 图像,在我模板中都有设置

如果运行的tomcat比较多,由于我这边监控原型会有38个,监控项目在zabbixserver端生成很多监控项目,造成server的压力,需要把 /etc/zabbix/zabbix_server.conf 修改

StartPollers=150   

我这边在模板默认关闭了项目的监控,需要的主机去模板中打开接口,防止突然造成服务器压力

最终在zabbix 效果图如下:

如果我的文章对你有用可以给我赞赏哟!

cmdline-jmxclient-0.10.3

脚本和模拟板

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355