从Linux命令lne发送SNMP2陷阱消息

时间:2016-05-17 15:25:21

标签: linux snmp

民间,

我需要从Linux命令行使用此命令(snmptrap)将我的自定义消息发送到陷阱侦听器。我需要在v1和v2c中发送相同的消息,具体取决于用户设置。

这是我找到的。

对于v1:

snmptrap -v 1 -c Tas hostname 1.3.6.1.4.1.2.3 "" 6 3 1234 s s "This is a test"

以上命令有效,我在监听器中看到以下消息。

Display of SNMPv1 trap:
community:       Tas
enterprise oid:  1.3.6.1.4.1.2.3
        .....    ibmAgents
agentAddress:    hostname
generic-trap:    enterpriseSpecific ('00000006'h)
specific-trap:   3 ('00000003'h)
time-stamp:      1234 - 12.34 seconds
varBind oid:     OBJECT_IDENTIFIER 1.3.6.1.6
        name:    snmpV2
        value:   OCTET_STRING This is a test <- Here is my message. 

我的监听器基本上是一个AIX系统,运行以下命令。

clsnmp -c public TRAP

对于v2c:我发出此命令。

snmptrap -v 2c -c "Tas" hostname '1234' 1.3.6.1.4.1.2.3 s s "This is a Test"

该命令不会给我任何错误。但在听众身上,我看到了这一点。

Display of SNMPv2 trap with SNMPV2C security
community:       Tas

未显示消息“This is a Test”。

我不熟悉snmptrap命令 - 对协议也知之甚少。我用谷歌搜索了命令。我的问题......

  1. v2c命令有什么问题吗?

  2. 我的侦听器命令有什么问题吗?如果我应该做别的话,请告诉我。我也可以设置一个Linux监听器。

  3. 任何建议都是最受欢迎的。我想保持简单 - 通过snmp向主机,v1和v2c发送自定义消息,并设置一个监听器来验证我的命令是否正常工作。

    非常感谢

    泰斯

1 个答案:

答案 0 :(得分:2)

该命令应如下所示:

snmptrap -v 2c -c "Tas" 127.0.0.1 0 1.3.6.1.4.1.2.3 1.3.6.1.6.1.4.1.2.3.1.1.1.1.1 s "This is a Test"

请注意,作为SNMP陷阱PDU一部分的varbind(在本例中为OCTET STRING)也应分配OID。我刚刚为此varbind使用了随机OID:1.3.6.1.6.1.4.1.2.3.1.1.1.1.1

另请注意,您应根据MIB文件中的陷阱定义使用适当的OID。

我建议使用企业级SNMP工具发送SNMP陷阱,例如 NetDecision Trap Simulator 。该工具完全按照SNMP标准并基于MIB文件定义发送陷阱: enter image description here