zabbix4.0监控tomcat

简述

tomcat需要jdk(java)依赖,zabbix有独立的zabbix-java-gateway监控java
程序;监控tomcat流程如下:
在这里插入图片描述

  • zabbix-web用于web界面显示,没有特殊含义;
  • zabbix-server启用javapollers进程去链接zabbix-java-gateway去请求数据(修改配置文件可实现),Zabbix-Javagateway就相当于一个代理,它负责收集客户端tomcat数据;
  • zabbix-java-gateway开启JMX功能,用于远程连接tomcat,收集tomcat信息;
  • tomcat配置文件添加JMX参数

实验环境

主机用途
Centos7:192.168.10.1zabbix-server,zabbix-java-gateway
Centos7:192.168.10.5tomcat

tomcat添加JMX参数

修改catalina.sh文件
添加以下内容

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=127.0.0.1"

注意格式问题,不要去复制上面的,看别人的博客都是直接放在了代码片里面,自己跟着做坑死了,按照下面的来

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1"

重启tomat
保证12345端口可以正常开启

[root@localhost ~]# sh tomcat.sh restart
[root@localhost ~]# netstat -anpt | grep 12345
tcp6       0      0 :::12345                :::*                    LISTEN      3049/java           
[root@localhost ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      3049/java           
tcp6       0      0 ::1:45152               ::1:8080                TIME_WAIT   -    

配置zabbix服务端

安装zabbix-java-gateway

#安装
yum -y install zabbix-java-gateway
#启动
systemctl start zabbix-java-gateway
#开机启动
systemctl enable zabbix-java-gateway

zabbix-server默认工作在10051端口,zabbix-agent默认工作在10050端口,zabbix-java-ggateway默认工作在10052

修改zabbix-java-gateway配置文件

[root@localhost ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5 #设置启动多个线程,这里和server段相同
TIMEOUT=3
#添加以下参数开启JMX功能
uncomment to enable remote monitoring of the standard JMX objects on the Zabbix Java Gateway itself
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

修改zabbix-server配置文件

[root@localhost ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_server.conf 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
JavaGateway=192.168.10.7
JavaGatewayPort=10052
StartJavaPollers=5  #和zabbix-java-gateway的线程一致
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

重启zabbix服务

systemctl restart zabbix-server
systemctl restart zabbix-java-gateway

tomcat添加catalina-jmx-remote.jar
JMX远程生命周期侦听器,没有必要性,可以添加也可以不添加
要找到对应tomcat版本的catalina-jmx-remote.jar,访问 tomcat各个版本

下载完成以后要放到tomcat8/lib

wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.55/bin/extras/catalina-jmx-remote.jar
mv catalina-jmx-remote.jar /usr/local/tomcat8/lib/

重启tomcat

sh tomcat.sh restart

关闭防火墙或者开发端口

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

测试

下载cmdline-jmxclient-0.10.3.jar
https://pan.baidu.com/s/1Kg2JAwaenYJhZPdYP9aOGA
提取码:f37k

[root@localhost ~]# mv cmdline-jmxclient-0.10.3.jar /usr/local/tomcat8/
[root@localhost ~]# java -jar /usr/local/tomcat8/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory HeapMemoryUsage
06/21/2020 17:51:39 +0800 org.archive.jmx.Client HeapMemoryUsage: 
committed: 28061696
init: 16777216
max: 249364480
used: 19246760

zabbix-web界面添加主机
我这里zabbix-java-gateway和zabbix-server在一台主机,可以分开,分开的话就填写对应的ip即可
在这里插入图片描述
添加模板
在这里插入图片描述
稍等一会儿,JMX就会绿起来
在这里插入图片描述
监控效果
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值