說在最前:
在作此次實戰測試之中,在網上查了許多資料,看了很多篇文章,絕大多數都是 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 在不一樣的機器上須要區分開。