En esta entrada veremos cómo instalar Cacti en Debian 8 Jessie paso a paso, de modo que podrás supervisar el estado de los equipos y dispositivos de tu red local desde tu viejo servidor o VPS Debian.
Tabla de contenidos
Antes de instalar Cacti en Debian 8 Jessie
Si quieres completar los pasos de esta guía de instalación de Cacti en Debian 8 Jessie será necesario partir de estos requisitos:
- Una máquina Debian 8 actualizada.
- Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
- Acceso a línea de comandos con un usuario con permisos de sudo o el mismo root.
- Conexión a Internet.
En caso de no disponer del entorno necesario, puede interesarte consultar previamente nuestra guía de instalación de la pila LAMP en Debian 8 Jessie.
Cómo descargar Cacti para Debian 8 Jessie
Vamos a descargar Cacti para Debian 8 Jessie para lo que visitaremos la sección de descargas del sitio oficial, donde encontraremos la última versión estable en formato .tar.gz y .zip.
Podemos realizar la descarga desde el navegador o, como haremos en este tutorial, desde consola mediante la herramienta wget:
~$ wget https://www.cacti.net/downloads/cacti-1.2.12.tar.gz
Cómo instalar Cacti en Debian 8 Jessie
Para instalar Cacti en Debian 8 Jessie debemos realizar una serie de preparativos del sistema, un proceso bastante laborioso que detallamos a continuación.
Pre-requisitos
Instalaremos la herramienta rrdtool desde los repositorios del sistema, por lo que actualizaremos las listas de paquetes:
~$ sudo apt update
Usamos apt para descargar e instalar rrdtool y sus dependencias:
~$ sudo apt install -y rrdtool
Archivos de Cacti
Descomprimimos el paquete que acabamos de descargar en el lugar que consideremos necesario, dependiendo de cómo queramos integrar la aplicación en el servicio web:
~$ sudo tar xf cacti-1.2.12.tar.gz -C /var/www/
Se crea un subdirectorio en cuyo nombre figuran los números de versión de Cacti, por lo que puede ser útil crear un enlace simbólico sin números:
~$ sudo ln -s /var/www/cacti-1.2.12/ /var/www/cacti
Como Cacti necesita escribir en su propio directorio de instalación, cambiaremos la propiedad del mismo y su contenido al usuario con el que corre el servicio web:
~$ sudo chown -R www-data:www-data /var/www/cacti/
Configuración de Cacti
Editamos la configuración de Cacti para realizar algunos ajustes:
~$ sudo nano /var/www/cacti/include/config.php
Este archivo contiene los datos de conexión al servicio de bases de datos, cuyos valores por defecto dejaremos intactos, excepto la contraseña:
... $database_password = 'cactiuser'; ...
Por seguridad, cambiaremos la contraseña del usuario de la base de datos:
$database_password = 'XXXXXXXX';
Si tenemos un dominio o nombre DNS para acceder al servidor Debian 8, buscaremos la directiva cacti_cookie_domain:
... //$cacti_cookie_domain = 'cacti.net'; ...
Como en el ejemplo de este tutorial trabajamos sobre un servidor Debian 8 accesible en el subdominio debian8.local.lan, activaremos la variable y actualizaremos su valor:
... $cacti_cookie_domain = 'debian8.local.lan'; ...
Si no existe dominio asociado, el acceso sólo es por dirección IP o no supone un problema de seguridad, puedes dejar la variable desactivada.
En cualquier caso, guardamos los cambios.
Servicio web
Para hacer navegable la aplicación Cacti en Debian 8, crearemos una configuración especial para Apache:
~$ sudo nano /etc/apache2/sites-available/cacti.conf
Con el contenido siguiente:
Alias /cacti /var/www/cacti <Directory /var/www/cacti/> php_value memory_limit "800M" php_value max_execution_time 60 </Directory>
Junto al alias, aplicamos un par de ajustes de PHP para Cacti.
Guardamos y activamos la nueva configuración:
~$ sudo a2ensite cacti.conf
Y recargamos la configuración del servicio web:
~$ sudo systemctl reload apache2
PHP
Cacti requiere la instalación en Debian 8 de ciertas extensiones, que obtendremos con apt:
~$ sudo apt install -y php-gd php-gmp php-ldap php-mbstring php-snmp php-xml
Recargamos la configuración del servicio web o PHP, lo que corresponda:
~$ sudo systemctl reload apache2
Base de datos
Cacti se apoya en el servicio de bases de datos que tengamos instalado en Debian 8 Jessie, sobre el que tendremos que realizar una serie de ajustes de configuración.
Editamos el archivo de configuración principal del servicio, cuya ubicación variará según si procede de los repositorios del sistema o los oficiales, si se trata de MariaDB o MySQL, etc. Por ejemplo, para MariaDB procedente del repositorio oficial de la aplicación:
~$ sudo nano /etc/mysql/my.cnf
Nos aseguraremos de que en la sección mysqld aparezcan estas directivas de configuración:
... [mysqld] ... character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci join_buffer_size = 32M innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_buffer_pool_instances = 8 innodb_io_capacity = 5000 innodb_io_capacity_max = 10000 ...
Algunas de estas directivas podrían no existir previamente o existir con otros o con los mismos valores, por lo que deberíamos revisar el archivo.
Guardados los cambios, reiniciamos el servicio, en el caso de MariadB:
~$ sudo systemctl restart mariadb
Ahora conectaremos con el cliente mysql para crear la base de datos y el usuario para Cacti, teniendo en cuenta que deben coincidir con los valores del archivo de configuración que editamos anteriormente:
~$ mysql -u root -p
Creamos la base de datos:
> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci;
En MariaDB o MySQL 5 creamos el usuario de forma simple:
> create user cactiuser@localhost identified by 'XXXXXXXX';
Si se trata de MySQL 8 lo creamos especificando el plugin de autenticación:
> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';
Concedemos permisos al usuario sobre la base de Cacti:
> grant all privileges on cacti.* to cactiuser@localhost;
Y también concedemos permiso de consulta sobre la base de zonas horarias de MySQL:
> grant select on mysql.time_zone_name to cactiuser@localhost;
Ya podemos cerrar la conexión:
> exit
El instalador no será capaz de inicializar la nueva base de datos, por lo que haremos esta operación desde consola usando un script SQL que proporciona el paquete de Cacti:
~$ mysql -u root -p cacti < /var/www/cacti/cacti.sql
También debemos cargar la tabla de zonas horarias de MariaDB/MySQL, ya que por defecto suele estar vacía:
~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
Si se produce, puedes ignorar tranquilamente el aviso sobre el archivo /usr/share/zoneinfo//leap-seconds.list.
Cron
La monitorización de Cacti se realiza usando el servicio Cron de Debian 8 Jessie, para lo cual debemos crear una tarea programada:
~$ sudo nano /etc/cron.d/cacti
Con la siguiente línea:
*/5 * * * * www-data /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1
Cada 5 minutos el usuario www-data lanzará el proceso de monitorización.
Guardamos el archivo y la monitorización comenzará.
Instalador web
Por fin podemos acceder al instalador web de Cacti en Debian 8 Jessie desde un navegador, utilizando la dirección del servidor y el alias que hayamos creado.
Por ejemplo, la máquina Debian 8 que utilizamos para este artículo es accesible en el subdominio o nombre DNS debian8.local.lan, y hemos configurado el alias /cacti, así que podemos usar http://debian8.local.lan/cacti como URL:
La primera página del instalador nos pedirá iniciar sesión, siendo el usuario y la contraseña por defecto admin y admin, respectivamente.
Esta contraseña es temporal, así que inmediatamente se nos obligará a cambiarla:
Se nos presentará el acuerdo de licencia de Cacti y el menú de selección de idioma para la instalación:
Además de seleccionar el idioma que nos interese, será necesario aceptar expresamente el acuerdo de licencia para poder continuar con la instalación.
Se mostrará una página con los requerimientos de nuestro sistema Debian 8 para instalar Cacti:
Si has seguido los pasos anteriores, todos los requisitos obligatorios se cumplirán, así como la mayoría de los opcionales, aunque dependiendo de la versión de MariaDB/MySQL que usemos puede que algún ajuste poco importante no coincida con el valor esperado, pero será posible continuar con la instalación.
Tendremos que elegir el tipo de instalación:
Normalmente elegiremos «Nuevo servidor primario«, que es el caso más común a la hora de instalar Cacti en una red local.
Seguidamente se comprobarán los permisos de los directorios de Cacti:
Todos los permisos de lectura y escritura deberían estar correctos.
Igualmente sucede con las ubicaciones y rutas de binarios y herramientas de Debian 8 usadas por Cacti:
Desde hace algún tiempo Cacti incluye un sistema de seguridad mediante listas blancas para evitar posibles problemas de seguridad al lanzar la tarea de monitorización, así que se nos informa de los detalles de este sistema:
Será necesario confirmar que hemos leído esta explicación para poder continuar.
El siguiente paso es configurar el perfil predeterminado:
Podemos dejar los valores por defecto, pero sí será importante asegurarnos de que el rango de red se corresponde con el de nuestra propia red local.
El instalador nos ofrecerá una colección de plantillas para dispositivos y sistemas:
En caso de dudas, puedes instalar todas las plantillas.
La última comprobación que realiza el instalador es sobre la base de datos para Cacti:
Como todas las comprobaciones anteriores, debería pasar sin problemas.
En este punto el instalador ha realizado todas las comprobaciones y recopilado todos los datos necesarios:
Tendremos que confirmar la instalación para que inicie el proceso.
Las tareas de instalación tomarán unos instantes, mostrándose el progreso de las mismas:
Finalizada la instalación se mostrará un resumen de las tareas realizadas:
Seguiremos el enlace «Comenzar» para visitar por primera vez la aplicación, con la sesión iniciada:
Podemos comprobar el funcionamiento de la monitorización de la máquina local visitando la sección «Gráficos» del menú superior, expandiendo «Default Tree» en el panel lateral y siguiendo el enlace «Local Linux Machine«:
Si el proceso de instalación se realiza en poco tiempo, es posible que al visitar esta sección no haya datos disponibles, pero esperando unos minutos automáticamente la página se refrescará e irán apareciendo las gráficas.
Conclusión
Ahora que sabes cómo instalar Cacti en Debian 8 Jessie, proceso bastante laborioso, ya puedes empezar a monitorizar los sistemas de tu red local gracias a su magnífica interfaz web.
En caso de dudas o preguntas, sugerencias de mejora o actualización del artículo, notificaciones de errores, etc. puedes dejar un comentario (lo más explicativo posible).
Y si ya puedes monitorizar tu red local gracias a esta guía de instalación de Cacti en en Debian 8 Jessie, puedes agradecérmelo dejando una propina de tan solo 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarme a un café:
¡Gracias!