User Tools

Site Tools


network_stuff:juniper:telemetry

This is an old revision of the document!


MDT (Model Driven Telemetry): Replaces SNMP

What is gRPC (streaming telemetry)

  • Google Remote Procedure call (remote call on the device) . Is an open source alternative/improvement to classic restAPI. It adds consistency, also uses binary messages instead of json text so it's more efficient traffic-wise. Uses standard language: protobuf which is supported by python among others.
    • protobuf 'file' define what RPCs are available. Is provided by the vendor and abstracts the way to interact to the system.
      • We convert or compile 'protobuf' to python libraries. 'Protoc' creates a library that you can start using straight away in your code
  • The messages are binary but we can do marshaling and see the key-value pairs with 'kgbb'
  • It uses http2 by default (port 50051). With a single channel it can send a bunch of requests. So only one http handshake is needed.
    • All is defined in the client (jti-client in our case) (define how many channels, etc)

gNMI

  • Provides 1) Network Management and 2) Streaming telemetry
  • Uses HTTP/TCP so reliable compared to snmp
  • And also extremely light. It uses RPCs more efficiently than netconf (like it were issued in the target machine itself) See comparison
  • gRPC Network Management Interface. Is a way to interact to grpc with Standard, reduced, RPCs.
  • gnmi defines Four RPCs:
    • capabilities (“show me what you can offer”)
    • get (like a netconf get)
    • set (like a netconf set, also to update and delete)
    • subscribe ( hook to a stream )
  • Junos in particular uses the JTI client which includes gNMI : Junos Telemetry Interface Client (jtimon) is an application that can be used to collect telemetry streams from a Juniper device streaming in native format over UDP, or in OpenConfig format over gRPC.

Topology ( gNMI + Telegraf plugin)


MESSAGE QUEUING TECHNOLOGIES

  • The client subscribes to the server/broker but the client can receive or send data
  • Topics are labels that you publish messages to and subscribe to. They are arranged as a hierarchy


Kafka
Kafka focuses on the storage and reading of data, aiming at streaming data processing scenarios with high real-time performance


MQTT - MQ Telemetry Transport
is a lightweight, publish-subscribe, machine to machine network protocol for Message queue/Message queuing service. It is designed for connections with remote locations that have devices with resource constraints.

sudo apt install mosquitto mosquitto-clients    # creates the broker. This can be a simple raspberry pi
mosquitto_sub -h localhost -t test    # Test subscription to a test topic (still non-existing)
mosquitto_pub -h localhost -t test -m "hello world"    # publishes a test message in the 'test' topic
!
mosquitto_sub -h <host> -t /merakimv/<serial of device>/<topic>    # subscribes

Then PMACCT (pmaccount) to correlate information and extract trends: pmacct is a small set of multi-purpose passive network monitoring tools [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry].


References:

network_stuff/juniper/telemetry.1751998945.txt.gz · Last modified: by jotasandoku