zabbix使用jmx監控tomcat


前提:編譯zabbix server時需要提供java支持,即添加--enable-java該選項。

1、zabbix server段配置java支持。此處編譯安裝zabbix的目錄為/usr/local/zabbix。

編輯/usr/local/zabbix/sbin/zabbix_java/settings.sh,修改完成之后內容如下:
    LISTEN_IP="0.0.0.0"            //監聽的服務器地址
    LISTEN_PORT=10052            //監聽的端口
    PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址
    START_POLLERS=5
    TIMEOUT=3

2、編輯/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,內容如下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址
DBHost=localhost                //連接的數據庫地址
DBName=zabbix                //連接的數據庫名稱
DBUser=zabbix                //連接數據庫的用戶名
DBPassword=zabbix            //連接數據庫密碼
JavaGateway=192.168.1.103        //java網關地址,即server端ip地址
JavaGatewayPort=10052            //java網關監聽端口
Timeout=20                    //超時時間
FpingLocation=/usr/sbin/fping    //fping命令絕對地址
LogSlowQueries=3000
AllowRoot=1                    //允許root啟動
User=root                    //zabbix服務的啟動用戶
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    //zabbix額外的腳本地址

3、重啟zabbix server服務,以及啟動zabbix java支持服務。

service zabbix_server restart
cd /usr/local/zabbix/sbin/zabbix_java && sh startup.sh

4、在zabbix agent部署的服務器上更改配置文件,修改tomcat配置文件。目錄:/data/tomcat/tomcat-8080/bin。

vim /data/tomcat/tomcat-8080/bin/catalina.sh 編輯catalina.sh,提供jmx端口。如下:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.1.100"

其中,hostname=192.168.1.100需要修改為agent部署的服務器地址。更改完成需要重啟tomcat應用服務器,同時查看端口12345是否處於監聽狀態。

5、在zabbix agent部署的tomcat服務器上,copy對應的java jmx監控的相關jar包到tomcat對應的目錄下。

cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib
cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin

6、編輯zabbix agent配置文件,配置完成如下:

LogFile=/tmp/zabbix_agentd.log    //zabbix agent日志文件地址
Server=192.168.1.103            //zabbix server地址
ListenPort=10050                //zabbix agent監聽端口
Timeout=20                    //超時時間
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf        //zabbix agent副配置文件目錄配置
UnsafeUserParameters=1        
AllowRoot=1
User=root
ServerActive=192.168.1.103        //server地址配置
EnableRemoteCommands=1        //允許遠程執行命令
Hostname=192.168.1.100        //配置agent本地hostname名稱

UserParameter=jvm[*],/usr/local/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1    //jvm內存監控腳本
UserParameter=system_memory[*],/usr/local/zabbix/share/zabbix/alertscripts/system_memory.sh $1        //系統內存監控腳本

7、在zabbixagent端使用cmdline-jmxclient-0.10.3.jar提供的相關接口,獲取jvm的監控信息。此處執行相關命令的操作目錄為:/data/tomcat/tomcat-8080/bin。

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

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

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

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

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

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

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

8、鍵值對解析如下:

名稱: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"]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM