TIG-Stack for Cisco C9800

TIG-Stack for Cisco C9800

  • #projects
- Last updated on

Introduction

The following GitHub repository facilitates the setup of a telemetry collection system tailored for Cisco IOS-XE C9800s Wireless Controllers. It employs Docker Compose to orchestrate three essential containers:

  • Telegraf: Collects data.
  • InfluxDBv2: Stores time-series data.
  • Grafana: Visualizes the data.

The Docker Compose file automates the deployment of these components, streamlining the process to be zero-touch. It includes provisions for creating InfluxDB buckets and Grafana dashboards.

Screenshot

9840_demo_dashboard

Requirements

Steps to Get It Up and Running

  1. Clone the Repository
git clone http://github.com/darwincastro/9800_telemetry_collector.git
  1. Navigate to the Directory
cd 9800_telemetry_collector
  1. Edit the .env File

Use a text editor to modify the .env file, replacing the IP address under the variable INFLUXDB_URL with the host’s IP address.

nano .env
  1. Run the script build.sh
sudo ./build.sh start
  1. Configure Wireless Controller Telemetry

Refer to this link for an example of wireless controller telemetry configuration.

  1. Access GUI

    • Grafana: http://<ip_address_of_host>:3000 (Login: admin/C1sco12345)
    • InfluxDB: http://<ip_address_of_host>:8086 (Login: admin/C1sco12345)
  1. Pre-built Dashboards

    • Demo 9800CL
    • Demo 9800L
    • Demo 9840

Troubleshooting

Docker:

If containers fail to run:

docker ps -a # Determine problem exit code
docker run -it --entrypoint /bin/bash $IMAGE_NAME -s # Investigate container

Ensure containers stay up:

# Point docker file to tail -f /dev/null if no entry point or service is running

Confirm that Telegraf is receiving telemetry data from the Cisco C9800:

docker exec -it telegraf tail -f /tmp/metrics.out

Check the logs of each container:

docker logs influxdb
docker logs telegraf
docker logs grafana

Check telegraf’s internal metrics:

# Open and edit telegraf.conf
cd /etc/telegraf
nano telegraf.conf

# Add the following lines at the end to monitor the health
[[inputs.internal]]
  collect_memstats = true

[agent]
  debug = true
# Save the changes

# Display logs for Tegraf
docker logs telegraf

Cleanup:

If you want to remove the TIG-Stack containers or if something went wrong during the installation, you can run the following script:

sudo ./cleanup.sh

Wireless Controller:

Verify requisite processes:

show platform software yang-management process

Validate telemetry configuration:

show running-config | section telemetry

Check subscription validity:

show telemetry ietf subscription all

Check receiver validity:

show telemetry receiver all

Verify telemetry subscription states:

show telemetry internal subscription all stats

Known Issues

  • MacOS uses the BSD version of sed by default, which doesn’t work with this script. Use brew install gnu-sed to install the GNU version of sed if running this script on MacOS.

Copyright © 2024 Darwin Castro