# Cacti

Cacti es una completa solución para la generación de gráficos en red, diseñada para aprovechar el poder de almacenamiento y la funcionalidad para gráficas que poseen las aplicaciones RRDtool. Esta herramienta, desarrollada en PHP, provee un pooler ágil, plantillas de gráficos avanzadas, múltiples métodos para la recopilación de datos, y manejo de usuarios. Tiene una interfaz de usuario fácil de usar, que resulta conveniente para instalaciones del tamaño de una LAN, así como también para redes complejas con cientos de dispositivos.

## Introducción
### ¿Qué es una RRDtool?

RRDtool es el acrónimo de Round Robin Database tool, o sea que se trata de una herramienta que trabaja con una BD que maneja Planificación Round-robin. Esta técnica trabaja con una cantidad fija de datos y un puntero al elemento actual. El modo en que trabaja una base de datos utilizando Round Robin es el siguiente; se trata la BD como si fuera un círculo, sobrescribiendo los datos almacenados, una vez alcanzada la capacidad de la BD. La capacidad de la BD depende de la cantidad de información como historial que se quiera conservar.

### ¿Qué tipo de datos pueden ser almacenados en una RRD?

Cualquiera, siempre que se trate de una serie temporal de datos. Esto significa que se tiene que poder realizar medidas en algunos puntos de tiempo y proveer esta información a la RRDtool para que la almacene.
Un concepto ligado a las RRDtool es el de SNMP, acrónimo de Simple Network Management Protocol. Este protocolo puede ser usado para realizar consultas a dispositivos acerca del valor de los contadores que ellos tienen (ej: una impresora). El valor obtenido de esos contadores es el que queremos guardar en la RRD.

### ¿Qué puedo hacer con esta herramienta?

Puedo, a través de Cacti , representar gráficamente los datos almacenados en la RRD: uso de conexión a internet, datos como temperatura, velocidad, voltaje, número de impresiones, etc. La RRD va a ser utilizada para almacenar y procesar datos recolectados vía SNMP.
En definitiva, para hacer uso de una RRDtool, lo que se necesita es un sensor para medir los datos y poder alimentar al RRDtool con esos datos. Entonces, la RRDtool crea una base de datos, almacena los datos en ella, recupera estos datos y basándose en ellos, Cacti crea gráficos en formato PNG.

### Fuente de datos

Para manejar la recopilación de datos, se le puede pasar a Cacti la ruta a cualquier script o comando junto con cualquier dato que el usuario necesitare ingresar; Cacti reunirá estos datos, introduciendo este trabajo en el cron (para el caso de un sistema operativo Linux) y cargará los datos en la BD MySQL y los archivos de Planificación Round-robin que deba actualizar.
Una fuente de datos también puede ser creada. Por ejemplo, si se quisiera representar en una gráfica los tiempos de ping de un host, se podría crear una fuente de datos, utilizando un script que haga ping a un host y devuelva el valor en milisegundos. Después de definir opciones para la RRDtool, como ser la forma de almacenar los datos, uno puede definir cualquier información adicional que la fuente de entrada de datos requiera, como ser en este caso, la IP del host al cual hacer el ping. Luego que una fuente de datos es creada, es automáticamente mantenida cada 5 minutos.

### Gráficos

Una vez que una o más fuentes de datos son definidas, una gráfica de RRDtool puede ser creada usando los datos obtenidos. Cacti permite crear prácticamente cualquier gráfica, utilizando todos los estándares de tipos de gráficas de RRDtool y funciones de consolidación. No sólo se puede crear gráficos basados en la RRDtool, sino que también hay varias formas de mostrarlas. Junto con una “lista de vistas” estándar y una “vista preliminar”, también existe una “vista en árbol”, la cual permite colocar gráficos un árbol jerárquico, para propósitos organizacionales.

### Manejo de usuarios

Dadas las muchas funciones que ofrece Cacti, la herramienta cuenta con la funcionalidad de manejo de usuarios embebida, para así hacer posible agregar un usuario y darle permisos a ciertas áreas de Cacti. Esto permite tener usuarios que puedan cambiar parámetros de un gráfico, mientras que otros sólo pueden ver los gráficos. Asimismo, cada usuario mantiene su propia configuración de vista de gráficos.

### Plantillas

Cacti puede escalar a un gran número de fuentes de datos y gráficos a través de plantillas. Esto permite la creación de una única plantilla de gráficos o fuente de datos, la cual define cualquier gráfico o fuente de datos asociada con esta plantilla. Las plantillas de hosts permiten definir las capacidades de un host, así Cacti puede utilizar esta información a la hora de agregar un nuevo host.

## Enlaces relacionados

* SNMP
* MySQL
* Servidor HTTP Apache