Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-10741

Error setting up IPFIX / Netflow 9 listeners

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 22.0.0
    • Component/s: None
    • Security Level: Default (Default Security Scheme)
    • Labels:
      None
    • Sprint:
      Horizon - Feb 21st 2018, Horizon - March 14th 2018, Horizon - March 21st 2018

      Description

      I ran into two different problems when attempting to setup these listeners:

      1) Uncommenting the default IPFIX TCP listener definition in etc/telemetryd-configuration.xml leads to the following exception on startup:

      An error occurred while attempting to start the "OpenNMS:Name=Telemetryd" service (class org.opennms.netmgt.daemon.SimpleSpringContextJmxServiceDaemon).  Shutting down and exiting.
      javax.management.RuntimeMBeanException: org.springframework.beans.NotWritablePropertyException: Invalid property 'port' of bean class [org.opennms.netmgt.telemetry.listeners.flow.ipfix.TcpListener]: Bean property 'port' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:839)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:852)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:821)
              at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
              at org.opennms.netmgt.vmmgr.Invoker.invoke(Invoker.java:277)
              at org.opennms.netmgt.vmmgr.Invoker.invokeMethods(Invoker.java:206)
              at org.opennms.netmgt.vmmgr.Starter.start(Starter.java:154)
              at org.opennms.netmgt.vmmgr.Starter.startDaemon(Starter.java:94)
              at org.opennms.netmgt.vmmgr.Controller.start(Controller.java:173)
              at org.opennms.netmgt.vmmgr.Controller.main(Controller.java:150)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.opennms.bootstrap.Bootstrap$4.run(Bootstrap.java:525)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'port' of bean class [org.opennms.netmgt.telemetry.listeners.flow.ipfix.TcpListener]: Bean property 'port' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
              at org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:230)
              at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:423)
              at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:280)
              at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:95)
              at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
              at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:70)
              at org.opennms.netmgt.telemetry.utils.ListenerFactory.buildListener(ListenerFactory.java:62)
              at org.opennms.netmgt.telemetry.daemon.Telemetryd.start(Telemetryd.java:120)
              at org.opennms.netmgt.daemon.AbstractSpringContextJmxServiceDaemon$2.run(AbstractSpringContextJmxServiceDaemon.java:128)
              at org.opennms.core.logging.Logging.withPrefix(Logging.java:71)
              at org.opennms.netmgt.daemon.AbstractSpringContextJmxServiceDaemon.start(AbstractSpringContextJmxServiceDaemon.java:118)
              at sun.reflect.GeneratedMethodAccessor438.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
              at sun.reflect.GeneratedMethodAccessor262.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
              at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
              at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
              at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
              at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
              at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
              ... 13 more
      

      2) Enabling the NF9 UDP listener on Minion with the following configuration fails:

      cat etc/org.opennms.features.telemetry.listeners-udp-9995.cfg 
      name = Netflow-9
      class-name = org.opennms.netmgt.telemetry.listeners.flow.netflow9.UdpListener
      listener.port = 9995
      
      2018-02-22T05:12:22,770 | ERROR | CM Configuration Updater (ManagedServiceFactory Update: factoryPid=[org.opennms.features.telemetry.listeners]) | ListenerManager                  | 276 - org.opennms.features.telemetry.minion - 22.0.0.SNAPSHOT | Failed to build listener.
      java.lang.RuntimeException: Failed to instantiate listener with class name 'org.opennms.netmgt.telemetry.listeners.flow.netflow9.UdpListener'.
              at org.opennms.netmgt.telemetry.utils.ListenerFactory.buildListener(ListenerFactory.java:50) [271:org.opennms.features.telemetry.common:22.0.0.SNAPSHOT]
              at org.opennms.netmgt.telemetry.minion.ListenerManager.updated(ListenerManager.java:91) [276:org.opennms.features.telemetry.minion:22.0.0.SNAPSHOT]
              at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.updated(ManagedServiceFactoryTracker.java:159) [7:org.apache.felix.configadmin:1.8.14]
              at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:93) [7:org.apache.felix.configadmin:1.8.14]
              at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1624) [7:org.apache.felix.configadmin:1.8.14]
              at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1566) [7:org.apache.felix.configadmin:1.8.14]
              at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) [7:org.apache.felix.configadmin:1.8.14]
              at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) [7:org.apache.felix.configadmin:1.8.14]
              at java.lang.Thread.run(Thread.java:745) [?:?]
      Caused by: java.lang.ClassNotFoundException: org.opennms.netmgt.telemetry.listeners.flow.netflow9.UdpListener not found by org.opennms.features.telemetry.common [271]
              at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1550) ~[?:?]
              at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:79) ~[?:?]
              at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1958) ~[?:?]
              at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
              at java.lang.Class.forName0(Native Method) ~[?:?]
              at java.lang.Class.forName(Class.java:264) ~[?:?]
              at org.opennms.netmgt.telemetry.utils.ListenerFactory.buildListener(ListenerFactory.java:46) ~[?:?]
              ... 8 more
      

      I suspect the IPFIX TCP and UDP listeners will fail the same way too.

        Attachments

          Activity

            People

            Assignee:
            fooker Dustin Frisch
            Reporter:
            j-white Jesse White
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: