Arista vEOS-lab et gNMI/gRPC (SubscribeRequest)

Cet article fait suite au premier sur gNMI/gRPC. La partie la plus riche de gNMI/gRCP est sa capacité à provisionner de la télémétrie sur les équipements. Pour cette démonstration, j’ai choisi de passer sur le simulateur EVE-NG avec des commutateurs virtuels Arista vEOS-lab en version 4.24.2.1F. Ce simulateur permet une représentation plus vivante pour une architecture.

vEOS-lab gNMI gRPC
Architecture vEOS-lab dans EVE-NG

L’objectif va consister à provisionner la télémétrie sur les interfaces Ethernet1 de chaque équipement. L’outil gnmic écrit en Golang est parfaitement adapté pour ce genre de manipulation. Il permet d’effectuer la démonstration avec beaucoup de facilité. Sa capacité multi-cibles et le mode « sample » vont être mis en oeuvre dans ce premier exercice.

gnmic -a 192.168.1.210:6030 -a 192.168.1.215:6030 -u admin -p arista --insecure subscribe \
        --path "/interfaces/interface[name=Ethernet1]/subinterfaces/subinterface/state/counters/in-octets" \
        --stream-mode sample --sample-interval 5s \
        --qos 0
gnmi grpc subscribe sample
gNMI/gRPC Subscribe sample

L’outil gnmic va recevoir la valeur du compteur « in-octets » toutes les 5 secondes de la part de chacun des équipements auxquels on s’est abonné.

Pour rendre la démonstration plus visuelle, je propose de ne s’intéresser qu’à l’interface Ethernet1 du commutateur 192.168.1.215 en ne demandant la valeur « in-octets » que lorsqu’elle change et en générant volontairement du trafic sur ce lien depuis l’autre commutateur.

gnmic -a 192.168.1.215:6030 -u admin -p arista --insecure subscribe \
        --path "/interfaces/interface[name=Ethernet1]/subinterfaces/subinterface/state/counters/in-octets" \
        --stream-mode on_change \
        --qos 0
gnmi grpc subscribe on_change
gNMI/gRPC Subscribe on_change

Vous pouvez vérifier, avec la valeur « time », qu’il s’est écoulé un certain temps entre les deux valeurs « in-octets » : le temps d’aller, sans se presser, sur la session du premier commutateur et de lancer le ping pour générer une incrémentation du compteur. Les 5 ping envoyés vont générer 5 changements de valeur de compteur et donc la réception de 5 messages par gnmic.

La question qui pourrait venir à l’esprit est : que faire des valeurs reçues à l’aide de l’outil gnmic ? Actuellement, gnmic est capable d’envoyer ces valeurs vers les destinations suivantes :

  • Un fichier local
  • Un système de messagerie NATS
  • Un bus de messagerie NATS en streaming (STAN)
  • Un bus de messagerie Kafka

Peut être que ce n’est pas ce que vous pratiquez tous les jours en NetDevOps, mais j’ai entendu dire qu’allaient arriver Telegraf et Prometheus… Voilà des destinations qui nous parlent plus et qui nous laissent déjà imaginer les tableaux de bord Grafana.