简言
工作中我们的服务器运行着很多项目,有一些是运行在tomcat上面的,所以我们可以监控tomcat的状态,来及时的查看项目运行的正常状态!
看图理解原理
1.zabbix-Web前端界面,它通过数据库里数据展示。和其它组件不直接关联
2.zabbix-Server运行在10051端口,Zabbix-Server要知道java应用程序的某项性能的使用时候 ,会启动自身的一个Zabbix-JavaPollers进程去链接zabbix-JavaGateway请求数据,而zabbix-JavaGateway收到请求后并使用;
3.Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;JavaGateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。zabbix-server只要向zabbix-java-gateway取数据添加到数据库即可
4.zabbix-java-gateway工作在10052端口,Zabbix-Javagateway就相当于一个代理,它负责收集客户端tomcat数据。图中的12345端口是在配置tomcat时指定的,可是自定义。
5.在一个监控系统只有一个zabbix-java-gateway,可以部署在zabbix-sever端也可以部署在其他机器上,需要和zabbix-server网络可达。
准备工作
zabbix服务端 192.168.43.32
zabbixagent端(安装tomcat的服务器) 192.168.43.31
cmdline-jmxclient-0.10.3.jar包
一、Zabbix服务端配置
1.首先我们需要安装一个插件zabbix-java-gateway,这里我们使用yum安装。
注意我们建议java-gateway和server安装在一起,当然也可以部署在其他服务器上
1 | #安装 |
zabbix-java-gateway默认工作在10052端口
2.修改配置zabbix-java-gateway和zabbix-server的配置文件
1.这两个配置文件都在etc下面的zabbix里面
2.Java-gateway配置文件的START_POLLERS参数要>= zabbix_server配置文件的StartJavaPollers参数,这里建议一样,都设为5
1 | vi /etc/zabbix/zabbix_java_gateway.conf |
zabbix_java_gateway.conf内容
(只需要更改三处即可注释部分)
1 | # This is a configuration file for Zabbix Java Gateway. |
zabbix_server.conf内容
配置此文件是为了让zabbix-server服务能连接到zabbix-java-gateway服务
(只需要更改三处即可注释部分)
1 | ### Option: JavaGateway |
3.这里我们配置好之后需要重启zabbix-server和zabbix-java-gateway服务
1 | systemctl restart zabbix-server |
这样我们的服务器端就配置完成!
二、zabbix客户端配置(Tomcat所在机器)
这里分为两部分一部分是Linux的,一部分为Window的
Linux端tomcat
1.首先我们需要进入到tomcat的bin文件夹修改配置文件catalina.sh去添加tomact中JMX的参数
(注意添加的位置在#!/bin/sh下面)
1 | #!/bin/sh |
1 | 查看12345端口监听情况:netstat -antlp|grep 12345 |
2.添加好之后,我们需要去下载一个包到tomcat的lib包中
进入到tomcat的lib文件夹中执行下面的命令
1 | wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/extras/catalina-jmx-remote.jar |
要找到对应tomcat版本的catalina-jmx-remote.jar。访问tomcat各个版本网站,从上面一直找下去。catalina-jmx-remote.jar文件在tomcat版本的/bin/extras/目录下,只要替换wget后面url即可。
3.重启tomcat,执行命令
1 | ./shutdown.sh |
4.这样其实就已经完成了,但是我们需要测试一下是否能获取到tomcat的状态
这里需要一个jar包(cmdline-jmxclient-0.10.3.jar),下载好之后上传到tomcat下面
1 | java -jar /usr/local/tomcat/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory HeapMemoryUsage |
测试成功的结果
1 | [root@localhost /]# java -jar /usr/local/apache-tomcat-8.5.43/lib/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory HeapMemoryUsage |
5.然后我们需要去界面添加主机
红框内填写tomcat所在主机地址,端口即为上面tomcat配置的端口
6.给此主机添加tomcat的模板即可完成对linux下tomcat的监控!
(注意zabbix的主机不添加模板颜色是不会变绿色的,所以添加完主机之后不要期待会变绿色,要去加模板!要去加模板!要去加模板!)
window端tomcat
1.和linux一样,我们需要进入tomcat修改配置文件去添加tomact中JMX的参数
进入到bin目录下的catalin.bat
2.搜索set “CURRENT_DIR=%cd%”,在其下面加入下面的内容
1 | set "CURRENT_DIR=%cd%" |
3.添加好之后,我们需要去下载一个包到tomcat的lib包中,这里提供下载链接
1 | http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.92/bin/extras/catalina-jmx-remote.jar |
要找到对应tomcat版本的catalina-jmx-remote.jar。访问tomcat各个版本网站,从上面一直找下去。catalina-jmx-remote.jar文件在tomcat版本的/bin/extras/目录下,只要替换wget后面url即可。
4.重启tomcat即可!