Cacti es un Frontend para rrdtool para monitorear el sistema y servicios. Para Administradores de sistema o gente que trabaja comunmente con servidores es importante llevar una estadistica de este mismo para detectar fallas en el rendimiento o carencias de hardware, incluso mas, comportamientos anormales de servicios.
Cacti trabaja almacenando mediciones en una base de datos Mysql y sus resultados pueden ser vistos desde un navegador web.
Instalacion y configuracion
En debian es facil instalarlo, ya que exiten los paquetes pertinentes precompilados, lo que ahorrará bastante trabajo.
En la práctica bastaria tener instalado y funcionando un servidor WEB con soporte php, MySQL Server, SNMP y rrdtool
Para instalar basta con un apt-get install cacti
Cacti en su instalacion por paquetes automaticamente permite crear un alias en apache, por lo tanto bastaria con ingresar a tu sitio web y poner /cacti, es decir, http://www.tusitio.cl/cacti. Si usas apache, este te hará ingresar internamente a /usr/share/cacti/site/, donde estan los archivos de configuracion general. En debian no es necesario tocar nada, solo revisar que en el archivo /etc/cacti/debian.conf
se encuentren bien ingresados los datos de coneccion para la base de datos MYSQL.
Contraseña de Administracion
Ciertamente no tengo idea cual es la contraseña de administracion que trae por defecto que trae cacti, asi que lo mejor es cambiarla inmediatamente via consola mysql:
Ingresamos con mysql -u root -p cacti
Una vez estando dentro configuramos una password de ejemplo para el usuario admin, la cual será 123456
update user_auth set password=md5('123456') where username='admin';
Con esto deberiamos poder ingresar y ver las opciones de cacti via WEB, logeandose como user= admin , password = 123456. Posteriormente esa password puede ser cambiada desde la interfaz web sin ningun problema.
generando Graficos
Si ya pueden acceder a cacti via Web, lo mas probable es que no vean ningun grafico desplegado, ya que no han sido generados.
Via consola ingresan al directorio de cacti /usr/share/cacti/site/
y ejecutaremos el siguiente comando para generar un grafico a mano.
php5 -q poller.php
Si todo esta correcto, se deberia obtener algo como
OK u:0.01 s:0.02 r:0.04
OK u:0.01 s:0.02 r:0.04
OK u:0.01 s:0.02 r:0.05
09/24/2006 05:40:40 PM - SYSTEM STATS: Time:2.1624 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:10 RRDsProcessed:8
OK u:0.01 s:0.02 r:1.06
OK u:0.01 s:0.02 r:1.06
OK u:0.01 s:0.03 r:1.06
OK u:0.01 s:0.03 r:1.07
OK u:0.01 s:0.03 r:1.07
Aunque lo mas probable es que obtengan un lindo error que dice algo como:
Fatal error: Call to undefined function: mysql_pconnect() in /var/www/cacti/lib/adodb/drivers/adodb-mysql.inc.php on line 356
Esto se soluciona editando el fichero php.ini de apache y luego descomentando (quitar el ;) de la linea extension=mysql.so
.
Volvemos a tratar de generar el grafico a mano y si recibimis el mismo error (lo cual me pasó) queda algo que hacer.
En debian existe un paquete llamado php5-mysql (en el caso de usar php5), probablemente se encuentre instalado desde antes, pero esto no es suficiente, hay ciertas funciones que hay que activar, por lo que deberemos proceder a hacer un dpkg-reconfigure php5-mysql
.
El paquete hará varias preguntas y debemos responder que Si a estas.
Con este ultimo paso yo logré obtener la respuesta esperada. Ahora deberian poder ser visibles los graficos, pero sin dato alguno, ya que estos se van completando poco a poco.
Generando Valores
La idea es hacer que la maquina ejecute en forma periodica el comando antes mensionado, para que los graficos tomen valores cada cierto tiempo, para esto usaremos el CRON.
Editamos el fichero /etc/crontab y agregamos
*/5 * * * * root /usr/bin/php5 /usr/share/cacti/site/poller.php > /dev/null 2>&1
Finalmente reiniciamos el CRON para que aplique las nuevas programaciones, /etc/init.d/cron restart
Con esto el cron se encargará de generar una nueva lectura para cacti, y cacti la almacenará en la base de datos, para que estos puedan ser visibles en los graficos.
Suerte.
Con cacti es posible monitorear puertos de un swicth (catalyst por ejemplo 🙂 ) individualmente?