我在 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>
将不胜感激有关如何解决此问题的任何线索。