📋 問題描述
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 主機 IP | 192.168.x.x |
| ESXi 版本 | VMware ESXi 6.7.0 build-17700523 |
| 監控系統 | LibreNMS (Docker) |
| SNMP Community | public |
🔍 排查步驟
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
ESXi
SNMP
LibreNMS
VMware
Troubleshooting
將內容的IP改掉 發佈到wordpress上
發佈留言