Cisco NX-OS Telemetry
The Cisco NX-OS Telemetry lets you push operational statistics asynchronously to Horizon. Horizon sends a request to stream periodic updates once to the device. Data is generated as Google protocol buffers (GPB) structured messages over UDP. Detailed information about NX-OS can be found in NXOS documentation.
To enable support for NX-OS Telemetry, edit $OPENNMS_HOME/etc/telemetryd-configuration.xml
and set enabled=true
for the NXOS protocol.
<listener name="NXOS-UDP-50001" class-name="org.opennms.netmgt.telemetry.listeners.simple.Udp" enabled="false">
<parameter key="port" value="50001"/>
<parser name="NXOS-GPB" class-name="org.opennms.netmgt.telemetry.protocols.common.parser.ForwardParser" queue="NXOS" />
</listener>
<queue name="NXOS">
<adapter name="NXOS-GPB" class-name="org.opennms.netmgt.telemetry.protocols.nxos.adapter.NxosGpbAdapter" enabled="false">
<parameter key="script" value="$OPENNMS_HOME/etc/telemetryd-adapters/cisco-nxos-telemetry-interface.groovy"/>
<package name="NXOS-Default">
<rrd step="300">
<rra>RRA:AVERAGE:0.5:1:2016</rra>
<rra>RRA:AVERAGE:0.5:12:1488</rra>
<rra>RRA:AVERAGE:0.5:288:366</rra>
<rra>RRA:MAX:0.5:288:366</rra>
<rra>RRA:MIN:0.5:288:366</rra>
</rrd>
</package>
</adapter>
</queue>
Apply the changes without restarting by sending a reloadDaemonConfig
event in the CLI or the Web UI:
$OPENNMS_HOME/bin/send-event.pl -p 'daemonName Telemetryd' uei.opennms.org/internal/reloadDaemonConfig
By default, this will open a UDP socket bound to 0.0.0.0:50001
to which NXOS messages can be forwarded.
Configure NX-OS listener on a Minion
To enable and configure a UDP listener for NX-OS on Minion, connect to the Karaf Console and set the following properties:
$ ssh -p 8201 admin@localhost
...
admin@minion()> config:edit --alias udp-50001-nxos --factory org.opennms.features.telemetry.listeners
admin@minion()> config:property-set name NXOS
admin@minion()> config:property-set class-name org.opennms.netmgt.telemetry.listeners.UdpListener
admin@minion()> config:property-set parameters.port 50001
admin@minion()> config:property-set parsers.0.name NXOS
admin@minion()> config:property-set parsers.0.class-name org.opennms.netmgt.telemetry.protocols.common.parser.ForwardParser
admin@minion()> config:update
The protocol must also be enabled on Horizon to process the messages. |
Cisco NX-OS adapter
The NX-OS adapter handles Cisco NX-OS telemetry payloads. Messages are decoded using the published protobuf (proto3) specifications and forwarded to a JSR-223 compatible script (for example, Beanshell or Groovy) for further processing. Using the script extension you can extract the desired metrics from the NX-OS messages and persist the results as time series data.
Configuration and use
Parameter | Description | Default |
---|---|---|
script |
Full path to the script used to handle the NXOS messages. |
none |
Scripting
The script will be invoked for every NX-OS message that is received and successfully decoded.
The following globals will be passed to the script:
Parameter | Description | Type |
---|---|---|
agent |
The agent (node) against which the metrics will be associated. |
org.opennms.netmgt.collection.api.CollectionAgent |
builder |
Builder in which the resources and metrics should be added. |
org.opennms.netmgt.collection.support.builder.CollectionSetBuilder |
msg |
Decoded NX-OS message from which the metrics should be extracted. |
org.opennms.netmgt.telemetry.adapters.nxos.proto.TelemetryBis |