从哪里开始使用SNMP代理?

时间:2012-05-25 16:23:23

标签: snmp mib network-monitoring

在我开始之前我已经意识到这里已经有一些与SNMP相关的问题,但似乎没有多少人得到解答 - 这可能意味着我在错误的地方提出要求,但我不知道目前还有什么地方可以去

我已经在SNMP上尽可能地阅读了几天,但我发现很难理解将要发生的事情。我们的想法是最终将SNMP集成到我们的Java应用服务器中,这将允许最终用户将其整合到他们已有的网络管理系统(NMS)中。

不幸的是,我对完成的事情感到十分困惑。从我与最终用户(不幸的是在任何研究之前)的交谈中理解的是,监控允许他们现有的NMS给他们的管理员一个树型显示器中的生命统计数据的视图,给他们关于不同部分的反馈。系统处于高水平,允许他们深入研究特定的子系统。

从阅读中我们将实现一个'Agent',它有几个已定义的接口,允许处理和响应GET请求等。这是有道理的,但我无法弄清楚通信的格式是什么 - 似乎没有任何具体的例子说明任何消息的外观,信息是如何编码的。

我更多的困惑是关于管理信息库(MIB)。我错误地假设代理的接口允许请求受监视的属性,然后依次请求这些属性的值。允许在NMS端没有任何配置的情况下启动和检测任何新代理(v3中的身份验证除外)。如果我理解的话,情况并非如此,代理必须定义MIB,NMS可以使用这些MIB来确定这些属性。当人们开始引用成千上万的现有MIB并且可以重复使用我不理解的时候,我的困惑就会增加。是否可以使用单个MIB定义来描述许多不同设备的网络设备的特定属性(如路由器上连接的互联网一样简单:是/否)?如果是这样,我不相信我们的软件会允许监控任何其他设备/系统的常见内容,但我们是否应该寻找已经存在的MIB?目前我并没有真正看到这样一个系统有任何合理的理由,当然代理商更容易导出这些信息 - 所以如果有人能够启发我,我会很感激!

我认为如果我能够设置一个简单的SNMP代理和某种客户端会有所帮助,我可以开始看到这个过程并最终检查两者之间的通信,但我发现很难找到任何提供任何服务器的地方关于做这样的事情的信息。 Nagios已被推荐给我们作为测试'客户端'/ NMS,但他们的'快速入门'部分建议下载600Mb虚拟机 - 当然有更快的入门方式吗?

任何帮助或建议都将受到赞赏,我已经浏览了Wiki页面,但它似乎没有详细介绍MIB并且之前没有必要处理任何类似于引用的RFC,而它们可能包含他们目前看起来完全无法穿透的所有信息。或者,是否有任何可以推荐用于概述和实施v3的书籍?

感谢您的阅读,如果您认为可以提供帮助,我们非常感谢!

3 个答案:

答案 0 :(得分:3)

在我看来,你是以一种无序的方式一块一块地读取所有SNMP信息。这是非常不推荐的,当然会让你感到困惑。

忘记你到目前为止所学到的知识然后深入了解一本好书如Essential SNMP?

http://shop.oreilly.com/product/9780596008406.do

请点击Google预览图标进行预览。

你不能依赖网络论坛来告诉你ABC,因为我发现这是不切实际的。

答案 1 :(得分:1)

通信接口是SNMP。这就是用于传输的协议(通常在UDP之上)。服务信息请求的是SNMP代理。发送信息请求的是SNMP管理器。

在MIB中,对应由代理提供并由管理器请求的信息的定义。 MIB是“胶水”,是任何特定系统可以/应该提供的东西的目录。它将数字代码映射到名称和类型,从而使我们能够理解数据,就像电话目录如何将电话号码映射到人们的姓名和地址一样。

通常,您将创建和运送并使用自己的MIB,这些MIB可以描述特定于您自己产品的方面,但是您还应该满足一些标准信息请求,这些请求是在现有MIB中定义的。是的,还有成千上万的其他先前存在的MIB,而您需要其中一个或两个以上的可能性很小。它们通常是现有产品的MIB的发行版本。

“玩具”的常规方法是安装Net-SNMP(一种软件套件,其中包括代理程序实现,使您可以相当轻松地“继承”自己的逻辑和自己的MIB),然后使用像Wireshark这样的数据包捕获器。

要在生产环境中实现更全面的实现,您可以坚持使用Net-SNMP,或者编写自己的代理软件,或者按照我的所做的方式创建两者的混合体,这两者的灵活性和性能更高,但使用Net-SNMP的后端进行处理所有底层SNMP内容。

但是,您的第一步是读一本书或其他一些可以清除您所有误解的教材,因为猜测不会消除它。

答案 2 :(得分:0)

我成功使用了this页面中的示例。 shell和Perl NetSNMP代码都非常简单易于实现和查询。