使用简单网络管理协议(SNMP)监视服务器性能并发送通知(叫做traps)是所有VMware管理员最终必须掌握的一项技能。在本文中,TechTarget中国的特约虚拟化专家David Davis将解释VMware ESX与ESXi可用的不同类型的SNMP代理,并给出使用SNMP进行监控的例子。最后,你将学习如何配置ESX SNMP代理和ESXi代理以发送SNMP traps到网络管理站(NMS)。
为什么需要为VMware ESX Server配置SNMP?
SNMP用于收集如PC、服务器、网络设备等的信息。SNMP也能用于发送traps到SNMP管理站(如Dell OpenManage)。我会简短地提及如何配置traps,本文将着重介绍如何配置ESX以便收集信息。
为什么想要使用SNMP?例如,如果你下载一个新的ESX Server监控工具SolarWinds VM Monitor,首先必须启用ESX上的SNMP,这是由于SolarWinds的VM Monitor使用SNMP收集数据。由于越来越多的应用用于监控VMware ESX Server,并且许多应用都使用SNMP。我们也开始听说现有的监控应用能监视VMware ESX——如果你启用SNMP。
VMware ESX Server(而不是ESXi)带有两个SNMP代理。一个代理基于net-snmp(这是一个在互联网上很出名的Linux SNMP)。另一个代理非常简单,并且只支持traps。这与ESXi所提供的代理是相同的。在本文中,我将配置更加高级的SNMP代理,即net-snmp。(关于如何配置小型ESX代理与ESXi代理请参见VMware的文章“在ESXi上使用SNMP”)。不过要注意,你不能使用我下面所提到的应用监控服务器。你只能配置ESX和ESXi以发送traps到NMS。
但是不能使用图形界面(如VMware Infrastracture Client)启用SNMP。这就是说很难使用命令行。下面我们看看如何通过使用SSH命令行和SNMP命令启用SNMP。
如何通过SSH在ESX Server里启用SNMP?
通过SSH配置SNMP是唯一的方法,而不是通过服务器的控制台。
一旦使用SSH连接SNMP到ESX Server,就能使用标准的Linux命令配置SNMP。配置(使用加密等技术的版本3)SNMP很复杂,我只介绍标准的SNMP配置。
SNMP进程在默认下不会运行,SNMP监控应用不能与ESX Server对话。
首先使用nano或vi编辑/etc/snmp/snmpd.conf文件。例如:
nano /etc/snmp/snmpd/conf
进入只读community字符串(ROcommunity)。我进入的是system contact、system location、read only community string和trap community string。
这时候,配置了SNMP进程但没有启动。通过输入以下语句人工启动SNMP进程:
/etc/rc.d/init.d/snmpd start
或
service snmpd start
不过你更想在每次启动服务器时自动启动SNMP进程,请输入:
chkconfig snmpd on
这样就配置了SNMP读(没有配置traps),并且在服务器启动时SNMP进程将启动。
如果启动没成功,可以重启服务器,或者使用上面的snmpd start命令,。此外,为了确保SNMP的运行,可以实施ps –ef | grep snmp查看运行状态,如:
[root@ESX2 snmp]# ps -ef | grep snmp
root 1058 1 0 Oct15 ?
00:00:05 /usr/sbin/snmpd -s -l
/dev/null -P /var/run/snmpd -a
root 2223 2116 0 01:18 pts/0
00:00:00 grep snmp
[root@ESX2 snmp]#
或者运行:
[root@ESX2 snmp]# service snmpd status
snmpd (pid 1058) is running...
在ESX里也有大量SNMP命令。在/usr/bin里你可以找到如snmpstatus、snmptest和snmpwalk这样的命令。如图所示:
实际上,这些不是ESX所具有的命令,而是Red Hat Enterprise Linux 的。这意味着你能参考net-snmp文档完成所有这些命令如何工作的说明。
如果要配置ESX发送traps到NMS,可以在/etc/snmp/snmpd.conf文件里编辑trapcommunity和trapsink命令。trapsink是NMS的主机名。在ESX服务器里完全启用或禁用traps可以编辑/etc/vmware/hostd/config.xml。更多信息参见VMware的Using SNMP with ESX Server 3 documentation。
如何使用SolarWinds VM Monitor监控VMware ESX Server?
你几乎可以使用任何SNMP监控工具(WhatsUP、Solarwinds Orion、Nagios等)来监视VMware ESX Server。我选择使用最近所知的一款简单的免费工具。这款工具来自Solarwinds,叫做SolarWinds VM Monitor。可以免费下载使用,它的局限在于每次只能监控单个VMware ESX Server。我喜欢VM Monitor简单易操作的界面。它就像Windows侧边栏或Mac OS 小工具。
配置好SNMP并运行VM Monitor,所需要的只是主机名和ESX Server的SNMP read community。如图所示:
在连接后,使用SNMP收集数据并显示ESX Server和子虚拟机的基本性能参数,如:
这只是使用一款免费的SNMP性能工具监控ESX Server的例子。
如何使用Remote CLI启用VMware ESX或ESXi SNMP traps?
要配置基本的SNMP代理发送traps,可以使用免费的VMware远程命令行界面(Remote CLI)。运行CLI并输入DIR,可以看见命令vicfg-snmp.pl。
如下图所示,我使用命令检查SNMP代理的参数。
traps的基本配置如下:
vicfg-snmp.pl --server <ESX_IP_Address> --username root
--password <password>
-c <community_name> -t
<NMS-Server>@162/<community_name>
对于所有选项,运行vicfg-snmp.pl –help。
通过SNMP在ESX服务器上启用系统工具监控和报道能使管理员的工作更容易一些。如有任何疑问,请发送邮件到[email protected]。