Zabbix之二----Zabbix監控Tomcat服務


戰一:Zabbix監控Tomcat

1、介紹

Java虛擬機(JVM)具有內置的插裝,使您能夠使用JMX監視和管理它。您還可以使用JMX監視工具化的應用程序。

監控原理:當Zabbix-Server需要知道java應用程序的某項性能的時候,會啟動自身的一個Zabbix-JavaPollers進程去連接Zabbix-JavaGateway請求數據,而ZabbixJavagateway收到請求后使用"JMXmanagementAPI"去查詢特定的應用程序,而前提是應用程序這端在開啟時需要"-Dcom.sun.management.jmxremote"參數來開啟JMX遠程查詢就行。Java程序會啟動自身的一個簡單的小程序端口12345向Zabbix-JavaGateway提供請求數據。

 

 從上面的原理圖中可以看出,配置Zabbix監控Java應用程序的關鍵點在於:配置Zabbix-JavaGateway、讓Zabbix-Server能夠連接Zabbix-JavaGateway、Tomcat開啟JVM遠程監控功能等。

2、node2主機上(Tomcat服務器)安裝JDKrpm包

使用Oracle官網的JDK 8的rpm包

官方下載JDK地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(1)安裝下載下來的JDK 8的rpm包

[root@node2 ~]# yum install jdk-8u211-linux-x64.rpm -y

(2)配置java全局變量

[root@node2 ~]# cat /etc/profile.d/jdk.sh  # 設置環境變量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH

[root@node2 ~]# . /etc/profile.d/jdk.sh  # 使環境變量生效

(3)查看JDK版本

