说在最前:
在作此次实战测试之中,在网上查了许多资料,看了很多篇文章,绝大多数都是 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-serveride
[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
3)连接模板:模板——选择Template App Apache Tomcat JMX和 Template App Generic Java JMX——添加——添加
4)监测——最新数据——主机切换为arslinux-01tomcat
稍等片刻,能够观察到已经出数据了
5)JMX 已通,成功
6)克隆机器:主机——tomcat124——全克隆
七、修改参数:名称、群组、ip、端口(注意端口号不能和其余重复)
八、一样的方法,建立其余主机,稍等一下子就能够了
成功!!!
总结:实际操做流程和正常的利用 JMX 在 zabbix 上监控 tomcat 无异,重点区别在于 catalina.sh 中配置参数的 port 在不一样的机器上须要区分开。