目录
一. 在tomcat的catalina.sh文件中,添加配置
二. 将对应tomcat版本的catalina-jmx-remote.jar放到tomcat下的lib文件夹下后
三. 在tomcat的server.xml文件中,添加配置后,重启tomcat
四.配置防火墙(firewalld),开放12345端口
五.安装zabbix-java-gateway后,并启动
六. 修改zabbix-server的配置文件zabbix_server.conf,并重启zabbix-server
七. zabbix web端配置
八.可能遇到的问题
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.ssl=false #是否使用SSL。
-Dcom.sun.management.jmxremote.authenticate=false #是否开启认证。
-Djava.rmi.server.hostname=192.168.58.130" #Tomcat所在服务器IP。
不在catalina.sh中配置 -Dcom.sun.management.jmxremote.port=12345,因为如果配置这个参数,在tomcat重启后,除了12345端口被监听外,还会随机监听一个端口,就会造成防火墙(firewalld)无法准确的开放这个随机端口而使得jmx监控失效
因为我的tomcat是8.5.31版本,所以catalina-jmx-remote.jar的下载地址:http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.31/bin/extras/,其他版本的tomcat请下载对应的catalina-jmx-remote.jar
在server.xml的shutdown中配置jmx监听端口,就可以避免第一步中出现的随机端口的问题
firewall-cmd --zone=public --add-port=12345/tcp --permanent
firewall-cmd --reload
我的zabbix是按照官网的提供的步骤通过rpm,yum install安装的server,具体可以查看https://www.zabbix.com/download
因为默认没有安装zabbix-java-gateway,所以需要额外安装
yum list zabbix*
yum install zabbix-java-gateway.x86_64
安装完成后,/etc/zabbix/zabbix_java_gateway.conf配置文件中的参数可以直接默认使用,然后启动zabbix-java-gateway
systemctl start zabbix-java-gateway
配置文件的路径是/etc/zabbix
JavaGateway=127.0.0.1 #默认为空,而且因为server和java-gateway在同一台,所以配置为127.0.0.1
JavaGatewayPort=10052 #默认已经为10052,所以不用配置
StartJavaPollers=5 #默认为0,修改成5
zabbix自带的tomcat监控模块的监控项的键值和实际的tomcat不匹配所以需要修改,否则会报became not supported错误
jmx["Catalina:type=GlobalRequestProcessor,name=http-8080",bytesReceived]修改为
jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",bytesReceived]
这个name可以查看tomcat的catalina.out日志文件中得到,8080、8443、8009其他监控项键值修改同理
jmx["Catalina:type=Manager,path=/,host=localhost",activeSessions]"修改为
jmx["Catalina:type=Manager,context=/jenkins,host=localhost",maxActive] 将path修改为context,监控的是webapps下的jenkins项目
如果这些name值不知道,或者还需要监控其他的zabbix自带的tomcat监控模块默认没有的项,可以在windows下使用jdk自带的jconsole.exe来查看
在需要的监控的主机中配置jmx接口,关联tomcat监控模块