zabbix 通過jmx監控tomcat

如題

安裝方法:自己百度

步驟如下:

  1. 在Zabbix-Server上開啓Zabbix-Java-gateway
    我的zabbix是用yum安裝的,那麼zabbix-java-gateway也用yum來裝
    # rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm       --導入zabbix官方repo和key證書
    # yum -y install  java-1.8.0  Zabbix-Java-gateway

zabbix-server的環境:

--Zabbix-Server:
[root@harbor bin]# ./version.sh 
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_181
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.53
Server built:   Jun 29 2018 14:42:45 UTC
Server number:  8.0.53.0
OS Name:        Linux
OS Version:     3.10.0-862.9.1.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_181-b13
JVM Vendor:     Oracle Corporation
  1. 配置

--配置監聽zabbix_java_gateway

[root@zabbix-server ~]# egrep -v '^#|^$'  /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5

--配置zabbix-server.con配置文件連接zabbix_java_gateway

[root@zabbix-server ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_server.conf 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123
**JavaGateway=127.0.0.1
JavaGatewayPort=10052**
StartJavaPollers=3
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=3000

--啓動zabbix_java_gateway

[root@zabbix-server ~]# systemctl restart zabbix-java-gateway.service 
[root@zabbix-server ~]# 
[root@zabbix-server ~]# lsof -i:10052
COMMAND  PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    2251 zabbix   13u  IPv6 1587393      0t0  TCP *:10052 (LISTEN)

--重啓zabbix-server讓配置生效

[root@zabbix-server ~]# systemctl restart zabbix-server.service 
[root@zabbix-server ~]# lsof -i:10051
COMMAND    PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
zabbix_se 2320 zabbix    5u  IPv4 1588014      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2320 zabbix    6u  IPv6 1588015      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2325 zabbix    5u  IPv4 1588014      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2325 zabbix    6u  IPv6 1588015      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2326 zabbix    5u  IPv4 1588014      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2326 zabbix    6u  IPv6 1588015      0t0  TCP *:zabbix-trapper (LISTEN)
zabbix_se 2327 zabbix    5u  IPv4 1588014      0t0  TCP *:zabbix-trapper (LISTEN

--至此zabbix-server端已經部署完成

  1. zabbix-agent端,也是tomcat服務器配置
    --tomcat or jdk version:
    [root@harbor bin]# ./version.sh 
    Using CATALINA_BASE:   /usr/local/tomcat8
    Using CATALINA_HOME:   /usr/local/tomcat8
    Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
    Using JRE_HOME:        /usr/local/jdk1.8.0_181
    Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.0.53
    Server built:   Jun 29 2018 14:42:45 UTC
    Server number:  8.0.53.0
    OS Name:        Linux
    OS Version:     3.10.0-862.9.1.el7.x86_64
    Architecture:   amd64
    JVM Version:    1.8.0_181-b13
    JVM Vendor:     Oracle Corporation

修改tomcat家目錄下的bin目錄下的catalina.sh文件,添加以下內容

# vim /usr/local/tomcat8/bin/catalina.sh 
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.22.8"             -zabbix-server服務器ip

下載兩個war包放到tomcat家目錄下,用於監聽用
http://repo.typesafe.com/typesafe/maven-releases/cmdline-jmxclient/cmdline-jmxclient/0.10.3/cmdline-jmxclient-0.10.3.jar --用於測試是否能獲取數據用;
http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.76/bin/extras/catalina-jmx-remote.jar --用於收集tomcat信息用,注意版本一定要和tomcat版本一致。

--注意重啓tomcat,確定12345端口已監聽

### 執行以下命令,看能否收集到數據
[root@harbor ROOT]# java -jar cmdline-jmxclient-0.10.3.jar - localhost:12345 java.lang:type=Memory NonHeapMemoryUsage
08/03/2018 13:36:02 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 31653888
init: 2555904
max: -1
used: 30516656
  1. 導入tomcat模板,添加jmx監控
    下載tomcat_jvm_template:
[root@zabbix-server ~]# wget https://github.com/liuyjishg/DevOps/blob/master/zabbix/JVM_Tomcat_Template.zip
--2018-08-03 13:58:22--  https://github.com/liuyjishg/DevOps/blob/master/zabbix/JVM_Tomcat_Template.zip
正在解析主機 github.com (github.com)... 13.250.177.223, 13.229.188.59, 52.74.223.119
正在連接 github.com (github.com)|13.250.177.223|:443... 已連接。
已發出 HTTP 請求,正在等待迴應... 200 OK
長度:未指定 [text/html]
正在保存至: “JVM_Tomcat_Template.zip”

    [              <=>                                                                                                                                   ] 41,216      3.23KB/s 用時 12s    

2018-08-03 13:58:42 (3.23 KB/s) - “JVM_Tomcat_Template.zip” 已保存 [41216]

解壓JVM_Tomcat_Template.zip文件,將裏面的文件導入到zabbix模板中

再添加監控jmx就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章