快速记录一个SNMP trap 实验结果

今天在园区走了走,而后忽然想明白了几天来思考的snmp trap的逻辑。结合若干工具node

  1. node包node-net-snmp
  2. mib browser
  3. 一个我写的mib文件,其中有一个oid,和一个trap oid,指向对象为第一个oid

把这个过程run成功。快速记录下。并发

先准备好接收snmp trap的应用

下载node-net-snmp 的源代码库,而后:工具

cd example    
    node snmp-receiver.js -v
复制代码

其中-v表示输出要罗嗦一点,这样咱们才看获得具体的trap内容。spa

经过mib browser记载mib文件,并发送trap到本机的trap接收器

output

2020-4-9 17:46:09: TrapV2 received:
    {
      "pdu": {
        "type": 167,
        "id": 402812005,
        "varbinds": [
          {
            "oid": "1.3.6.1.2.1.1.3.0",
            "type": 67,
            "value": 0
          },
          {
            "oid": "1.3.6.1.6.3.1.1.4.1.0",
            "type": 6,
            "value": "1.3.6.1.4.1.66666.3"
          },
          {
            "oid": "1.3.6.1.4.1.66666.1.1.0",
            "type": 4,
            "value": {
              "type": "Buffer",
              "data": [
                97,
                98,
                99,
                100
              ]
            }
          }
        ],
        "scoped": false
      },
      "rinfo": {
        "address": "127.0.0.1",
        "family": "IPv4",
        "port": 63984,
        "size": 90
      }
    }
复制代码

解释

varbinds共三个,其中code

  1. oid "1.3.6.1.2.1.1.3."表示sysuptime,每一个trap都会发的varbind
  2. oid “1.3.6.1.6.3.1.1.4.1”表示trap自己的oid指向。mib文件内定义的dataAlarmTrap.objects内的名称指向的就是此名称都用的oid。
  3. oid "1.3.6.1.4.1.66666.1.1"就是trap的oid自己的新的值。value中每一个"data": [97,98,99,100 ]是数字的asccii表达,能够toString()获取它的字符串

附录:MIB文件内容

tbit DEFINITIONS ::= BEGIN
    IMPORTS
        enterprises, IpAddress, Integer32, Unsigned32, Counter64, 
        OBJECT-TYPE,NOTIFICATION-TYPE
            FROM SNMPv2-SMI;
    tbit OBJECT IDENTIFIER ::= { enterprises 66666 }
    RecoDevice OBJECT IDENTIFIER ::= { tbit 1 }
    RecoDevice1 OBJECT IDENTIFIER ::= { tbit 2 }
    Name OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Description."
        ::= { RecoDevice 1 }
	dataAlarmTrap NOTIFICATION-TYPE
			OBJECTS { Name }
			STATUS current
			DESCRIPTION 
				"Description."
			::= { tbit 3 }
END
复制代码
相关文章
相关标签/搜索