c#-.NET中的自定义SNMP陷阱实现

我需要使用SNMP(在.NET中)创建监视机制.我认为我们将使用nsoftware component来处理大部分工作.

看来我们必须使用“陷阱”将代理程序与服务器进行通信.我们将有许多不同的陷阱,并详细说明了每个陷阱.实现自定义陷阱的最佳方法是什么?也就是说,不仅发送陷阱,还将描述陷阱的信息发送给我们的“ snmp管理器”的最佳方法是什么?我认为这是通过“变量绑定”完成的.要使用“变量绑定”,是否需要创建自己的“企业编号”并使用“企业特定”陷阱?我们应该实现自己的自定义MIB,还是仅通过陷阱(通过变量绑定)发送所需的数据?

解决方法:

除非您要通知5个预定义的陷阱之一(例如冷启动,热启动):是的,您将必须定义一个EnterpriseSpecific陷阱,并且您将需要分配对象标识符(以及许多标识符).

实际上,参数是在变量绑定中传输的.这些是定义为

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
}

您需要以某种方式告诉您的库名称和值是什么.该库应提供API以支持可作为值使用的各种数据类型.请注意,变量“名称”还是对象标识符.

上一篇:在Linux上创建自定义SNMP OID


下一篇:在哪里可以找到Linux中SNMPv2的OID描述?