CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.124.129.241
-Dcom.sun.management.jmxremote.port=8889
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
重启tomcat即可;
注:java程序都会提供一个JMX接口去进行采集相关的数据,其他开启方式请参考相关说明,我主要是已tomcat监控为主;
2. 编写自动发现端口脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[root@localhost scripts]# cat /etc/zabbix/scripts/jmx_discovery.sh
#!/bin/bash
# function:monitor tcp connect status from zabbix
source/etc/bashrc>/dev/null2>&1
source/etc/profile>/dev/null2>&1
jmx_port_discovery(){
jmx_port=($(cat/etc/zabbix/scripts/java.txt|cut-d"|"-f2))
Tomcat_Name=($(cat/etc/zabbix/scripts/java.txt|cut-d"|"-f1))
printf'{\n'
printf'\t"data":[\n'
for((i=0;i<${#jmx_port[@]};++i))
{
num=$(echo$((${#jmx_port[@]}-1)))
if["$i"!=${num}];then
printf"\t\t{ \n"
printf"\t\t\t\"{#JMX_PORT}\":\"${jmx_port[$i]}\",\n"
printf"\t\t\t\"{#JAVA_NAME}\":\"${Tomcat_Name[$i]}\"},\n"
else
printf"\t\t{ \n"
printf"\t\t \n"
printf"\t\t\t\"{#JMX_PORT}\":\"${jmx_port[$i]}\",\n"
printf"\t\t\t\"{#JAVA_NAME}\":\"${Tomcat_Name[$i]}\"}]}\n"
fi
}
}
case"$1"in
jmx_port_discovery)
jmx_port_discovery
;;
*)
echo"Usage:$0 {jmx_port_discovery}"
;;
esac
|
编写/etc/zabbix/scripts/java.txt文件,内容如下:
|
[root@localhost scripts]# cat /etc/zabbix/scripts/java.txt
Tomcat_442|8880
Tomcat_8591|8881
|
注:其实这里有个弊端,不太智能,也就是需要把监控的jmx端口和相关服务名称写到这个文本里去,这里还需要网友提供一个更可靠的方法,还请大家不要栗色指教。
3. 编写jmx监控配置文件
|
[root@localhost~]# cat /etc/zabbix/zabbix_agentd.conf.d/discovery_java_status.conf
UserParameter=java.jmx.discovery,/etc/zabbix/scripts/jmx_discovery.sh jmx_port_discovery
UserParameter=java.HeapMemoryUsage.status[*],/usr/local/jdk1.7.0_71/bin/java-jar/etc/zabbix/scripts/cmdline-jmxclient-0.10.3.jar-127.0.0.1:$1java.lang:type=Memory HeapMemoryUsage2>&1|grep$2|cut-d" "-f2
UserParameter=java.NonHeapMemoryUsage.status[*],/usr/local/jdk1.7.0_71/bin/java-jar/etc/zabbix/scripts/cmdline-jmxclient-0.10.3.jar-127.0.0.1:$1java.lang:type=Memory NonHeapMemoryUsage2>&1|grep$2|cut-d" "-f2
UserParameter=java.LoadClass.status[*],/usr/local/jdk1.7.0_71/bin/java-jar/etc/zabbix/scripts/cmdline-jmxclient-0.10.3.jar-127.0.0.1:$1java.lang:type=ClassLoading$22>&1|cut-d" "-f6
|
4. 进行测试
zabbix监控多JMX端口 - 01
其实,整体大致就是如此,key都能定义好了,至于模板我相信大家都能写了。(我也是今天才刚刚弄了下,很多也还没有完善)有关不同java的服务,最好是查看一下相关的文档,比如tomcat官方文档。这里大家可以参考一下tomcat自带的模板,下面给大家展示一下效果图:
zabbix监控多JMX端口 - 02
zabbix监控多JMX端口 - 03
谢谢"北京 - 小易"的分享。
分享到:
相关推荐
Zabbix通过JMX方式监控java中间件 Zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”;它是用java写的一个程序。 工作原理: zabbix_server想知道一台主机上的特定的JMX值时,它向...
zabbix监控服务器上正在使用的端口的监控模版,可以自动扫描出所有在使用的端口
abbix自动发现linux系统开启端口,并进行自动添加监控端口与进程,统计分析告警监控。 支持多种业务端口监控以及应用使用情况监控。 自带发现脚本和监控脚本,以及zabbix导入模板。
zabbix监控redis哨兵时会西永到的端口自动发现脚本,可展示主机上所有的哨兵端口,供后续监控使用。
山石系列zabbix监控模板
zabbix通过jmx监控tomcat使用的两个jar包,及zabbix模版
使用Zabbix监控nsfocus防火墙设备已运行时间,业务端口带宽、CPU、内存以及业务端口状态和会话数,并设置告警触发器、图形。 注意:需更改设备地址、zabbix代理地址、SNMPv3相关账号密码信息后再导入。
zabbix监控系统
zabbix 3.0 监控群晖模板,估计3.0 版本之后的版本都适用吧。具体监控项可以看我的博客。有一篇写的监控教程。关注我成为我的粉丝可以免费下载哦
使用Zabbix监控如何监控服务器端口状态,大概的流程:zabbix监控服务自带端口监控的监控项,所以需要我们自己手动定义所监控的item,客户端获取的端口列表通过agent传送到服务端, 只需在服务端进行端口监控模板配置...
本文讲解如何使用Zabbix监控网络交换机,实战说明了Zabbix监控网络设备的方法;如果有这方面需求的看过来,拿走不客气;
zabbix监控之kafka模板
此脚本文件用于zabbix监控redis哨兵时收集redis sentinel监控信息。
在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,zabbix也是支持这种...
《Zabbix监控系统深度实践(第1版)》由浅入深,全面讲解Zabbix应用与原理,是作者多年实战经验的总结和浓缩。在概念篇,从一个简单但完整的入门案例讲起,案例中有最基本的概念介绍,通过案例帮助那些只需将服务器...
Zabbix系统监控接口文档Zabbix系统监控接口文档Zabbix系统监控接口文档
Zabbix通过JMX监控java中间件.docx
自己做的zabbix监控tomcat的模版,支持3.4版,外带cmdline-jmxclient-0.10.3.jar工具,低积分下载,普及大众
华为CE、S系列交换机zabbix监控模版,包含接口、CPU、内存、部分系统信息,适用于zabbix3.0版本(3.0.5亲测可用)
用于交换机的端口自动发现(状态变化、流量统计),CE和S系交换机CPU及内存利用监控,S系交换机温度监控,没有监控端口别名、描述信息、错误包。