ESXi SNMP 無回應排查全紀錄

VMware ESXi 6.7 · SNMP · LibreNMS

ESXi SNMP 無回應排查全紀錄

從 LibreNMS 告警到找出根本原因的完整除錯步驟

📋 問題描述

LibreNMS 發出以下 Critical 告警:

🔴 CRITICAL ALERT
Device: 192.168.x.x (VMware ESXi 6.7)
Rule: SNMP not responding on Device
Timestamp: 2026-05-04 23:33:51
Unique-ID: 7470

ESXi 服務頁面顯示 snmpd 執行中,但 LibreNMS 卻持續告警。本文記錄完整的排查流程與最終解決方案。

🖥️ 環境資訊

項目內容
ESXi 主機 IP192.168.x.x
ESXi 版本VMware ESXi 6.7.0 build-17700523
監控系統LibreNMS (Docker)
SNMP Communitypublic

🔍 排查步驟

1

確認 ESXi SNMP 設定

SSH 進入 ESXi,確認 SNMP 基本設定:

esxcli system snmp get
✅ 預期結果: Enable: true, Communities: public, Port: 161

2

從外部測試 SNMP 回應

在監控機器上安裝 snmp 工具並測試:

sudo apt install snmp -y
snmpwalk -v2c -c public -On 192.168.x.x .1.3.6.1.2.1.1.1.0
⚠️ 若出現: Timeout: No Response from 192.168.x.x,代表封包未回應,繼續下一步

3

確認防火牆規則

確認 ESXi 防火牆 SNMP 規則是否啟用:

esxcli network firewall ruleset list | grep snmp

若顯示 false,手動啟用:

esxcli network firewall ruleset set --ruleset-id snmp --enabled true

4

確認 snmpd 實際監聽狀態

關閉防火牆後確認 port 161 是否在監聽:

esxcli network firewall set --enabled false
esxcli network ip connection list | grep 161
✅ 預期看到: udp 0 0 0.0.0.0:161 0.0.0.0:0 ... snmpd

!

⚠️ 根本原因:ESXi 6.7 的已知 Bug

執行 /etc/init.d/snmpd restart 時,ESXi 6.7 的 init script 會自動執行:

esxcli system snmp set -e false   ← 這行會把 SNMP 設為停用!

結論:不能直接用 init script 重啟 snmpd,否則會導致 SNMP 被停用。

✅ 正確解決方案

ESXi 6.7 上重啟 SNMP 的正確方式,需在 init script 重啟後,手動重新啟用 SNMP:

步驟 1:重啟 snmpd 服務
/etc/init.d/snmpd restart

步驟 2:重新啟用 SNMP(關鍵步驟)
esxcli system snmp set -e true

步驟 3:重新啟用防火牆
esxcli network firewall set --enabled true

步驟 4:驗證
esxcli system snmp get | grep Enable
snmpwalk -v2c -c public -On 192.168.x.x .1.3.6.1.2.1.1.1.0

📊 排查流程摘要

步驟指令結果
確認 SNMP 設定esxcli system snmp get✅ Enable: true
外部 snmpwalk 測試snmpwalk -v2c -c public -On …❌ Timeout
防火牆規則確認ruleset list | grep snmp✅ true
關閉防火牆後測試firewall set –enabled false❌ 仍 Timeout
init script 重啟/etc/init.d/snmpd restart⚠️ 自動執行 set -e false
手動重新啟用esxcli system snmp set -e true✅ 問題解決

💡 重點整理

  • ESXi 6.7 的 /etc/init.d/snmpd restart 會自動把 SNMP 設為 disabled
  • 重啟後務必執行 esxcli system snmp set -e true 重新啟用
  • SNMP 防火牆規則顯示 enabled 不代表封包一定能通
  • esxcli network ip connection list | grep 161 驗證實際監聽狀態
  • 測試時建議用數字 OID(-On)避免 MIB 解析問題誤導判斷

標籤:
ESXi
SNMP
LibreNMS
VMware
Troubleshooting

將內容的IP改掉 發佈到wordpress上

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料