zabbix部署jmx监控tomcat
zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
一. Zabbix 的JMX监控架构
一:部署环境
服务端配置
安装Zabbix-Java-gateway
Zabbix2.0起添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”,它是用java写的一个程序。 安装gateway,需要java,java-devel依赖
安装yum源:yum install -y http://http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-java-gateway-3.0.6-1.el7.x86_64.rpm 安装gateway:yum install -y java java-devel zabbix-java-gateway |
#:service zabbix-java-gateway status zabbix-java-gateway is stopped |
测试gateway是否安装成功
3、修改Java-gateway的配置文件并启动
配置文件单独安装的路径为/etc/zabbix/zabbix_java_gateway.conf
# 监听地址
LISTEN_IP=”0.0.0.0″
# 监听端口
LISTEN_PORT=10052
# PID_FILE文件
PID_FILE=”/var/run/zabbix/zabbix_java.pid”
# 开启的工作线程数
START_POLLERS=5
启动zabbix-java-gateway:
service zabbix-java-gateway start
4、修改zabbix_server的配置文件并重启
修改zabbix-server的配置,编辑/etc/zabbix/zabbix_server.conf ,修改下面几个参数:
# JavaGateway的服务器IP地址
JavaGateway=192.168.1.12
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5
配置文件修改后,重启zabbix-server:
service zabbix-server restart
好,现在zabbix-java-gateway就配置好了。
以上步骤,服务端配置就已经完成。
客户端配置
1、 添加tomact中JMX的参数
编辑tomcat服务中bin目录下的catalina.sh
将以下参数,添加到CATALINA_OPTS的变量中:
-Djava.rmi.server.hostname=本地IP地址
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
这个是大多数网上资料推荐的方法,但是我没做成功,就采取了在bin目录下新建了一个文件
setenv.sh
CATALINA_OPTS="-Djava.rmi.server.hostname=your zabbix serverIP -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
下载测试工具cmdline-jmxclient-0.10.3.jar 这里需要翻墙下载或者自己找资源http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar
这里给无法翻墙的小伙伴我的百度云链接下载
链接: https://pan.baidu.com/s/1cEUYLg3qFrn9ycbIHtxCXQ 密码: 942f
cmdline-jmxclient-0.10.3.jar为一个测试工具,可用来测试jmx是否配置正确,下载cmdline-jmxclient-0.10.3.jar(下载到任意目录)
wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar |
3.验证tomcat中JMX配置是否生效
在本机上执行
java -jar /tmp/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage |
如果有如下回显表示jmx配置正确,如不正确,请检查配置,看下端口启动是否正常,server.xml 配置。
[root@master4 bigdata-push]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage 05/21/2018 14:01:27 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 38141952 init: 2555904 max: -1 used: 37061984 |
这里tomcat中的JMX就配置成功了
二、导入模板到zabbix,并关联到主机,添加监控
选择配置:主机-模板-选择-模板-:
Template JMX Tomcat
Template JMX Generic
三、如何监控单主机多个tomcat
1、添加主机时添加多个jmx端口
2、修改监控项、键值
在同一主机上,zabbix不允键值重复,但是监控的项目是一样的,不可能键值写的不重复,经过几番搜索,找到方法如下:
只要在箭头处添加1个空格就可以,也可以是多个。(注意位置不要错,在逗到后面)
参考 https://blog.csdn.net/Hu_wen/article/details/53587250?locationNum=14&fps=1
2、修改监控项、键值
在同一主机上,zabbix不允键值重复,但是监控的项目是一样的,不可能键值写的不重复,经过几番搜索,找到方法如下:
只要在箭头处添加1个空格就可以,也可以是多个。(注意位置不要错,在逗到后面)
剩下的就是常规工作克隆监控项、修改监控项、克隆图形、修改图形
tomcat最后的监控效果: