在本文中,作者将向我们展示如何用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 Spring-Bean

    2017-11-06 18:59:30 Bean初始化和销毁方法 配置初始化和销毁的方法:* init-method=”setup”* destroy-method=”teardown”执行销毁的时候 ...

  2. mysql中InnoDB存储引擎的行锁和表锁

    Mysql的InnoDB存储引擎支持事务,默认是行锁.因为这个特性,所以数据库支持高并发,但是如果InnoDB更新数据的时候不是行锁,而是表锁的话,那么其并发性会大打折扣,而且也可能导致你的程序出错. ...

  3. 尺取法拓展——POJ3320

    #include <iostream> #include <cstdio> #include <algorithm> #include <set> #i ...

  4. C#接口作用

    1.C#接口的作用 : C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正 ...

  5. 使用扩展方法(Chapter3 P39-41)

    namespace LanguageFeatures { public class ShoppingCart { public List<Product> Products { get; ...

  6. 模板方法模式templeteMethod

    引出模板模式: 考试试卷问题,提炼后的代码: package com.disign.templetemethod; import org.junit.Test; /** * Created by zh ...

  7. Outpost Security Suite Pro 8.1 – 免费4个月

    OSS( 简称 )一款来自俄罗斯Agnitum公司的互联网安全产品. Outpost以网络防火墙知名,AVG和avast!等知名安全企业都有使用Outpost的防火墙技术. Outpost Secur ...

  8. Alpha冲刺(11/10)

    拖鞋旅游队团队事后诸葛亮会议 前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10054510.html 时间:2018-12-1 20:00 地 ...

  9. New Concept English Two 5

    $课文9 冷遇 83. On Wednesday evening, we went to the Town Hall. 星期三的晚上,我们去了市政厅. 84. It was the last day ...

  10. mac 终端 使用ftp命令

    Mac下使用命令行登陆ftp 最近使用forklift下载服务器pureftp上的东西,总是断断续续的,经常下载到99%然后显示下载失败,非常不舒服!原以为是forklift的问题,换了transmi ...