2

在我开始之前,我意识到这里已经有一些与 SNMP 相关的问题,但似乎没有多少问题得到解答——这可能意味着我问错了地方,但我现在不知道还能去哪里。

几天来,我一直在尽我所能阅读 SNMP,但我发现很难理解即将发生的事情。我们的想法是最终我们会将 SNMP 集成到我们的 Java 应用程序服务器中,这将允许最终用户将其合并到他们预先存在的网络管理系统 (NMS) 中。

不幸的是,我对即将发生的事情感到完全困惑。根据我从与最终用户的交谈中了解到的情况(不幸的是,在进行任何研究之前),监控允许他们现有的 NMS 以树型显示的形式向他们的管理员提供生命统计数据的视图,向他们提供有关不同部分的反馈系统处于高水平,并允许他们深入研究特定的子系统。

通过阅读,我们将实现一个“代理”,它有几个定义的接口,允许处理和响应 GET 请求等。这是有道理的,但我不知道通信的格式是什么——似乎没有任何具体的例子来说明任何消息的外观、信息的编码方式。

不过,我更多的困惑是关于管理信息库(MIB)。我错误地假设代理的接口将允许请求受监视的属性,然后依次请求这些属性的值。允许在 NMS 端无需任何配置即可启动和检测任何新的 Agent(v3 中的身份验证除外)。如果我理解正确,情况并非如此,代理必须改为定义 MIB,NMS 可以使用这些 MIB 来确定这些属性。当人们开始提到数千个现有的 MIB 并且它们可以被重用时,我的困惑增加了,我不明白。是否可以使用单个 MIB 定义来描述网络设备的特定属性(例如在路由器上连接互联网的简单事物:是/否)对于许多不同的设备?如果是这样,我不相信我们的软件可以监控任何其他设备/系统共有的任何东西,但我们是否应该寻找已经存在的 MIB?目前我真的没有看到这样一个系统有什么好的理由,代理导出这些信息肯定会更容易——所以如果有人能启发我,我将不胜感激!

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

任何帮助或建议将不胜感激,我已经浏览了 Wiki 页面,但它似乎没有详细介绍 MIB 并且之前不必处理类似引用的 RFC 之类的任何事情,虽然它们可能包含所有他们目前对我来说似乎完全无法理解的信息。或者是否有任何书籍可以推荐用于 v3 的概述和实施?

感谢您的阅读,如果您认为可以提供帮助,则更加感谢!

4

3 回答 3

3

在我看来,您以杂乱无章的方式逐段阅读所有 SNMP 信息。强烈不建议这样做,这当然会导致您感到困惑。

忘记目前所学的内容并深入阅读 Essential SNMP 之类的好书怎么样?

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

请单击 Google Preview 图标进行预览。

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

于 2012-05-26T10:10:08.590 回答
3

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

代理应提供哪些信息并由管理器请求的定义在 MIB 中。MIB 是“粘合剂”,是任何特定系统可以/应该提供的内容的目录。它将数字代码映射到允许我们理解数据的名称和类型,就像电话簿如何将电话号码映射到人们的姓名和地址一样。

通常,您将创建、发布和使用您自己的 MIB,这些 MIB 可以描述您自己产品的特定方面,但您也应该为现有 MIB 中定义的一些标准信息请求提供服务。是的,还有数以千计的其他预先存在的 MIB,您需要其中一两个以上的可能性很小。它们通常是现有产品的 MIB 的发布版本。

“玩弄”的传统方法是安装 Net-SNMP(一个包含代理实现的软件套件,允许您相当轻松地“固定”自己的逻辑和自己的 MIB),然后使用数据包捕获器检查结果,例如线鲨。

为了在生产中更全面地实施,您可以坚持使用 Net-SNMP,或者编写自己的代理软件,或者按照我的做法创建两者的混合体,更加灵活和高性能,但使用 Net-SNMP 的后端来处理所有低级 SNMP 的东西。

不过,您的第一步是阅读一本书或其他可以消除您所有误解的教材,因为猜测不会解决问题。

于 2018-11-26T11:20:17.800 回答
1

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

于 2013-06-27T18:30:24.877 回答