snmp获取设备相关管理信息

在本文中,作者将向我们展示如何用snmp代理监视网络设备,甚至发送软件警告。

 


 

网络上很多代理在为我们服务。只要我们开启UDP/161,162端口,这些代理就会以Management Information Base (MIB)的形式给我们提供大量的网络设备信息。

有兴趣的话,你可以在网上找一堆带有SNMP (Simple Network Management Protocol) 代理监听器的网络管理软件,如SpiceWorks, Net-SNMP, NetXMS, Nagios, Zenoss等,然后找个提供Wi-Fi的网络咖啡店。如果运气好,你能找到一大堆各种各样的网络设备和同时使用网络的其它终端。

SNMP considerations

下面是我列出的使用snmp代理的优点和不足,具体情况我会在后面详细说明。

优点

l 入侵检测

l 快速网络扫描

l 交换机单点故障检查

l 硬件故障预先报警

l 性能监控

l 软件故障和异常检测

l 工业化标准,设备交互的最佳实践

不足

l 误报

l 日志管理

l 信息太多,不方便筛选

l 复杂的监控环境

l 配置管理

l 代理认证和默认的公共设置

l 多种代理信息格式

SNMP 基础

SNMP的本质是基于代理的通告系统。每个设备,甚至是很多低端的交换机和打印机,都支持这种基于代理的通告。这种通告,或者所谓的 "trap,"是由设备厂商所开发的代理功能来生成的,监听软件可以监控系统的特殊事件,比如事件日志中的某类特殊事件,然后将通告发送给SNMP处理器或者其他网络管理工具。

SNMP可 以看做是目前众多功能类似的网管框架之一,此类管理框架还包括Microsoft Windows Management Instrumentation (WMI),Web Based Enterprise Management (WEBM) 以及 Common Information Model (CIM)。CIM 已经发展成一个完整的对象模型,采用DMTF并使用UML语言。

Windows 或 Linux下的SNMP

Microsoft在WMI中完全兼容CIM 模型。比如,在Vista, Windows 7, 或 Server 2008系统中,打开命令行窗口输入以下命令:

winrm enumerate wmicimv2/Win32_ComputerSystem

这个命令会显示出电脑系统的基本硬件信息,比如主板厂商名称,另外还包括域成员名称,管理账户密码状态,服务器角色,当前用户名,主机名,启动项等各种内容。通过 WMI,用户可以对系统信息了如指掌。图 A 所显示的是开启SNMP的图表。类似的监控功能在Linux上也存在。比如,免费的WebNMS就带有一套snmp代理功能,同时还提供了通过HTTP的管理方式。

图片来自SNMPBOY.MSFT.NET

是否值得

心急的网管们这时候可能就会问,到底学习SNMP和相关内容需要多少成本呢。Distributed Management Task Force (桌面管理任务组,DMTF)是SNMP的知识库也是与SNMP关 系最密切的组织,他们坚持认为,他们的教材适用于"管理应用程序开发者,架构开发者,信息技术经理以及系统管理员。" 这可能有点夸张。而CIM Road Map Task Force 的Scott Neumann则将CIM称为"描述网络的最成熟和广泛接受的模块"。也就是说,这个模块像网络一样深入、复杂、宏大和特异。

SNMP软件

snmp代理程 序并不只针对硬件。实际上, Oracle Enterprise Manager (OEM)被修改后,可以针对来自于Oracle VM, Oracle Database, 或 Fusion Middleware的警告信息作出反应。这里所说的是Oracle提供的 Contact Center Anywhere (CCA) 程序。他不但可以让 SNMP用户拥有常用的与电话相关的管控能力,还提供诸如软件许可失败,"恶意呼叫追踪",自动呼叫分布语音信箱等功能。也就是说,SNMP程序是可以被调整的,以便让管理者更好的理解其性能,也可以拥有在一定条件下自动升级的能力,或者适应于企业特定的工作流程。软件通过设计,能够实现令人兴奋的结果。

不过这个谍对谍的世界总是充满了风险。SNMP最初的设计者对周围的环境过于信任,并没有考虑安全问题。SNMP的"community strings"功能就像管理者和代理之间的密码。community string出现在这两者之间通信的所有数据包中。不要冒险让你的snmp代理变 成双面间谍。也不要接受默认的"public" 或 "private"的community strings。 "Private"尤其容易出问题,因为它可以允许攻击者修改设备配置。如果不得不采用默认的"private"的community strings,那么就要限制能够访问SNMP的IP地址,从而确保通信安全。SNMP Version 3新增了代理加密功能,可以有效降低man-in the-middle类型的攻击,但并不是所有网络设备都支持这种功能。

购买注意事项

全面的购买指南肯定要比本文详细的多,所以我在这里只提供几个重要的购买注意事项:

l 记住就算一个很小的网络也会拥有上百甚至上千个"设备"。如果价格是根据设备的数量来定的,那么要注意了。

l "自动网络发现"是一个很好的概念,但是它是假设所有状况都是理想情况,比如所有的代理和管理者能彼此看到对方。

l SNMP监控有托管方式的,也有网络内部自己管理的。

l 要把时间成本加入其中。虽然不比一次搞定所有设置,但是在SNMP警告信息的简历方面,可能耗时比较多。

上一篇:C#编程-93:迭代器Iterator概述


下一篇:Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法