我需要使用 SNMP(在 .NET 中)创建一个监控机制。我想我们会使用 nsoftware component处理大部分工作。
看来我们必须使用“陷阱”从代理到服务器进行通信。我们将有许多不同的陷阱和详细说明每个陷阱的各种信息。实现自定义陷阱的最佳方式是什么?也就是说,什么是既能发送陷阱,又能将描述陷阱的信息发送给我们的“snmp 管理器”的最佳方法?我认为这是通过“变量绑定(bind)”完成的。要使用“变量绑定(bind)”,我们是否需要创建自己的“企业编号”并使用“企业特定”陷阱?我们应该实现我们自己的自定义 MIB,还是我们可以通过陷阱发送我们需要的数据(通过变量绑定(bind))?
最佳答案
除非您想通知 5 个预定义陷阱之一(例如冷启动、热启动):是的,您将必须定义一个企业特定的陷阱,并且您将需要分配对象标识符(以及大量对象标识符)。
参数确实是在变量绑定(bind)中传递的;这些结构定义为
VarBind ::=
SEQUENCE {
name ObjectName,
value ObjectSyntax
}
VarBindList ::= SEQUENCE OF VarBind
ObjectName ::= OBJECT IDENTIFIER
ObjectSyntax ::= CHOICE {
simple SimpleSyntax,
application-wide ApplicationSyntax
}
SimpleSyntax ::= CHOICE {
number INTEGER,
string OCTET STRING,
object OBJECT IDENTIFIER,
empty NULL
}
ApplicationSyntax ::= CHOICE {
address NetworkAddress,
counter Counter,
gauge Gauge,
ticks TimeTicks,
arbitrary Opaque
}
您需要以某种方式告诉您的图书馆名称和值(value)是什么;库应该提供 API 来支持作为值可用的各种数据类型。请注意,变量“名称”又是对象标识符。
关于c# - .NET 中的自定义 SNMP 陷阱实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511965/