Files
arista-evpn-vxlan-clab/monitoring
Damien Arnodo 6c08b9ecf7 fix(gnmic): remove skip-verify (mutually exclusive with insecure)
The flags --insecure and --skip-verify are mutually exclusive in gNMIc.
Since we're using insecure connections (no TLS), skip-verify is not needed.
2025-12-16 14:21:43 +00:00
..
2025-12-16 12:14:25 +00:00
2025-12-16 12:13:54 +00:00

Monitoring Stack Configuration

gnmic -> Prometheus -> Grafana Network Weathermap

This directory contains all configurations for monitoring

the EVPN-VXLAN fabric using gNMI streaming telemetry

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    ContainerLab Fabric                      │
│  ┌─────────┐ ┌─────────┐                                   │
│  │ spine1  │ │ spine2  │     gNMI port 6030                │
│  │ .0.1    │ │ .0.2    │                                   │
│  └────┬────┘ └────┬────┘                                   │
│       │           │                                         │
│  ┌────┴───┬───────┴────┬──────────┐                        │
│  │        │            │          │                         │
│  ▼        ▼            ▼          ▼                         │
│ leaf1-2  leaf3-4    leaf5-6    leaf7-8                     │
│ (VTEP1)  (VTEP2)    (VTEP3)    (VTEP4)                     │
└─────────────────────────────────────────────────────────────┘
       │ gNMI Streaming Telemetry (port 6030)
       ▼
┌─────────────────┐      ┌──────────────┐      ┌─────────────┐
│     gnmic       │─────▶│  Prometheus  │─────▶│   Grafana   │
│  (port 9804)    │      │  (port 9090) │      │ (port 3000) │
└─────────────────┘      └──────────────┘      └─────────────┘

Quick Start

  1. Start the monitoring stack:

    cd monitoring
    docker-compose up -d
    
  2. Access the dashboards:

  3. Verify gnmic targets:

    curl -s http://localhost:9804/metrics | grep gnmic_target
    

Components

Component Port Description
gnmic 9804 gNMI collector with Prometheus output
Prometheus 9090 Time-series database
Grafana 3000 Visualization (weathermap + dashboards)

Device Management IPs

Device Management IP gNMI Port Role
spine1 172.16.0.1 6030 Spine (AS65000)
spine2 172.16.0.2 6030 Spine (AS65000)
leaf1 172.16.0.25 6030 Leaf VTEP1
leaf2 172.16.0.50 6030 Leaf VTEP1
leaf3 172.16.0.27 6030 Leaf VTEP2
leaf4 172.16.0.28 6030 Leaf VTEP2
leaf5 172.16.0.29 6030 Leaf VTEP3
leaf6 172.16.0.30 6030 Leaf VTEP3
leaf7 172.16.0.31 6030 Leaf VTEP4
leaf8 172.16.0.32 6030 Leaf VTEP4

Collected Metrics

Interface Statistics

  • In/Out octets, packets, errors
  • Interface operational status
  • Interface speed/duplex

BGP State

  • Neighbor state (Established, Active, etc.)
  • Prefixes received/sent
  • Session uptime

EVPN/VXLAN

  • VXLAN tunnel status
  • VNI statistics
  • EVPN route counts

Grafana Weathermap

The weathermap visualization shows:

  • Spine-leaf topology with live bandwidth colors
  • Link utilization percentages
  • BGP session states
  • MLAG peer-link status

Troubleshooting

gnmic not connecting:

# Test gNMI connectivity manually
gnmic -a 172.16.0.1:6030 -u admin -p admin --insecure capabilities

No metrics in Prometheus:

# Check gnmic logs
docker logs gnmic

# Verify Prometheus targets
curl http://localhost:9090/api/v1/targets