Zabbix 監控 SNMP & JMX
阿新 • • 發佈:2020-09-14
Zabbix 配置清華源
# 安裝清華源 yum 倉庫 [root@db01 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm # 安裝後,發現 zabbix.repo 中的連結還是國外的地址,自己更改 zabbix.repo 內容 [root@db01 tomcat]# cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1
Zabbix 監控 JMX
在 Zabbix 中,JMX 監控資料的獲取由專門的代理程式來實現,即 Zabbix-Java-Gateway 來負責資料的採集,Zabbix-Java-Gateway 和 JMX 的 Java 程式之間通訊獲取資料
JMX 在 Zabbix 中的執行流程
- Zabbix-Serve r 找 Zabbix-Java-Gateway 獲取 Java 資料 - Zabbix-Java-Gateway 找 Java程式 獲取資料 - Java 程式返回資料給 Zabbix-Java-Gateway - Zabbix-Java-Gateway 返回資料給 Zabbix-Server - Zabbix-Server 將資料寫入資料庫 - Zabbix-web 從資料庫獲取資料並再頁面展示
配置 JMX 監控的步驟
- 安裝 Zabbix-Java-Gateway。
- 配置 zabbix-java-gateway.conf 引數。
- 配置 zabbix-server.conf 引數。
- Tomcat 應用開啟JMX協議。
- Zabbix-Web 配置 JMX 監控的 Java 應用。
環境準備
角色 | IP | 部署 |
---|---|---|
zabbix-server | 10.0.0.71 | zabbix-server、zabbix-java-gateway |
zabbix-agent | 10.0.0.7 | tomcat、zabbix-agent |
部署 Tomcat
# 1.下載或上傳 tomcat 包,解壓程式碼包 [root@web01 ~]# tar xf apache-tomcat-9.0.30.tar.gz -C /usr/local [root@web01 ~]# ln -s /usr/local/apache-tomcat-9.0.30 /usr/local/tomcat # 配置 java 環境 #### 1.上傳並解壓至指定資料夾 [root@web01 server]# tar xf jdk-8u40-linux-x64.gz -C /usr/local/ [root@web01 server]# mv /usr/local/jdk1.8.0_40 /usr/local/java1.8 #### 2.修改新增環境變數 [root@web01 server]# vim /etc/profile.d/java.sh export JAVA_HOME=/usr/local/java1.8 export JRE_HOME=/usr/local/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 # 配置 tomcat 頁面 [root@web01 server]# echo "tomcat" > /usr/local/tomcat/webapps/ROOT/index.html # 啟動 tomcat,啟動的時候最好看著日誌 [root@web01 server]# /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out
配置 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=172.16.1.51"
# 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=172.16.1.51"
# 重啟 tomcat
[root@web01 server]# /usr/local/tomcat/bin/shutdown.sh
[root@web01 server]# /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out
Zabbix 服務端安裝 zabbix-java-gateway
[root@zabbix ~]# yum install -y zabbix-java-gateway
配置 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
啟動 zabbix-java-gateway
[root@zabbix ~]# systemctl start zabbix-java-gateway.service
配置 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
重啟 zabbix-server
[root@zabbix ~]# systemctl restart zabbix-server.service
Zabbix 新增監控
Zabbix 監控 SNMP
SNMP 簡介
簡單網路管理協議(SNMP) 是專門設計用於在 IP 網路管理網路節點(伺服器、工作站、路由器、交換機及 HUBS 等)的一種標準協議,它是一種應用層協議
MIB SNMP 中的 MIB 是一種樹狀資料庫,MIB 管理的物件,就是樹的端節點,每個節點都有唯一位置和唯一名字.IETF規定管理資訊庫物件識別符(OID,Object Identifier)唯一指定,其命名規則就是父節點的名字作為子節點名字的字首。
# OID對照表
https://blog.csdn.net/buster2014/article/details/46925633
安裝 SNMP 服務端
Zabbix 監控其他伺服器 SNMP 狀態時,是作為客戶端監控的,所以服務端是被監控主機:
# zabbix 客戶端安裝
[root@web01 ~]# yum install -y net-snmp
配置SNMP
[root@web01 ~]# vim /etc/snmp/snmpd.conf
com2sec notConfigUser default 123456
view systemview included .1
啟動 SNMP
[root@web01 ~]# systemctl start snmpd.service
驗證服務
[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
配置 SNMP 客戶端
# Zabbix Server 上安裝
[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.51 .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.51