Generación automática de mapas topológicos en Zabbix
Los mapas de red se dibujaban a mano en el canvas de Zabbix. Ahora se generan solos, ordenados y al día.
- Python
- API de Zabbix
- Algoritmos de disposición
- Grafos
El problema
Los mapas de topología de Zabbix se construían arrastrando iconos en el canvas, uno por uno. El proceso era lento, y el problema de fondo era peor: en cuanto la red cambiaba, el mapa quedaba mentiroso. Un mapa desactualizado durante una incidencia no solo no ayuda, hace perder tiempo mirando enlaces que ya no existen.
Qué construí
Escribí una herramienta que construye los mapas directamente desde el estado real de la red. Toma las relaciones entre dispositivos que ya estaban en el inventario y las traduce a los elementos y enlaces que Zabbix entiende, creando el mapa mediante su API en vez de a mano.
La parte interesante fue la disposición. Volcar los nodos en el canvas sin más produce una maraña ilegible: los mapas de red solo sirven si se entienden de un vistazo. Implementé un posicionamiento que ordena los nodos según la jerarquía de la red, de forma que el resultado se lee de arriba abajo siguiendo la estructura real del parque y no la casualidad del orden de inserción.
Como la generación es automática y reproducible, regenerar el mapa cuesta lo mismo que consultarlo. Eso cambia la naturaleza del artefacto: el mapa deja de ser un documento que se mantiene y pasa a ser una vista derivada del inventario, que por definición nunca se desincroniza.
Resultado
- Eliminado el dibujado manual del canvas de Zabbix.
- Mapas legibles, con los nodos ordenados según la jerarquía real de la red.
- La topología deja de desactualizarse: se regenera desde el inventario cuando hace falta.
- Durante una incidencia, el mapa que se mira refleja la red que existe.