什么snmp陷阱OID用于通用应用程序消息传递?

时间:2015-02-04 16:31:26

标签: java java-ee jmx snmp

上下文:Java应用程序发送SNMP

我是一名对SNMP知之甚少的开发人员。我们用一个'windows服务包装器'包装我们的java应用程序,它有能力(除其他外)在各种(用户可配置的)事件上发送snmp消息。

示例脚本有三个参数。两个是明确定义的(IP地址网络监控系统和“消息文本”)。

另一个,“陷阱的OID”似乎不太清楚。

默认情况下,脚本会收到“id”参数,然后将其附加到此值: “1.3.6.1.2.1.1.1。”,即如果您传入'id = 999',它将播放一个带有oid的snmp陷阱:“1.3.6.1.2.1.1.1.999”

以下是“1.3.6.1.2.1.1.1”含义的参考。 :它对相应信息的主体给出了非常严格的含义。

http://www.alvestrand.no/objectid/1.3.6.1.2.1.1.1.html

  

OID值:1.3.6.1.2.1.1.1

     

OID说明:

     

sysDescr OBJECT-TYPE                 语法DisplayString(SIZE(0..255))                 ACCESS只读                 状态强制                 描述                         “实体的文字描述。这个价值                         应包括全名和版本                         识别系统的硬件类型,                         软件操作系统和网络                         软件。必须包含此内容                         可打印的ASCII字符。“                 :: = {system 1}

附加背景

  • 应用程序服务器可以使用jmx公开服务器信息,并且存在将jmx桥接到snmp的产品(即暴露使用的内存量,线程数等)。然而,这个用例有点不同:java包装器可以根据应用程序本身的“状态更改”发送snmp消息。开发人员和管理员会发现这种“状态变化”信息很有用。

  • 我们正在运行一些应用服务器:一些在jboss-tomcat中,另一些在普通tomcat中

  • 我们将'cacti用于'snmp接收'方面。我个人不知道它是否可以处理任何“任意应用程序消息”。我假设它/我们会将消息记录在mysql数据库(或类似的)中,以便以后查询/报告。

资源

我环顾四周,找到了这样的资源(https://github.com/waynearmorize/drivesploit/tree/master/data/snmp/mibs),列出了各种“预定义”的OID。我看到了与rdbms相关的问题的值列表,但没有通用的“在此处插入您的应用程序”。

问题

  • 开发人员和系统管理员是否应该提出我们自己的'应用程序ID后缀'列表:即“1”是“应用程序启动”“2”是应用程序中止“3”是“内存不足”等,并将此值附加到'1.3.6.1.2.1.1.1。'
  • 有什么规则?两个“硬规则”(即你将打破它)和“软”,“保持这些以保持一致性”?
  • 那么'弥补'OID的规则是什么?
  • SNMP是适合这项工作的工具吗?对新手来说听起来不错,但我可能会遗漏一些东西。
  • 针对此特定领域的任何提示(即从应用程序发送snmp陷阱)?

提前致谢

1 个答案:

答案 0 :(得分:0)

  
      
  • 开发人员和系统管理员是否应该提出我们自己的'应用程序ID后缀'列表:即“1”是“应用程序启动”“2”   是应用程序中止“3”是“内存不足”等,并附加此值   到'1.3.6.1.2.1.1.1。'
  •   

每个OID都具有全球唯一的目的和意义。例如,OID 1.3.6.1.2.1.1.2 SNMPv2-MIB中定义。数字分解为 iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysObjectID(2)< / em>的

您可以使用Cisco SNMP Object Navigator查找所选(通过Cisco)OID的含义。请注意,不需要发布所有MIB,因此没有中央集合可以查找任意OID。您可以将MIB视为用于定义OID及其类型和关系的文档。 MIB具有正式的机器可解析结构。

组织经常请求Private Enterprise Number,然后在OID开始使用 1.3.6.1.4.1.PEN 定义他们的东西。如果找不到符合用例的已发布标准,则可能需要执行此操作。


从纯技术角度来看,您可以根据任何OID发出陷阱,但这会违反分析收到价值的人的期望。