Anders Håål – CTO and Founder
Summer is a time to do some development just for fun. I try to tell my wife this is just as relaxing for me as reading a book or doing a crossword (would never do cross words).
This summer I have tried to understand more about how to monitor Cisco ACI data center networking. During the year we at Opsdis has done a number of ACI monitoring projects. These projects have been focused on automating the configuration of OP5 Monitor based on the ACI environment using our discovery tool Mender.
This time I wanted to use Prometheus, Alertmanager and Grafana to monitor and observe ACI fabrics. The initial objectives I had where:
- Learn more about Cisco ACI. I’m not a network engineer so getting more insight to modern data center networks is valuable .
- Expose the ACI metrics and health scoring for the different ACI objects like fabric, nodes, tenants, interfaces, etc.
- Just using the APIC api to extract metric data. This would remove the need for additional SNMP monitoring – if possible.
- Increase my Golang skills.
So the first thing needed is an exporter that acts as a proxy between Prometheus and the ACI fabrics. Looking around there are a number of existing projects, but none in golang (what I could find). There is a project https://github.com/RavuAlHemio/prometheus_aci_exporter written in Python that has some nice features for configuration of apic queries. An export does not have to be written in golang of course, but that was one of my goals.
The challenge with ACI and the APIC api is that it is so versatile. So many objects, classes, relations, etc. So to know what is useful to collect is not trivial. If you have ideas or input what is valuable to collect please let me know.
The project is located at Github if you want to know more. Remember its still in an early stage. Your input is appreciated, so connect with me at anders@opsdis.com or create an issue at https://github.com/opsdis/aci-exporter/issues.
About the author
