Zabbix監控JVM & SNMP
阿新 • • 發佈:2020-09-15
一、zabbix監控JMX
在Zabbix中,JMX監控資料的獲取由專門的代理程式來實現,即Zabbix-Java-Gateway來負責資料的採集,Zabbix-Java-Gateway和JMX的Java程式之間通訊獲取資料,zabbix2.0之後引入的一個功能。顧名思義:Java閘道器,類似agentd,但是隻用於Java方面。需要特別注意的是,它只能主動去獲取資料,而不能被動獲取資料。它的資料最終會給到server或者proxy
1.JMX在Zabbix中的執行流程
1.Zabbix-Server找Zabbix-Java-Gateway獲取Java資料 2.Zabbix-Java-Gateway找Java程式(zabbix-agent)獲取資料 3.Java程式返回資料給Zabbix-Java-Gateway 4.Zabbix-Java-Gateway返回資料給Zabbix-Server 5.Zabbix-Server將資料寫入資料庫 6.Zabbix-web從資料庫獲取資料並再頁面展示
2.配置JMX監控的步驟
1.安裝Zabbix-Java-Gateway。
2.配置zabbix_java_gateway.conf引數。
3.配置zabbix-server.conf引數。
4.Tomcat應用開啟JMX協議。
5.Zabbix-Web配置JMX監控的Java應用。
通俗一點說:
zabbix_java_gateway會主動獲取jvm中的資料,zabbix-server主動收集zabbix_java_gateway中的資料並將資料儲存至資料庫,web通過呼叫資料庫實現頁面展示。
3.環境準備
角色 | IP | 部署 |
---|---|---|
zabbix-server | 10.0.0.71 | zabbix-server、zabbix-java_gateway |
zabbix-agent | 10.0.0.7 | tomcat、zabbix-agent |
4.部署tomcat
#1.下載或上傳tomcat包 [root@web01 ~]# mkdir /server [root@web01 ~]# cd /server [root@web01 server]# rz apache-tomcat-9.0.30.tar.gz #2.解壓程式碼包 [root@web01 server]# tar xf apache-tomcat-9.0.30.tar.gz #3.配置java環境 1.上傳並解壓至指定資料夾 [root@web01 server]# tar xf jdk-8u40-linux-x64.gz -C /server/ [root@web01 server]# mv jdk1.8.0_40 java1.8 2.修改新增環境變數 [root@web01 server]# vim /etc/profile.d/java.sh export JAVA_HOME=/server/java1.8 export JRE_HOME=/server/java1.8/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin [root@web01 server]# source /etc/profile #4.配置tomcat頁面 [root@web01 server]# echo "tomcat" > apache-tomcat-9.0.30/webapps/ROOT/index.html #5.啟動tomcat,啟動的時候最好看著日誌 [root@web01 server]# /server/apache-tomcat-8.5.51/bin/startup.sh && tail -f /server/apache-tomcat-8.5.51/logs/catalina.out
5.搭建jpress
[root@web01 server]# cd /server/tomcat/webapps/
[root@web01 webapps]# rz jpress.war
6.重啟tomcat
[root@web01 ~]# /server/tomcat/bin/shutdown.sh
Using CATALINA_BASE: /server/tomcat
Using CATALINA_HOME: /server/tomcat
Using CATALINA_TMPDIR: /server/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /server/tomcat/bin/bootstrap.jar:/server/tomcat/bin/tomcat-juli.jar
[root@web01 ~]# /server/tomcat/bin/startup.sh
Using CATALINA_BASE: /server/tomcat
Using CATALINA_HOME: /server/tomcat
Using CATALINA_TMPDIR: /server/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /server/tomcat/bin/bootstrap.jar:/server/tomcat/bin/tomcat-juli.jar
Tomcat started.
7.建立資料庫
create database jpress
grant all on *.* to jpress@'172.16.1.%' identified by '123';
8.配置tomcat開啟jvm
[root@linux-node1 ~]# vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.7"
#jvm配置檔案解釋
CATALINA_OPTS="$CATALINA_OPTS
//啟用遠端監控JMX
-Dcom.sun.management.jmxremote
//jmx啟用遠端埠,Zabbix新增時必須一致
-Dcom.sun.management.jmxremote.port=12345
//不開啟使用者密碼認證
-Dcom.sun.management.jmxremote.authenticate=false
//不啟用ssl加密傳輸
-Dcom.sun.management.jmxremote.ssl=false
//執行tomcat主機的IP地址
-Djava.rmi.server.hostname=10.0.0.7"
#重啟tomcat
[root@web01 server]# /server/apache-tomcat-8.5.51/bin/shutdown.sh
[root@web01 server]# /server/apache-tomcat-8.5.51/bin/startup.sh && tail -f /server/apache-tomcat-8.5.51/logs/catalina.out
9.配置hosts
[root@web01 ~]# vim /etc/hosts
10.0.0.7 web01
10.zabbix服務端安裝zabbix-java-gateway
[root@zabbix ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.1-1.el7.x86_64.rpm
#或者
[root@zabbix ~]# yum localinstall -y zabbix-java-gateway-4.0.1-1.el7.x86_64.rpm
11.配置zabbix-java-gateway
[root@zabbix ~]# grep -Ev "^$|#" /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=5
12.啟動zabbix-java-gateway
[root@zabbix ~]# systemctl start zabbix-java-gateway.service
13.配置zabbix-server
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
#java-gateway地址
JavaGateway=10.0.0.71
#java-gateway埠
JavaGatewayPort=10052
#啟動程序輪詢java gateway
StartJavaPollers=5
14.重啟zabbix-server
[root@zabbix ~]# systemctl restart zabbix-server.service
15.zabbix新增監控
二、zabbix監控SNMP
1.SNMP簡介
簡單網路管理協議(SNMP) 是專門設計用於在 IP 網路管理網路節點(伺服器、工作站、路由器、交換機及HUBS等)的一種標準協議,它是一種應用層協議。
MIB SNMP中的MIB是一種樹狀資料庫,MIB管理的物件,就是樹的端節點,每個節點都有唯一位置和唯一名字.IETF規定管理資訊庫物件識別符(OID,Object Identifier)唯一指定,其命名規則就是父節點的名字作為子節點名字的字首。 [1]
OID
#OID對照表
https://blog.csdn.net/buster2014/article/details/46925633
2.安裝SNMP服務端
#zabbix客戶端安裝
[root@web01 ~]# yum install -y net-snmp
3.配置SNMP
[root@web01 ~]# vim /etc/snmp/snmpd.conf
com2sec notConfigUser default 123456
view systemview included .1
4.啟動SNMP
[root@web01 ~]# systemctl start snmpd.service
5.驗證服務
[root@web01 ~]# netstat -lntup | grep snmp
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 73647/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 73647/snmpd
6.配置SNMP客戶端
[root@zabbix ~]# yum install -y net-snmp-utils
#命令
[root@zabbix ~]# snmpwalk --help
-v 1|2c|3 specifies SNMP version to use #指定使用的SNMP版本
-c COMMUNITY set the community string #指定口令,一般是public,我們改成123456
#測試獲取監控資訊
[root@zabbix ~]# snmpwalk -v 2c -c 123456 172.16.1.7 .1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: web01
#檢視所有可以監控的值
[root@zabbix ~]# snmpwalk -v 2c -c 123456 172.16.1.7
因在客戶端中有配置snmp對應密碼,所以需要將巨集裡面的public修改為客戶端密碼