随着云和虚拟化的流程,原来的 “网络管理员” 和 “系统管理员” 之间的界线更加模糊起来。忽视配置网络交换机和理解网络技术的系统管理员将面临过时的风险。
不用再担心完整性,我将展示如何扩展 Nagios 来监视网络交换机。使用 Nagios(而不是网络交换机供应商的解决方案)监视网络交换机的优点很简单 —— 使用 Nagios 您可以监视任何 供应商的交换机。看到 ping 成功后,我们将探讨交换机上的 SNMP。
有些交换机默认启用 SNMP。您可以根据供应商的说明设置。要在 Cisco Switch 上设置 SNMP,请参考以下示例,我的交换机的主机名为 c2960g:
telnet c2960g c2960g>enable c2960g#configure terminal c2960g(config)#snmp-server host 192.168.15.1 traps SNMPv1 c2960g(config)#snmp-server community public c2960g(config)#exit c2960g#copy running-config startup-config现在看看能够监视的内容,运行 snmpwalk 并将其导出到文件:
snmpwalk -v 1 -c public c2960g
如果一切正常,您将看到许多内容传递回来。然后可以捕获输出并查看各种要监视的位置。
我还有一个交换机示例。当我运行 snmpwalk 命令时,我看到端口以及做标记的方式。我对以下信息很感兴趣:
MTU(IF-MIB::ifMtu.<portnumber>)。 端口运行速度(IF-MIB::ifSpeed.<port number>)。 端口是否正常(IF-MIB::ifOperStatus.<port number>)。为了监视这些内容我创建了一个新文件,/usr/local/nagios/etc/dallas/switch-services.cfg。我将网络主机映射到交换机,因此我对所有事情了如指掌。建议您也这样做。如果想体验真正的云计算,就应该了解所有资源的状态。
我将使用节点 x336001 作为示例。我知道它位于端口 5。我的文件如下所示:
define servicegroup { servicegroup_name switch-snmp alias Switch SNMP Services } define service { use generic-service name switch-service host_name smc001 service_groups switch-snmp } define service { use switch-service service_description Port5-MTU-x336001 check_command check_snmp!-o IF-MIB::ifMtu.5 } define service { use switch-service service_description Port5-Speed-x336001 check_command check_snmp!-o IF-MIB::ifSpeed.5 } define service { use switch-service service_description Port5-Status-x336001 check_command check_snmp!-o IF-MIB::ifOperStatus.5 }完成后,重启 Nagios,您会发现现在我可以查看交换机了:
图 5. 监视交换机
这只是如何监视交换机的一个示例。注意,我没有设置警告,也没有指出关键动作。您可能还注意到了,在 libexec 目录中还有一些选项可以完成类似的功能。check_ifoperstatus 以及其他内容也需要技巧。使用 Nagios 时,可以使用多种方式完成一个任务。