民间,
我需要从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命令 - 对协议也知之甚少。我用谷歌搜索了命令。我的问题......
v2c命令有什么问题吗?
我的侦听器命令有什么问题吗?如果我应该做别的话,请告诉我。我也可以设置一个Linux监听器。
任何建议都是最受欢迎的。我想保持简单 - 通过snmp向主机,v1和v2c发送自定义消息,并设置一个监听器来验证我的命令是否正常工作。
非常感谢
泰斯
答案 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文件定义发送陷阱: