上下文: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相关的问题的值列表,但没有通用的“在此处插入您的应用程序”。
问题
提前致谢
答案 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发出陷阱,但这会违反分析收到价值的人的期望。