我在 StackOverflow 上问过以下问题,但还没有收到任何答复,大概是因为那里似乎没有人对 SNMP 和我的问题有足够的了解。所以,我现在在 ServerFault 上提问,希望有人能帮助我,因为这也与网络有关。
我是 SNMP 新手,无法理解我需要实现的 Java 应用程序的 SNMP 要求。我正在使用开放DMK提供 SNMP 支持。请原谅我的问题中任何粗鲁无知之处。我已阅读 RFC 规范,但大多数文本对我来说似乎都是胡言乱语。
一个要求是“SNMP 支持必须符合警报 MIB (RFC 3877)“。
- 这是什么意思?
- Alarm MIB 用于什么?
- 这与 SNMP 陷阱/通知有关吗?阅读 RFC 规范后,我感觉这与 SNMP 通知/陷阱有关,我的应用程序需要在发生不良事件(例如超出阈值)时将其发送给管理员。如果是这样,我仍然不明白我到底需要针对此要求做什么。
- 我需要定义我自己的应用程序的 SNMP Trap 定义(即不使用通用定义)。既然我需要支持 Alarm MIB,我的 MIB 会有什么不同?
- 是不是除了发送通知之外,我还需要将该通知存储在 Alarm 表中?如果是这样,这样做的目的是什么?
下面是一种方法开放DMK库发送 SNMPv2 Trap:
公共无效 snmpV2Trap(SnmpOid trapOid,SnmpVarBindList varBindList)
我理解如何使用此方法是
trapOid
将引用我应用程序的 MIB 中的通知的 OID 以及varBindList
要发送的任何附加参数。那么,Alarm MIB 如何/在哪里适合于此?
另一个要求是“SNMP 支持必须符合警报报告控制 MIB (RFC 3878)“。
- 这是什么意思?
- 警报报告控制 MIB 用于什么?
- 与 SNMP 陷阱/通知有关系吗?
谢谢。
答案1
RFC 警报 MIB 用于描述您将在自己的 MIB 中为自己的代理实现的警报/通知。
RFC 警报 MIB 与您的 MIB 相关,因为 RFC 警报 MIB 将创建并列出您的警报并描述有关所有警报所共有的警报/通知的信息。
您的 MIB 会有所不同,因为您的 MIB 实际上会描述该警报的值,例如 CPU 温度计的温度。RFC 警报 MIB 在其实例化的警报列表中只会有一个元素来描述该警报;而不是警报的实际值,在本例中是温度。RFC 警报 MIB 是一种告诉 SNMP 管理器将收到哪些警报以及它们可能意味着什么的方法。您编写的 MIB 将告诉管理器实际警报值的含义。
RFC 警报报告控制 MIB 定义了用于控制警报条件报告的对象。