DevProjects/Telemetry Arista EOS

From OpenNMS
Jump to: navigation, search

This is a work in progress started at the iNOG 10 and RIPE NCC Hackathon in Dublin. Arista is providing streaming telemetry data which uses the open-config module. They have a prototype as starting point written in go here: https://github.com/aristanetworks/goarista/tree/master/openconfig.

Test network environment

The links in 10.10.0.0/30 is a point to point link and the 192.168.1/24 is the management network.

Arista Test Network.png

Configuration for Arista vEOS1
https://gist.github.com/indigo423/d1e37beec4d0adb1cd20d7ca1abee1f3
Configuration for Arista vEOS2
https://gist.github.com/indigo423/a13fd17d881cbfc2fca9037fee5ac78f

Project status

With help from some guys from Arista we got a very simple test environment setup and compiled the go example and were able to subscribe successfully to the Golang example from Arista. While investigating to migrate to Java we ran into the problem to get OpenConfig which uses the gNMI specification running. We got stuck to get gRPC running in the OpenNMS codebase with OSGi which is used by gNMI. I've shared the links to useful information I ran into in the sections below.

Requirements
gRPC support
OpenConfig gNMI support
Running gRPC in Java OSGi
https://github.com/grpc/grpc-java/issues/2727
https://github.com/grpc/grpc-java/pull/3479
Vendor support
Juniper
Arista
Cisco

Alternative Options - Stream to Kafka

There is also a possibility to stream telemetry data from the switch to Kafka. A proof of concept to persist the data in ElasticSearch can be found here: https://hub.docker.com/r/aristanetworks/ockafka/

Project contact
ronny@opennms.org, chat indigo423