[root@node2 ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

3、下載安裝二進制Tomcat包

(1)從官網下載tomcat二進制安裝包 http://tomcat.apache.org/

下載路徑:https://archive.apache.org/dist/tomcat/

(2)解包,指定解壓的目錄,並創建軟鏈接

[root@node2 ~]# tar xvf apache-tomcat-8.5.42.tar.gz  -C /usr/local
[root@node2 ~]# ln -sv  /usr/local/apache-tomcat-8.5.42/  /usr/local/tomcat
‘/usr/local/tomcat/apache-tomcat-8.5.42’ -> ‘/usr/local/apache-tomcat-8.5.42/’

(3)配置tomcat參數vim /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote  #啟用遠程監控JMX
-Dcom.sun.management.jmxremote.port=12345 # 默認啟動的JMX端口號,要和zabbix添加主機時候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false # 不使用用戶名密碼
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl認證
-Djava.rmi.server.hostname=192.168.7.102" #tomcat主機自己的IP地址,不要寫zabbix服務器的地址

(4)以ROOT身份啟動Tomcat服務(不推薦,賬號破解后就會被黑客以root身份做其他服務的破壞)

[root@node2 tomcat]# ./bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@node2 tomcat]# ss -nlt
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      100                                  127.0.0.1:25                                                       *:*                  
LISTEN      0      128                                          *:22                                                       *:*                  
LISTEN      0      50                                        [::]:12345   # 驗證監聽了12345端口                                               [::]:*                  
LISTEN      0      100                                      [::1]:25                                                    [::]:*                  
LISTEN      0      1                           [::ffff:127.0.0.1]:8005                                                  [::]:*                  
LISTEN      0      50                                        [::]:22567                                                 [::]:*                  
LISTEN      0      100                                       [::]:8009                                                  [::]:*                  
LISTEN      0      50                                        [::]:35756                                                 [::]:*                  
LISTEN      0      100                                       [::]:8080     # 監聽8080的tomcat端口                                             [::]:*                  
LISTEN      0      128                                       [::]:22                                                    [::]:* 

(5)為了tomcat服務安全起見,最好不要用root用戶登錄,防止被破解之后存在安全隱患,建議自己新建一個普通用戶進行登錄  

[root@node2 tomcat]# useradd -r java # #創建一個系統賬號,此時就沒有家目錄
[root@node2 tomcat]# chown -R java.java /usr/local/tomcat/  #將tomcat目錄下的文件所有者和所屬組都進行修改
[root@node2 tomcat]# su - java -c /usr/local/tomcat/bin/startup.sh  #以java用戶形式進行啟動tomcat服務

(6)查看此時啟動的服務是以java用戶進行啟動的

 (7)網頁驗證此時的tomcat服務已經可以訪問

 (8)在oracle jdk download官網下載windows版本的JDK,安裝並驗證此時tomcat安裝結果。

     官網下載地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

 (9)在安裝好的windows版本的JDK后,打開指定的執行程序進行驗證:

 (10)遠程登錄連接(遠程此時tomcat主機的IP地址)

 (11)連接進去之后有tomcat服務的信息即可,說明安裝正確。

 4、在zabbix-server服務端機器上安裝對應的zabbix-java-gateway包

 (1)在zabbix-server服務器上安裝zabbix-java-gateway包。

[root@zabbix ~]# yum install zabbix-java-gateway -y

(2)修改/etc/zabbix/zabbix_java_gateway.conf 配置文件

LISTEN_IP="0.0.0.0"  # 默認監控0.0.0.0的IP地址
LISTEN_PORT=10052 # 默認監控10052端口
START_POLLERS=5  # 啟動多少個進程輪詢java,要和java 應用保持一定關系
TIMEOUT=30   # 超時時間30s,最大時間也就是30s,盡量超時時長改大點,否則后端服務器還未響應,當大於超時時長才進行響應,此時java-gateway已經顯示超時。

核對配置的信息:

[root@zabbix ~]# grep "^[a-Z]" /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
TIMEOUT=30

重啟zabbix-java-gateway服務:systemctl restart zabbix-java-gateway

(3)修改vim /etc/zabbix/zabbix_server.conf 配置文件

JavaGateway=192.168.7.100 # 數據庫的IP地址,此時的數據庫IP地址和zabbix-server在同一機器,也可以分開配置
JavaGatewayPort=10052 # 默認監聽的是10052端口
StartJavaPollers=5  #啟動多少個進程去輪詢java gateway,要和java gateway的配置一致

重啟zabbix-server服務:systemctl restart zabbix-server

(4)查看此時的進程數,就會看到有5個進程

 5、登陸zabbix網頁:192.168.7.100/zabbix/index.html,添加JMX接口

 (1)在原有的主機上進行選擇,然后將之前配置好的機器進行克隆。

(2)克隆一個新的模板,不需要自己手動新建,節約時間。

 (3)添加JMX接口:tomcat服務對應的IP地址

 (4)node2上添加Tomcat JMX模板(最好添加自定義的模板,此模板顯示不是很全面)

 注意:以下是導入個人自定義的模板:先點擊導入(推薦導入個人自定義模板)

  選擇自定義模板,並導入

 (5)此時可以看到zabbix-web界面已經顯示JMX變綠色的圖標,說明配置正確。

 (6)在安裝了tomcat服務的基礎上安裝zabbix-agent包,將agent也監控上

[root@node2 ~]# yum install zabbix-agent  -y  # 安裝zabbix-agent包

(7)配置zabbix-agent文件:vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.7.100   # zabbix服務端的IP地址
Hostname=192.168.7.102 # 本機node2主機的IP地址,或者起一個與zabbix服務器端不重名的名稱
ListenPort=10050    # 本機監聽的端口
ListenIP=0.0.0.0   # 允許監聽在本機的地址,0.0.0.0 是監聽所有

(8)重啟zabbix-agent服務

# systemctl restart zabbix-agent 

(9)在zabbix-server服務端進行測試驗證此時的zabbix-agent是否正常

[root@zabbix ~]# zabbix_get -s 192.168.7.102 -p 10050 -k "agent.ping"  # 顯示結果是1,說明配置正常
1

(10)在zabbix網頁上配置zabbix-agent

 添加zabbix-agent

 添加Template OS Linux模板,然后點擊更新即可。

查看此時監控的agent和tomcat都顯示綠色,說明監控正常。

 

 

  

 

  

  

     

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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