Cómo instalar Cacti en Debian 9 Stretch

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.

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:

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo apt update
~$ sudo apt update
~$ sudo apt update

E instalamos dichas herramientas:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo apt install -y ca-certificates rrdtool
~$ sudo apt install -y ca-certificates rrdtool
~$ 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:

como descargar cacti para debian 9 stretch

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ wget https://www.cacti.net/downloads/cacti-1.2.20.tar.gz
~$ wget https://www.cacti.net/downloads/cacti-1.2.20.tar.gz
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo tar xf cacti-1.2.20.tar.gz -C /var/www/
~$ sudo tar xf cacti-1.2.20.tar.gz -C /var/www/
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo ln -s /var/www/cacti-1.2.20/ /var/www/cacti
~$ sudo ln -s /var/www/cacti-1.2.20/ /var/www/cacti
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo chown -R www-data:www-data /var/www/cacti/
~$ sudo chown -R www-data:www-data /var/www/cacti/
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo apt install -y php-{gd,gmp,ldap,mbstring,snmp,xml}
~$ sudo apt install -y php-{gd,gmp,ldap,mbstring,snmp,xml}
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo apt install -y php7.4-{gd,gmp,ldap,mbstring,snmp,xml}
~$ sudo apt install -y php7.4-{gd,gmp,ldap,mbstring,snmp,xml}
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo systemctl reload apache2
~$ sudo systemctl reload apache2
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/apache2/sites-available/cacti.conf
~$ sudo nano /etc/apache2/sites-available/cacti.conf
~$ sudo nano /etc/apache2/sites-available/cacti.conf

El contenido será un alias y algunas directivas para aplicar ciertos valores requeridos de PHP:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Alias /cacti /var/www/cacti
<Directory /var/www/cacti>
php_value max_execution_time 60
php_value memory_limit 400M
</Directory>
Alias /cacti /var/www/cacti <Directory /var/www/cacti> php_value max_execution_time 60 php_value memory_limit 400M </Directory>
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo a2ensite cacti.conf
~$ sudo a2ensite cacti.conf
~$ sudo a2ensite cacti.conf

Y recargamos la configuración del servicio web:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo systemctl reload apache2
~$ sudo systemctl reload apache2
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Para MariaDB 10.4 la ruta del archivo es distinta:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/mysql/my.cnf
~$ sudo nano /etc/mysql/my.cnf
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
[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
...
... [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 ...
...
[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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo systemctl restart mariadb
~$ sudo systemctl restart mariadb
~$ sudo systemctl restart mariadb

Base de datos

Conectamos al sevicio con el cliente de consola mysql y un usuario administrador:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql -u root -p
~$ mysql -u root -p
~$ mysql -u root -p

Creamos la base de datos:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci;
> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci;
> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci;

En MariaDB ó MySQL 5 creamos el usuario así:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> create user cactiuser@localhost identified by 'XXXXXXXX';
> create user cactiuser@localhost identified by 'XXXXXXXX';
> create user cactiuser@localhost identified by 'XXXXXXXX';

Y en MySQL 8 además especificamos el plugin de conexión:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';
> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';
> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';

Concedemos los permisos:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> grant all privileges on cacti.* to cactiuser@localhost;
> grant all privileges on cacti.* to cactiuser@localhost;
> grant all privileges on cacti.* to cactiuser@localhost;

Y también concedemos permiso de acceso a la tabla de zonas horarias:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> grant select on mysql.time_zone_name to cactiuser@localhost;
> grant select on mysql.time_zone_name to cactiuser@localhost;
> grant select on mysql.time_zone_name to cactiuser@localhost;

Cerramos la conexión:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> exit;
> exit;
> exit;

Cargamos la base de datos de Cacti con el script SQL proporcionado por el paquete:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql -u root -p cacti < /var/www/cacti/cacti.sql
~$ mysql -u root -p cacti < /var/www/cacti/cacti.sql
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /var/www/cacti/include/config.php
~$ sudo nano /var/www/cacti/include/config.php
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
...
... $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'cactiuser'; ...
...
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
...

Y la cambiamos por el valor que hayamos utilizado:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
$database_password = 'XXXXXXXX';
...
... $database_password = 'XXXXXXXX'; ...
...
$database_password = 'XXXXXXXX';
...

Opcionalmente, podemos buscar la variable cacti_cookie_domain:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
//$cacti_cookie_domain = 'cacti.net';
...
... //$cacti_cookie_domain = 'cacti.net'; ...
...
//$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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
$cacti_cookie_domain = 'debian9.local.lan';
...
... $cacti_cookie_domain = 'debian9.local.lan'; ...
...
$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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/cron.d/cacti
~$ sudo nano /etc/cron.d/cacti
~$ sudo nano /etc/cron.d/cacti

Con esta línea como contenido:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
*/5 * * * * www-data /usr/bin/php /var/www/cacti/poller.php 2>&1
*/5 * * * * www-data /usr/bin/php /var/www/cacti/poller.php 2>&1
*/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:

como instalar cacti en debian 9 stretch

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:

instalar cacti en debian 9 stretch

Se mostrará el acuerdo de licencia y un desplegable para elegir el idioma de la interfaz de Cacti:

instalacion de cacti en debian 9 stretch

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:

instalador de cacti para debian 9 stretch

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:

instalando cacti en debian 9 stretch

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:

cacti para debian 9 stretch

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«:

cacti en debian 9 stretch

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!

5/5 - (2 votos)

1 comentario en «Cómo instalar Cacti en Debian 9 Stretch»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

Buy Me A Coffee
Gracias por la visita. Si te gusta el artículo, ¡puedes invitarme a un café!