在本文中,作者将向我们展示如何用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警告信息的简历方面,可能耗时比较多。

snmp获取设备相关管理信息的更多相关文章

  1. ios 获取设备相关的信息

    .获取设备的信息 UIDevice *device = [[UIDevice alloc] int]; NSString *name = device.name; //获取设备所有者的名称 NSStr ...

  2. C# 获取操作系统相关的信息

    本文通过一个Demo,讲解如何通过C#获取操作系统相关的信息,如内存大小,CPU大小,机器名,环境变量等操作系统软件.硬件相关信息,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: Envir ...

  3. 使用ttXactAdmin、ttSQLCmdCacheInfo、ttSQLCmdQueryPlan获取SQL相关具体信息[TimesTen运维]

    使用ttXactAdmin.ttSQLCmdCacheInfo.ttSQLCmdQueryPlan获取SQL相关具体信息,适合于tt11以上版本号. $ ttversion TimesTen Rele ...

  4. 获取设备和 App 信息

    设备对照表:https://www.theiphonewiki.com/wiki/Models 获取设备和 App 信息代码: NSLog(@"设备信息如下"); NSLog(@& ...

  5. [Android]获取设备相关信息

    public static int screenWidth(Activity activity) { DisplayMetrics dm = new DisplayMetrics(); activit ...

  6. iOS ---------- 获取设备的各种信息

    一.目录结构: 获取屏幕宽度与高度 获取设备版本号 获取iPhone名称 获取app版本号 获取电池电量 获取当前系统名称 获取当前系统版本号 获取通用的唯一识别码UUID 获取当前设备IP 获取总内 ...

  7. iOS 获取设备的各种信息的方法

    一.目录结构: 获取屏幕宽度与高度 获取设备版本号 获取iPhone名称 获取app版本号 获取电池电量 获取当前系统名称 获取当前系统版本号 获取通用的唯一识别码UUID 获取当前设备IP 获取总内 ...

  8. ios 获取手机相关的信息

    获取手机信息      应用程序的名称和版本号等信息都保存在mainBundle的一个字典中,用下面代码可以取出来 //获取版本号 NSDictionary *infoDict = [[NSBundl ...

  9. Android开发之获取设备的屏幕信息和px dp之间的转换

    DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metr ...

随机推荐

  1. [java]java String.split()函数的用法分析

    转自:http://swiftlet.net/archives/709 一.在java.lang包中有String.split()方法的原型是: public String[] split(Strin ...

  2. Spring4 MVC RESTFul WebServices CRUD实例+RestTemplate

    简单介绍REST REST 表示状态传输.这是一个体系结构样式,可用于设计网络服务,可以被各种客户端消耗.核心思想是,不使用如CORBA,RPC或SOAP复杂的机制在机器之间进行连接,简单的 HTTP ...

  3. 获取iframe(angular 动态页面)高度

    问题比较特殊,google了好久才得到启示 开发的angular页面,需要嵌入到客户的web页中,以iframe方式.由于iframe的高度需要指定,而angular动态生成机制导致页面高度会随时变化 ...

  4. 利用Bomb打造自己的小程序

    小程序开发 Bomb免费后端云开发 首先,小程序的开发已是热门,一个前段技术人员必备的技术就是开发小程序.在这里推荐一个入门小程序文章(连胜出品). 对于小程序的入门开发就不再做详细介绍,这里针对Bm ...

  5. hdu 3699 10 福州 现场 J - A hard Aoshu Problem 暴力 难度:0

    Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...

  6. Halcon12新特性之VS可视化调试插件

    当我们用VC\C#调试halcon代码的时候,通常会遇到一个头痛的问题,我们无法看到halcon变量的调试信息 如下图:什么鬼...什么鬼   比如我们想看一个double数值变量,我们需要 doub ...

  7. New Concept English Two 15 37

    listening speaking reading writing and translating $课文35  捉贼! 355. Roy Trenton used to drive a taxi. ...

  8. 探究js正则匹配方法:match和exec

    match是字符串方法,写法为:str.match(reg) exec是正则表达式方法,写法为:reg.exec(str) match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是nu ...

  9. Echart参数详解收藏

    最全: https://www.cnblogs.com/Kqingniao/p/5833419.html 柱形图: https://blog.csdn.net/qq_36330228/article/ ...

  10. 在win10下安装双系统ubuntu16.04.3教程

    闲暇了两天,终于想起来要装一个Liunx系统了.于是捣鼓了一番,实现了在Win10下安装Ubuntu16.04.3版本. 一.准备工作 下载Ubuntu 16.04.3镜像 准备一个2G以上的U盘 下 ...