rpm -qa | grep snmp
# 典型輸出:
# net-snmp-libs-5.1.2-11.EL4.7
# net-snmp-5.1.2-11.EL4.7
若未安裝,使用 YUM 一鍵部署:
yum install -y net-snmp net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils mrtg
net-snmp:核心守護程式net-snmp-utils:snmpwalk、snmpget 等客戶端工具net-snmp-devel:開發庫(編譯第三方監控外掛需用)mrtg:流量圖表工具(可選)# 先直接執行 snmpd 建立預設配置
snmpd
# 再啟動系統服務
service snmpd start
# 檢查狀態
service snmpd status
常見坑點: 若出現 snmpd dead but pid file exists 或 snmpd dead but subsys locked,必須先手動執行 snmpd 再啟動服務,否則殘留 PID/鎖定檔導致失敗。
# A. 修改 Community String(密碼等效,務必改複雜)
# 原:com2sec notConfigUser default public
com2sec notConfigUser default MySecretCommunityString
# B. 開放 MIB-2 樹(系統資訊、介面統計等)
# 原:#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
# C. 授權 notConfigGroup 讀取 mib2
# 原:access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact mib2 none none
/etc/rc.d/init.d/snmpd restart
# 本機測試
snmpwalk -v 2c -c MySecretCommunityString localhost system
snmpget -v 2c -c MySecretCommunityString localhost sysDescr.0
# 遠端測試(需防火牆開放 UDP 161)
snmpwalk -v 2c -c MySecretCommunityString 192.168.1.100 ifDescr
# iptables 範例
iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 161 -j ACCEPT
service iptables save
# 或 firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=161/udp --zone=public
firewall-cmd --reload
# 建立唯讀使用者
net-snmp-create-v3-user -ro -A AuthPass123 -X PrivPass456 -a SHA -x AES snmpuser
# 產生的配置片段加入 snmpd.conf
# createUser snmpuser SHA AuthPass123 AES PrivPass456
# rouser snmpuser authPriv
snmp.get[]、snmp.walk[] 監控介面流量、CPU、記憶體、磁碟snmp_exporter 配合 snmp.yml 產生指標10176)