En este artículo veremos cómo instalar Cacti en Debian 9 Stretch paso a paso, de modo que podrás monitorizar de forma gráfica los equipos y dispositivos de tu red o tus servidores desde tu servidor o VPS Debian.
Este tutorial está disponible también para otras versiones de Debian que podrás encontrar fácilmente en nuestro buscador.
Tabla de contenidos
Antes de instalar Cacti en Debian 9 Stretch
Para completar esta guía de instalación y configuración de Cacti en Debian 9 Stretch deberías satisfacer los siguientes requerimientos básicos:
- Un sistema Debian 9 Stretch actualizado.
- Una pila tipo LAMP (servidor web con PHP y bases de datos).
- Acceso a línea de comandos como root o un usuario con privilegios de sudo.
- Conexión a Internet.
Si aún no dispones del entorno necesario, puedes consultar en primer lugar nuestra guía de instalación de la pila LAMP en Debian 9 Stretch.
También se necesitan algunas herramientas del sistema que obtendremos de los repositorios de Debian 9, para lo que actualizamos su información:
~$ sudo apt update
E instalamos dichas herramientas:
~$ sudo apt install -y ca-certificates rrdtool
Cómo descargar Cacti para Debian 9 Stretch
Vamos a descargar Cacti para Debian 9 Stretch desde la sección de descargas del sitio oficial, ya que los paquetes que existen en los repositorios de la distribución pertenecen a versiones bastante antiguas:
Encontraremos la última versión estable de Cacti en dos paquetes con formato de compresión, .tar.gz y .zip, siendo el paquete .tar.gz el que descargaremos, en este caso desde consola con el comando wget:
~$ wget https://www.cacti.net/downloads/cacti-1.2.20.tar.gz
Cómo instalar Cacti en Debian 9 Stretch
Para instalar Cacti en Debian 9 Stretch seguiremos una serie de pasos orientados a preparar el sistema, de forma que el instalador web corra sin encontrar incidencia alguna.
Archivos de Cacti
Extraemos el contenido del paquete que acabamos de descargar en su ubicación definitiva:
~$ sudo tar xf cacti-1.2.20.tar.gz -C /var/www/
Como el subdirectorio que se crea contiene números de versión en el nombre, para facilitar la instalación y mantenimiento creamos un enlace simbólico sin número de versión:
~$ sudo ln -s /var/www/cacti-1.2.20/ /var/www/cacti
Cacti necesita escribir en su propio directorio de instalación, por lo que cambiamos la propiedad del mismo y de su contenido al usuario con el que corre el servicio web en Debian 9:
~$ sudo chown -R www-data:www-data /var/www/cacti/
PHP
Cacti requiere la disponibilidad en Debian 9 Stretch de ciertas extensiones, que instalamos desde los repositorios del sistema; en el caso de la versión nativa para Debian 9:
~$ sudo apt install -y php-{gd,gmp,ldap,mbstring,snmp,xml}
Si usamos alguna versión del repositorio alternativo, habrá que indicarla en el nombre de los paquetes; por ejemplo, para la versión 7.4:
~$ sudo apt install -y php7.4-{gd,gmp,ldap,mbstring,snmp,xml}
Recargamos la configuración del servicio web para poder utilizar las nuevas extensiones:
~$ sudo systemctl reload apache2
Servicio web
En el caso de trabajar con Apache creamos un archivo de configuración para hacer navegable la aplicación:
~$ sudo nano /etc/apache2/sites-available/cacti.conf
El contenido será un alias y algunas directivas para aplicar ciertos valores requeridos de PHP:
Alias /cacti /var/www/cacti <Directory /var/www/cacti> php_value max_execution_time 60 php_value memory_limit 400M </Directory>
Guardamos el archivo y activamos la configuración:
~$ sudo a2ensite cacti.conf
Y recargamos la configuración del servicio web:
~$ sudo systemctl reload apache2
Servicio de base de datos
Tendremos que realizar algunos ajustes de configuración, además de crear la base de datos sobre la que se apoya Cacti.
Configuración del servicio
Editamos el archivo de configuración del servicio, por ejemplo, para MariaDB procedente del repositorio oficial de MariaDB o MariaDB 10.5:
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Para MariaDB 10.4 la ruta del archivo es distinta:
~$ sudo nano /etc/mysql/my.cnf
Para otras versiones de MariaDB o MySQL habrá que localizar el archivo equivalente.
Buscaremos la sección mysqld y añadiremos las siguientes líneas:
... [mysqld] ... character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci join_buffer_size = 32M innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_buffer_pool_size = 1024M innodb_additional_mem_pool_size = 80M innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_buffer_pool_instances = 10 innodb_io_capacity = 5000 innodb_io_capacity_max = 10000 ...
Hay que tener en cuenta que algunas de estas directivas podrían encontrarse ya en el archivo con valores distintos, por lo que conviene revisarlo. Si durante la instalación se comprobase que se necesitan modificar estos u otros valores, habrá que revisar este archivo de nuevo.
Terminados los cambios y guardado el archivo reiniciamos el servicio de base de datos.
~$ sudo systemctl restart mariadb
Base de datos
Conectamos al sevicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base de datos:
> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci;
En MariaDB ó MySQL 5 creamos el usuario así:
> create user cactiuser@localhost identified by 'XXXXXXXX';
Y en MySQL 8 además especificamos el plugin de conexión:
> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';
Concedemos los permisos:
> grant all privileges on cacti.* to cactiuser@localhost;
Y también concedemos permiso de acceso a la tabla de zonas horarias:
> grant select on mysql.time_zone_name to cactiuser@localhost;
Cerramos la conexión:
> exit;
Cargamos la base de datos de Cacti con el script SQL proporcionado por el paquete:
~$ mysql -u root -p cacti < /var/www/cacti/cacti.sql
Y cargamos la tabla de zonas horarias de MySQL, que normalmente suele estar vacía por defecto:
~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
Puedes ignorar las advertencias que se produzcan.
Configuración de Cacti
Editamos la configuración por defecto:
~$ sudo nano /var/www/cacti/include/config.php
En pasos anteriores hemos creado la base de datos y el usuario con los nombres por defecto, pero no la contraseña. Buscamos la variable que almacena la contraseña:
... $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'cactiuser'; ...
Y la cambiamos por el valor que hayamos utilizado:
... $database_password = 'XXXXXXXX'; ...
Opcionalmente, podemos buscar la variable cacti_cookie_domain:
... //$cacti_cookie_domain = 'cacti.net'; ...
Este valor permite las conexiones a Cacti sólo si provienen de un dominio cocreto y se usa para cifrar la cookie de sesión. Si queremos aplicar este mecanismo de seguridad activamos la variable eliminando los caracteres // al inicio de línea y le damos el valor apropiado:
... $cacti_cookie_domain = 'debian9.local.lan'; ...
Guardamos.
Cron
Cacti realiza la obtención de datos de los dispositivos usando una tarea programada en Debian 9 Stretch. Debemos crear esta tarea manualmente a través del correspondiente archivo para el servicio Cron:
~$ sudo nano /etc/cron.d/cacti
Con esta línea como contenido:
*/5 * * * * www-data /usr/bin/php /var/www/cacti/poller.php 2>&1
Desde el momento en que guardamos el archivo comienza la recolección de datos.
Instalador web
Ya podemos acceder al instalador web de Cacti para Debian 9 Stretch desde el navegador web, indicando la dirección (IP, dominio, nombre DNS, ect.) y la ruta o alias de la aplicación.
Por ejemplo, la máquina Debian 9 sobre la que hemos preparado esta guía es accesible en el subdominio debian9.local.lan, y hemos configurado el acceso a Cacti usando el alias /cacti, por lo que podemos utilizar http://debian9.local.lan/cacti como URL:
Se muestra la página de inicio de sesión, en la que introduciremos admin como usuario y también como clave.
Por seguridad tendremos que cambiar la clave por defecto, siguiendo los requisitos de Cacti para las contraseñas:
Se mostrará el acuerdo de licencia y un desplegable para elegir el idioma de la interfaz de Cacti:
Seleccionamos el idioma, aceptamos el acuerdo de licencia y continuamos.
En la siguiente página se mostrará el resultado de la comprobación de requisitos del sistema para la instalación de Cacti:
Si has seguido los pasos anteriores deberían cumplirse prácticamente todos los requisitos. En caso contrario soluciona el problema y recarga la página.
De todas formas puede que algunos valores no sean los esperados, pero normalmente se puede continuar.
Seguimos con el tipo de instalación:
En este caso se trata de un nuevo servidor primario, que es el valor por defecto.
Se revisarán los permisos de acceso a los directorios de la aplicación:
También se comprobarán las ubicaciones y versiones de binarios y herramientas de Debian 9:
Cacti usa un sistema de listas blancas en su método de instalación de datos, cuyo funcionamiento se nos explica durante la instalación:
Tendremos que confirmar el haber leído y entendido las particularidades del uso de este sistema.
El siguiente paso configura el perfil predeterminado para la obtención de datos:
Los valores adecuados funcionan, pero puedes personalizarlos.
En cuanto a la automatización de escaneo de red, configura el rango de red aplicable para tu red local antes de continuar.
Tendremos que seleccionar las plantillas disponibles:
Puedes dejar marcadas todas las plantillas disponibles sin problema.
Una última comprobación revisará las propiedades de la base de datos:
En este punto ya tenemos todo listo para iniciar la instalación:
Marcamos «Confirmar instalación» y seguimos el enlace «Instalar«.
Se inicia el proceso de instalación mostrándose el avance mediante una barra de progreso y una lista de tareas realizadas:
Finaliza la instalación con la posibilidad de consultar el registo de tareas:
Siguiendo el enlace «Comenzar» entraremos en la página principal de Cacti, con la sesión iniciada:
Como la máquina local está siendo monitorizada, podemos acceder a sus gráficas de actividad seleccionando la solapa «Gráficos» y en el panel lateral desplegando al árbol incial «Default tree» hasta poder marcar «Local Linux Machine«:
Dependiendo del tiempo transcurrido desde la creación de la tarea de Cron para la obtención de datos hasta la visita a esta página de gráficos, habrá más o menos datos para mostrar. Es posible que incluso ni haya comenzado la obtención de datos, pero las gráficas se actualizan automáticamente y en pocos minutos deben empezar a mostrar datos.
Conclusión
Ahora que sabes cómo instalar Cacti en Debian 9 Stretch podrás monitorizar tu servidor o VPS fácilmente, comprobando gráficamente el estado de sus recursos.
En caso de dudas, preguntas, sugerencias, etc. puedes dejar un comentario.
Ah, y si ya monitorizas los sistemas y equipos de tu red local gracias a esta guía de instalación de Cacti en Debian 9 Stretch y quieres agradecérnoslo, cualquier pequeña contribución ayuda mucho al mantenimiento y desarrollo de este sitio. Además, se priorizan las solicitudes de actualización a nuevas versiones y la ayuda a problemas de la instalación.
Puedes ayudarnos dejando a partir de 1 $ de propina con PayPal:
¡Gracias!
Actualizado a la versión 1.2.20.