首先使用root用户凭据通过SSH或Telnet连接ESXi主机。
登录后,检查当前的SNMP配置:
# esxcli system snmp get
Authentication:
Communities:
Enable: false
Engineid:
Hwsrc: indications
Loglevel: info
Notraps:
Port: 161
Privacy:
Remoteusers:
Syscontact:
Syslocation:
Targets:
Users:
V3targets:
通过设置社区字符串来启动配置:
esxcli system snmp set --communities
例如:
esxcli system snmp set --communities MY_SNMP_STRING
配置SNMP端口:
esxcli system snmp set --port 161
在服务器上启用SNMP:
esxcli system snmp set --enable true
设置syscontact:
esxcli system snmp set --syscontact [email protected]
设置服务器位置:
esxcli system snmp set --syslocation Office-1-Floor
检查SNMP防火墙规则:
# esxcli network firewall get
Default Action: DROP
Enabled: true
Loaded: true
# esxcli network firewall ruleset rule list | grep snmp
snmp Inbound UDP Dst 161 161
# esxcli network firewall ruleset allowedip list | grep snmp
snmp All
如果你只想从受信任的子网或IP地址限制对SNMP的访问,请将其设置如下:
#关闭允许所有
#esxcli network firewall ruleset set -a false -r snmp
删除所有的允许个别网段
#esxcli network firewall ruleset allowedip remove --ruleset-id snmp --ip-address 192.168.10/24
设定允许单机通过
# esxcli network firewall ruleset allowedip add --ruleset-id snmp \
--ip-address 192.168.3.10
# esxcli network firewall ruleset allowedip add --ruleset-id snmp \
--ip-address 192.168.1.0/24
# esxcli network firewall ruleset set --ruleset-id snmp --enabled true
查询开通主机
# esxcli network firewall ruleset allowedip list | grep snmp
snmp 192.168.1.10, 1192.168.1.20
允许来自任何源IP:
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
要测试snmpd服务是否正常工作,请使用snmputil工具或安装有SNMP工具的主机上使用snmpwalk命令:
$ snmpwalk -v 1 -c
例如:
# snmpwalk -v 1 -c public 192.168.1.2 | more
SNMPv2-MIB::sysDescr.0 = STRING: VMware ESXi 5.1.0 build-2000251 VMware, Inc. x86_64
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.6876.4.1
...
进行更改后重新启动snmp服务:
# /etc/init.d/snmpd restart