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

伙计们,

我需要从Linux命令行使用此命令(snmptrap)将自定义消息发送给陷阱侦听器。 我需要根据用户设置在v1和v2c中发送相同的消息。

这是我发现的。

对于v1:

snmptrap -v 1 -c Tas hostname 1.3.6.1.4.1.2.3 "" 6 3 1234 ss "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 ss "This is a Test" 

该命令不会给我任何错误。 但是对于听众,我看到了这一点。

 Display of SNMPv2 trap with SNMPV2C security community: Tas 

消息“这是一个testing”没有显示。

我不熟悉snmptrap命令 – 对协议也知之甚less。 我用googlesearch了这个命令。 我的问题…

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

  2. 我的听众命令有什么问题吗? 让我知道如果我应该别的东西。 我也可以设置一个Linux监听器。

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

非常感谢

泰斯

该命令应该是这样的:

 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陷阱模拟器 。 该工具完全按照SNMP标准发送陷阱,并基于MIB文件定义: 在这里输入图像描述