首页 > 解决方案 > 使用陷阱而不是获取请求来获取信息?

问题描述

假设我想制作一个监控应用程序来监控我网络中的一堆设备,我的问题很简单:为什么在设备可以向管理器发送陷阱时使用 SNMP-Get 请求?流行的监控应用程序是否使用陷阱或 SNMP-get 请求?谢谢。

标签: snmp

解决方案


有几个考虑因素,这可以概括为推送(陷阱、通知)与拉取(get* 请求)的管理理念:

1) 只有管理应用程序确切地知道它想从设备获取的信息。在拉式架构中(即 SNMP)。它通过 GET* 请求请求信息。在推送架构中,它必须配置推送,例如。必须设置设备以发送通知,例如。如果检测值高于某个阈值,这是昂贵的。

2) 维护设备上的推送配置是昂贵的。在 SNMP 中,设备应该是哑的,管理器应该是聪明的。如今,设备变得越来越强大,因此您看到了更多的推送模型(某些 MIB、NetFlow、sFlow 等)。

3) 除了配置之外,仅仅使通知可靠是昂贵的。在 SNMP 中有 TRAP 和 Inform-Request PDU。前者是不可靠的,仅被视为设备上发生了某些事情的提示,然后应用程序使用拉取来获取所有信息。后者得到确认,设备必须维护信息以使其可靠(超时、重传等)。

有了以上内容,只需考虑在设备上专门设置推送(陷阱)的工作:

1)您的应用程序(可能是多个应用程序之一)必须配置设备以告诉它您需要陷阱/通知。这本身不能完全通过推送来完成,必须有一些 SET 请求;

2)你的应用程序必须准确地告诉它你想要什么陷阱,再次 SET 请求;

3) 您的设备现在必须确保每个通知都能可靠地发送到已在设备上注册的所有应用程序。

就“热门监控应用”而言,在SNMP中绝大多数信息是拉取的,通知用于提示异常,提示拉取信息。


推荐阅读