opennms snmpv3 陷阱和通知
opennms snmpv3 traps and informs
我已经通过 docker 映像部署了 OpenNMS,并使 SNMPv3 轮询正常工作,但无法使 SNMPv3 陷阱或通知正常工作。
trapd-configuration.xml:
<?xml version="1.0"?>
<trapd-configuration snmp-trap-port="162" new-suspect-on-trap="true">
<snmpv3-user
security-name="trapuser"
security-level="3"
auth-passphrase="authsecret"
auth-protocol="SHA"
privacy-passphrase="privsecret"
privacy-protocol="AES"/>
</trapd-configuration>
如果我 运行 来自另一台主机的以下内容,OpenNMS 通过 SNMPv3 对其进行轮询:
snmptrap -Dusm -v 3 -l authPriv -u trapuser -a SHA -A authsecret -x AES -X privsecret <opennms-host-ip> 42 coldStart.0
OpenNMS 不生成任何事件。在 trapd.log 中,我可以看到以下警告:
2018-04-26 09:26:33,364 WARN [DefaultUDPTransportMapping_0.0.0.0/162] o.s.MessageDispatcherImpl: statusInfo=1.3.6.1.6.3.15.1.1.3.0 = 0, status=1404
据我所知,这与未知用户名有关。
Likewise 通知也不起作用,我在 trapd.log 文件中收到相同的警告,在发件人端收到类似的警告。如果我 运行 tcpdump 我可以看到它从 opennms 检索远程 engineID。
snmpinform -Dusm -v 3 -l authPriv -u trapuser -a SHA -A authsecret -x AES -X privsecret <opennms-host-ip> 42 coldStart.0
registered debug token usm, 1
usm: potentially bootstrapping the USM table from session data
usm: getting user
usm: USM processing has begun (offset 39)
usm: getting user
usm: Failed to find engine data.
usm: USM processing completed.
usm: USM processing begun...
usm: USM processing completed.
usm: potentially bootstrapping the USM table from session data
usm: no flag defined... continuing
usm: user exists? x=(nil)
usm: Building user trapuser...
usm: USM processing has begun (offset 80)
usm: getting user trapuser
usm: match on user trapuser
usm: Encryption successful.
usm: USM processing completed.
usm: USM processing begun...
usm: match on user trapuser
usm: USM processing completed.
snmpinform: Unknown user name
对我做错了什么有什么想法吗?
能否请您尝试以下操作:
打开$OPENNMS_HOME/etc/service-configuration.xml
并在AsteriskGatway
服务之后启动Trapd守护进程。为此,请找到以下 XML 块:
<service enabled="true">
<name>OpenNMS:Name=Trapd</name>
<class-name>org.opennms.netmgt.trapd.jmx.Trapd</class-name>
<invoke method="init" pass="0" at="start"/>
<invoke method="start" pass="1" at="start"/>
<invoke method="status" pass="0" at="status"/>
<invoke method="stop" pass="0" at="stop"/>
</service>
默认情况下,Trapd 在 Correlator
之后启动。在 AsteriskGateway
服务之后剪切并粘贴整个服务定义块:
<service enabled="false">
<name>OpenNMS:Name=AsteriskGateway</name>
<class-name>org.opennms.netmgt.asterisk.agi.jmx.AsteriskGateway</class-name>
<invoke method="init" pass="0" at="start"/>
<invoke method="start" pass="1" at="start"/>
<invoke method="status" pass="0" at="status"/>
<invoke method="stop" pass="0" at="stop"/>
</service>
您现在可以尝试处理 SNMPv3 陷阱吗?
我已经通过 docker 映像部署了 OpenNMS,并使 SNMPv3 轮询正常工作,但无法使 SNMPv3 陷阱或通知正常工作。
trapd-configuration.xml:
<?xml version="1.0"?>
<trapd-configuration snmp-trap-port="162" new-suspect-on-trap="true">
<snmpv3-user
security-name="trapuser"
security-level="3"
auth-passphrase="authsecret"
auth-protocol="SHA"
privacy-passphrase="privsecret"
privacy-protocol="AES"/>
</trapd-configuration>
如果我 运行 来自另一台主机的以下内容,OpenNMS 通过 SNMPv3 对其进行轮询:
snmptrap -Dusm -v 3 -l authPriv -u trapuser -a SHA -A authsecret -x AES -X privsecret <opennms-host-ip> 42 coldStart.0
OpenNMS 不生成任何事件。在 trapd.log 中,我可以看到以下警告:
2018-04-26 09:26:33,364 WARN [DefaultUDPTransportMapping_0.0.0.0/162] o.s.MessageDispatcherImpl: statusInfo=1.3.6.1.6.3.15.1.1.3.0 = 0, status=1404
据我所知,这与未知用户名有关。
Likewise 通知也不起作用,我在 trapd.log 文件中收到相同的警告,在发件人端收到类似的警告。如果我 运行 tcpdump 我可以看到它从 opennms 检索远程 engineID。
snmpinform -Dusm -v 3 -l authPriv -u trapuser -a SHA -A authsecret -x AES -X privsecret <opennms-host-ip> 42 coldStart.0
registered debug token usm, 1
usm: potentially bootstrapping the USM table from session data
usm: getting user
usm: USM processing has begun (offset 39)
usm: getting user
usm: Failed to find engine data.
usm: USM processing completed.
usm: USM processing begun...
usm: USM processing completed.
usm: potentially bootstrapping the USM table from session data
usm: no flag defined... continuing
usm: user exists? x=(nil)
usm: Building user trapuser...
usm: USM processing has begun (offset 80)
usm: getting user trapuser
usm: match on user trapuser
usm: Encryption successful.
usm: USM processing completed.
usm: USM processing begun...
usm: match on user trapuser
usm: USM processing completed.
snmpinform: Unknown user name
对我做错了什么有什么想法吗?
能否请您尝试以下操作:
打开$OPENNMS_HOME/etc/service-configuration.xml
并在AsteriskGatway
服务之后启动Trapd守护进程。为此,请找到以下 XML 块:
<service enabled="true">
<name>OpenNMS:Name=Trapd</name>
<class-name>org.opennms.netmgt.trapd.jmx.Trapd</class-name>
<invoke method="init" pass="0" at="start"/>
<invoke method="start" pass="1" at="start"/>
<invoke method="status" pass="0" at="status"/>
<invoke method="stop" pass="0" at="stop"/>
</service>
默认情况下,Trapd 在 Correlator
之后启动。在 AsteriskGateway
服务之后剪切并粘贴整个服务定义块:
<service enabled="false">
<name>OpenNMS:Name=AsteriskGateway</name>
<class-name>org.opennms.netmgt.asterisk.agi.jmx.AsteriskGateway</class-name>
<invoke method="init" pass="0" at="start"/>
<invoke method="start" pass="1" at="start"/>
<invoke method="status" pass="0" at="status"/>
<invoke method="stop" pass="0" at="stop"/>
</service>
您现在可以尝试处理 SNMPv3 陷阱吗?