【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

说在最前:
在作此次实战测试之中,在网上查了许多资料,看了很多篇文章,绝大多数都是 zabbix 对单机多 tomcat 的监控,少有 zabbix 对多台客户端上的 tomcat 分别进行监控,并且写的还很是笼统,所以,我想写这篇文章,和你们分享一下实践心得。java

zabbix-server 和 zabbix-agent 安装方法在这里略过,能够参考 此前个人博客 的后半部分。

配置流程:

在安装 tomcat 的主机上执行如下操做:
一、安装zabbix_java_gateway
二、配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
三、编辑Tomcat配置文件,开启JMX
四、添加host,指定JMX interface
五、连接TOMCAT模板
linux


实际操做:

一、在 tomcat 所在的机器上安装 zabbix-java-gatewayweb

[root@ape-test2-1124 ~]# yum install -y zabbix-java-gateway

二、编辑 zabbixjavagateway.conf vim

[root@ape-test2-1124 ~]# vim /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_PORT=10052       //不打开也是默认 10052 端口
START_POLLERS=5     //进程数

以上步骤也须要在其余机器上操做
三、编辑服务端上的 /etc/zabbix/zabbixserver.conftomcat

[root@iZm5ehq0spxwe0fe6nay7fZ ~]# vim /etc/zabbix/zabbix_server.conf 
JavaGateway=192.168.100.124,192.168.100.125,192.168.100.126,192.168.100.127,192.168.100.128,192.168.100.129,192.168.100.130,192.168.100.131     //JavaGateway 所安装的全部主机 ip
JavaGatewayPort=10052       //java 的 port
StartJavaPollers=5

参数不要写错,否则 zabbix-server 没法启动

四、启动 zabbix-java-gateway,加入开机启动
tcp

[root@ape-test2-1124 ~]# systemctl start zabbix-java-gateway    //其余客户端也是一样操做
[root@ape-test2-1124 ~]# systemctl enable zabbix-java-gateway
[root@ape-test2-1124 ~]# netstat -lntp|grep 10052
tcp        0      0 0.0.0.0:10052           0.0.0.0:*               LISTEN      4120/java


五、服务端重启zabbix-server
ide

[root@iZm5ehq0spxwe0fe6nay7fZ ]# systemctl restart zabbix-server
[root@iZm5ehq0spxwe0fe6nay7fZ ~]# ps aux|grep zabbix_server
[root@iZm5ehq0spxwe0fe6nay7fZ ~]# netstat -lntp|grep 1005
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      22288/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      4290/zabbix_server  
tcp        0      0 0.0.0.0:10052           0.0.0.0:*               LISTEN      17300/java          
tcp6       0      0 :::10050                :::*                    LISTEN      22288/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      4290/zabbix_server


六、开启 JMX

1)编辑配置文件 /usr/local/tomcat/bin/catalina.sh
在 #!/bin/sh 下增长一段测试

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.100.124   //tomcat 所在客户端 ip
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

2)重启 tomcat3d

[root@ape-test2-1124 ]# /usr/local/tomcat/bin/shutdown.sh 
[root@ape-test2-1124 ]# /usr/local/tomcat/bin/startup.sh

3)查看 9999 端口是否启动代理

[root@ape-test2-1124 ]# netstat -lntp |grep 9999
tcp6       0      0 :::9999                 :::                    LISTEN      8328/java*

其余客户端上也一样操做


★★★惟一不一样的是 -Dcom.sun.management.jmxremote.port= 的端口号不能同样!!!

192.168.100.125上的 /usr/local/tomcat/bin/catalina.sh 里添加的参数就应该是

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.100.125 
-Dcom.sun.management.jmxremote.port=9998
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

同理,编辑全部tomcat所在机器上的 /usr/local/tomcat/bin/catalina.sh,添加以上参数,并根据实际状况修改hostname 和 port,保存配置,重启 tomcat

七、在 zabbix 的 web 端添加新主机

1)建立新主机,配置——主机——建立主机
2)更改主机配置:主机名称——群组——移除agent代理程序接口——添加JMX接口——192.168.100.124,端口 9999

【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

3)连接模板:模板——选择Template App Apache Tomcat JMX和 Template App Generic Java JMX——添加——添加

【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

4)监测——最新数据——主机切换为arslinux-01tomcat

稍等片刻,能够观察到已经出数据了
【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

5)JMX 已通,成功

【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

6)克隆机器:主机——tomcat124——全克隆
【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

七、修改参数:名称、群组、ip、端口(注意端口号不能和其余重复)
【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战

八、一样的方法,建立其余主机,稍等一下子就能够了

【错误汇总】利用JMX,在 zabbix 上监控多 agent 端的 tomcat 实战
成功!!!
总结:实际操做流程和正常的利用 JMX 在 zabbix 上监控 tomcat 无异,重点区别在于 catalina.sh 中配置参数的 port 在不一样的机器上须要区分开。

相关文章
相关标签/搜索