我在Ubuntu服务器上设置OpenNMS,以便从外部EMS收听SNMP陷阱流并遇到问题。我可以成功接收从安装OpenNMS的服务器发送的陷阱,但是OpenNMS没有看到任何来自外部的陷阱。
起初它似乎是防火墙问题,但我可以在OpenNMS服务器上通过Wireshark看到传入的陷阱,因此数据包不会被丢弃。我已经为trapd启用了调试级日志记录,当我看到来自EMS的新陷阱出现在Wireshark中时,日志没有显示任何活动。我手动发送的陷阱已正确登录到trapd日志中并显示在OpenNMS仪表板中。
要么我缺少某些配置,要么在这里工作时有更深层次的防火墙/操作系统问题。就这种情况而言,这里是我目前正在使用的trapd-configuration.xml和snmp-config.xml。
<trapd-configuration xmlns="http://xmlns.opennms.org/xsd/config/trapd" snmp-trap-address="*" snmp-trap-port="162" new-suspect-on-trap="true" include-raw-message="false" threads="0" queue-size="10000" batch-size="1000" batch-interval="500" java.net.preferIPv4Stack="true">
<snmpv3-user security-name="ems-username" security-level="1" engine-id="800000a10352540001e90a"/>
</trapd-configuration>
对trapd配置的一些评论 - EMS使用SNMPv3 noAuth模式,因此security-level = 1; java.net.preferIPv4Stack =“true”被添加,因为我发现它是另一个线程中的潜在解决方案,但是这个参数的存在/不存在似乎不会影响这种情况。
<snmp-config xmlns="http://xmlns.opennms.org/xsd/config/snmp" security-name="ems-username" version="v3" read-community="public" timeout="1800" retry="1" port="162">
<definition write-community="private" port="161">
<specific>[EMS ip]</specific>
</definition>
</snmp-config>
非常感谢有关如何解决此问题的任何线索。