zabbix使用jmx監控tomcat

環境:CentOS 7.2   Java 1.8.171    zabbix 3.2

部署步驟:java

1.安裝 Zabbix-Java-Gatewayapache

zabbix-server 須要配置Java支持,vim

源碼編譯:須要添加--enable-java選項tomcat

./configure --enable-java --prefix=/usr/local/zabbix/zabbix_java
make && make install

yum 安裝命令安裝zabbix-java-gateway 包服務器

yum install zabbix-java-gateway

2.配置zabbix_java_gateway.confdom

cd /etc/zabbix
vim zabbix_java_gateway.conf

編輯:
LISTEN_IP="0.0.0.0"          //監聽的服務器地址
LISTEN_PORT=10052       //監聽的端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"       //指定zabbix_java的pid文件位置
START_POLLERS=5
TIMEOUT=3

其中 LISTEN_PORT 和 LISTEN_IP 能夠不配置,zabbix_java 會採用默認值。可是 PID_FILE 和 START_POLLERS 必須配置,尤爲主意 START_POLLERS,若不配置 zabbix_java 依舊能夠啓動可是是不工做的。tcp

3.配置zabbix_server 或 zabbix_proxy工具

zabbix_server 或 zabbix_proxy 的配置文件中有如下內容須要配置:測試

JavaGateway=127.0.0.1   // SERVER IP
JavaGatewayPort=10052
StartJavaPollers=5

4.重啓zabbix-server 和 zabbix_java_gatewayspa

systemctl restart zabbix-server
systemctl start zabbix-java-gateway
systemctl enable zabbix-java-gateway

5.檢測啓動zabbix-java-gateway監聽情況

netstat -antupl | grep 10052
tcp        0      0 192.168.30.100:10052    0.0.0.0:*               LISTEN      24837/java

6.配置修改tomcat被監控端

下載catalina-jmx-remote.jar
將下載好的文件存放到tomcat子目錄目錄lib錄下
sudo mv catalina-jmx-remote.jar /usr/local/tomcat/apache-tomcat-7.0.53/lib/
修改啓動腳本文件
cd /usr/local/tomcat/apache-tomcat-7.0.53/bin
sudo vim catalina.sh
在# ----- Execute The Requested Command -----------------下面添加以下內容:
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=x.x.x.x" 
-----備註(x.x.x.x是客戶端ip地址,即tomcat自己ip地址,也能夠是主機名)
-----這裏的Port要和zabbix服務器定義的監聽jmx端口保持一致。
cd /usr/local/tomcat/apache-tomcat-7.0.53/conf
sudo vim server.xml
修改server.xml配置文件添加下面一行內容
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"  rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346"/>
-----這裏的Port要和zabbix服務器定義的監聽jmx端口保持一致。

修改tomcat服務器的hosts文件
cat /etc/hosts
192.168.30.100 localhost.localdomain localhost

7.重啓tomcat和zabbix-java-gateway

sudo /usr/local/tomcat/apache-tomcat-7.0.53/bin/shutdown.sh
若是不能關閉,直接 sudo killall java 
sudo /usr/local/tomcat/apache-tomcat-7.0.53/bin/startup.sh 
sudo systemctl restart zabbix-java-gateway

8.下載zabbix服務器端用測試工具

下載cmdline-jmxclient-0.10.3.jar工具

獲取tomcat的最大線程數。
]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads
06/09/2018 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200

獲取tomcat繁忙線程數。
]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345 'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadsBusy
06/09/2018 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5

獲取tomcat當前已經分配線程數。
$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadCount
06/09/2018 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11

獲取活動線程的當前數目,包括守護線程和非守護線程。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345 java.lang:type=Threading ThreadCount
06/09/2018 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225

獲取自從 Java 虛擬機啓動以來建立和啓動的線程總數目。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345 java.lang:type=Threading TotalStartedThreadCount
06/09/2018 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225

獲取Java 虛擬機啓動或峯值重置以來峯值活動線程計數。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.30.100:12345 java.lang:type=Threading PeakThreadCount
06/09/2018 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244

獲取守護線程總數。
java -jar cmdline-jmxclient-0.10.3.jar – 192.168.30.100:12345 java.lang:type=Threading DaemonThreadCount
06/09/2018 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195

名稱:tomcat已分配線程數
鍵值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadCount]

名稱:tomcat最大線程數
鍵值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",maxThreads]

名稱:tomcat繁忙線程數
鍵值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadsBusy]

名稱:java虛擬機啓動以來建立和啓動的線程總數目
鍵值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

名稱:tomcat活動線程的當前數目,包括守護線程和非守護線程。
鍵值:jmx["java.lang:type=Threading","ThreadCount"]

名稱:java虛擬機啓動或峯值重置以來峯值活動線程數 鍵值:jmx["java.lang:type=Threading","PeakThreadCount"]

相關文章
相關標籤/搜索