>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
PHP

Las legendarias Cacti y el monitoreo de infraestructura de red

Si trabajaste en administración de sistemas hace unos quince años, probablemente recuerdas esas distintivas gráficas verdes de tráfico. Pasaron los años. Surgieron Prometheus, Grafana, VictoriaMetrics y una serie de otros sistemas. Sin embargo, el clásico proyecto Cacti sigue vivo. Los desarrolladores realizan commits regularmente, adaptan el código para PHP 8, desarrollan un nuevo motor de polling basado en C y se preparan para el lanzamiento de la rama 1.3.

¿Por qué una herramienta de los años 2000 se mantiene a flote? La respuesta es simple: el equipo de red no cambia tan rápido como el frontend o los servicios en la nube. Los switches, routers, unidades UPS y racks de servidores todavía exponen métricas a través del protocolo SNMP.

De qué consta la plataforma

Cacti funciona como una capa visual sobre la base de datos round-robin de RRDtool. A diferencia de las bases de datos de series temporales convencionales, RRDtool no crece indefinidamente. El tamaño del archivo se fija en el momento de su creación. Los datos antiguos se promedian y comprimen automáticamente según las reglas especificadas.

El proyecto consta de tres partes principales:

  • Interfaz web en PHP para la configuración del sistema y visualización de gráficas
  • Base de datos relacional MySQL o MariaDB para almacenar plantillas y usuarios
  • Subsistema de polling de dispositivos que se ejecuta según una programación

Las métricas se recopilan cada pocos minutos. Puedes usar el poller básico en PHP o conectar Spine. El motor Spine está escrito en C y funciona mucho más rápido gracias al multithreading. Para una red de mil dispositivos, esta es la única solución adecuada; de lo contrario, el proceso simplemente no terminará a tiempo.

Capacidades de la plataforma

Las plantillas se crean para trabajar con hardware. No necesitas buscar manualmente los OIDs correctos en la documentación del proveedor. Tomas una plantilla lista para Cisco, Juniper, MikroTik o D-Link, la adjuntas a un dispositivo y obtienes un conjunto listo de gráficas.

El escaneo de red se ejecuta según una programación. ¿Se encontró un nuevo dispositivo? El sistema lo reconoce por las respuestas SNMP y aplica la regla de automatización correspondiente.

El control de acceso basado en roles está disponible para la colaboración en equipo. Puedes darle a un ingeniero de guardia acceso a las gráficas de un rack específico, bloqueando otras secciones.

Las gráficas en la interfaz son interactivas. Puedes seleccionar el intervalo de tiempo deseado con el mouse, cambiar escalas, ver datos en tiempo real y exportar métricas en formato CSV.

El soporte para protocolos IPv6 y SNMPv3 abre el camino al monitoreo de infraestructura moderna mientras cumple con los requisitos de seguridad.

Requisitos del sistema y compilación desde código fuente

Para ejecutar, necesitas un servidor web con soporte para PHP 8.1. MariaDB versión 10.2 o superior (o MySQL 8.0 o superior). De las utilidades del sistema, necesitas RRDtool versión 1.8 y el paquete Net-SNMP.

Las dependencias del proyecto se implementan usando Composer:

git clone https://github.com/Cacti/cacti.git
cd cacti
composer install

Al trabajar con la rama de desarrollo 1.3, las tablas de la base de datos necesitan actualizarse regularmente. Para esto, el proyecto incluye utilidades de línea de comandos:

sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`

Verificar la integridad de la estructura de las tablas después de cada cambio es ayudado por la auditoría integrada:

php cli/audit_database.php --report

Dónde usar en la práctica

El monitoreo de canales de red sigue siendo el nicho principal del proyecto. Cuando necesitas rastrear la utilización de puertos en un ciento de switches, levantar un stack pesado de scrapers y exporters puede ser excesivo. El sistema se despliega en media hora y consume recursos mínimos.

La contabilidad de sistemas de ingeniería en centros de datos es otro escenario común. Monitorear la temperatura en racks, cargas de fase de UPS y errores de interfaz. La herramienta se ha refinado durante décadas precisamente para estas tareas.

La arquitectura soporta plugins. Si las características estándar no son suficientes, puedes instalar módulos para enviar notificaciones o construir mapas geográficos de red.

Cacti no intenta competir con Prometheus en el mundo de los contenedores y pods dinámicos. Es una herramienta para la buena y vieja infraestructura física.

Si necesitas desplegar un monitoreo comprensible y poco exigente de equipo de red, Cacti sigue siendo una opción práctica. Ahorra memoria, funciona de manera estable durante años y no requiere arreglar constantemente los archivos de configuración.

Proyectos relacionados