Cómo instalar la herramienta de monitorización de red Cacti en Ubuntu 20.04

Cacti es una herramienta de monitorización de red gratuita, de código abierto y basada en la web, escrita en PHP. Es una aplicación frontal para la herramienta RRD. Utiliza el protocolo SNMP para monitorizar la utilización del ancho de banda y el tráfico de red de un router o conmutador. Muestra la carga de la CPU y la utilización del ancho de banda de la red en un formato gráfico y los rellena con datos en una base de datos MySQL.

En este tutorial, te mostraremos cómo instalar la herramienta de monitorización Cacti en un servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Una contraseña de root configurada el servidor.

Cómo empezar

Antes de empezar, es conveniente actualizar todos los paquetes del sistema a la última versión. Puedes actualizarlos con el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, instala otras dependencias necesarias ejecutando el siguiente comando:

apt-get install snmp php-snmp rrdtool librrds-perl unzip curl git gnupg2 -y

Una vez instaladas todas las dependencias, puedes pasar al siguiente paso.

Instalar el servidor LAMP

A continuación, tendrás que instalar el servidor web Apache, MariaDB, PHP y otras extensiones PHP necesarias en tu servidor. Puedes instalarlos todos ejecutando el siguiente comando:

apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp -y

Después de instalar todos los paquetes, edita el archivo php.ini y haz algunos cambios:

nano /etc/php/7.4/apache2/php.ini

Cambia las siguientes líneas:

memory_limit = 512M
max_execution_time = 60
date.timezone = Asia/Kolkata

Guarda y cierra el archivo y luego edita otro archivo php.ini y haz algunos cambios:

nano /etc/php/7.4/cli/php.ini

Cambia las siguientes líneas:

memory_limit = 512M
max_execution_time = 60
date.timezone = Asia/Kolkata

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Cuando hayas terminado, puedes pasar al siguiente paso.

Configurar el servidor MariaDB

Cacti utiliza MariaDB como base de datos. Así que tendrás que crear una base de datos y un usuario para Cacti.

En primer lugar, edita el archivo de configuración por defecto de MariaDB y modifica algunos ajustes:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Añade / Modifica las siguientes líneas dentro de la sección [mysqld]:

collation-server = utf8mb4_unicode_ci
max_heap_table_size = 128M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 512M
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000

Guarda y cierra el archivo y luego reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

A continuación, inicia sesión en el shell de MariaDB con el siguiente comando:

mysql

Una vez iniciada la sesión, crea una base de datos y un usuario para Cacti con el siguiente comando:

MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'password';

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

A continuación, tendrás que importar los datos de la zona horaria a la base de datos MySQL. Puedes importarlos con el siguiente comando:

mysql mysql < /usr/share/mysql/mysql_test_data_timezone.sql

A continuación, entra en el shell de MariaDB y concede los privilegios necesarios en la zona horaria de MySQL con el siguiente comando:

mysql
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar y configurar Cacti

En primer lugar, tendrás que descargar la última versión de Cacti desde su sitio web oficial. Puedes descargarla con el siguiente comando:

wget https://www.cacti.net/downloads/cacti-latest.tar.gz

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar -zxvf cacti-latest.tar.gz

A continuación, mueve el directorio extraído al directorio raíz de Apache con el siguiente comando:

mv cacti-1* /var/www/html/cacti

A continuación, importa la base de datos al cactidb con el siguiente comando:

mysql cactidb < /var/www/html/cacti/cacti.sql

A continuación, edita el archivo Cacti config.php y define la configuración de tu base de datos:

nano /var/www/html/cacti/include/config.php

Cambia las siguientes líneas:

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'password';
$database_port     = '3306';

Guarda y cierra el archivo y crea un archivo de registro para Cacti.

touch /var/www/html/cacti/log/cacti.log

A continuación, establece la propiedad y el permiso del directorio cacti con el siguiente comando

chown -R www-data:www-data /var/www/html/cacti/
chmod -R 775 /var/www/html/cacti/

A continuación, crea un nuevo archivo de trabajo cron de Cacti con el siguiente comando:

nano /etc/cron.d/cacti

Añade la siguiente línea:

*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1

Guarda y cierra el archivo cuando hayas terminado.

En este punto, Cacti está instalado y configurado. Ahora puedes pasar al siguiente paso.

Configurar Apache para Cacti

A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para Cacti. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/cacti.conf

Añade las siguientes líneas:

Alias /cacti /var/www/html/cacti

  <Directory /var/www/html/cacti>
      Options +FollowSymLinks
      AllowOverride None
      <IfVersion >= 2.3>
      Require all granted
      </IfVersion>
      <IfVersion < 2.3>
      Order Allow,Deny
      Allow from all
      </IfVersion>

   AddType application/x-httpd-php .php

<IfModule mod_php.c>
      php_flag magic_quotes_gpc Off
      php_flag short_open_tag On
      php_flag register_globals Off
      php_flag register_argc_argv On
      php_flag track_vars On
      # this setting is necessary for some locales
      php_value mbstring.func_overload 0
      php_value include_path .
 </IfModule>

  DirectoryIndex index.php
</Directory>

Guarda y cierra el archivo y luego habilita el archivo de host virtual con el siguiente comando:

a2ensite cacti

A continuación, reinicia el servicio Apache para aplicar los cambios de configuración:

systemctl restart apache2

También puedes verificar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Deberías obtener la siguiente salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-02 03:11:25 UTC; 9s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 15445 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 15459 (apache2)
      Tasks: 6 (limit: 4691)
     Memory: 13.2M
     CGroup: /system.slice/apache2.service
             ??15459 /usr/sbin/apache2 -k start
             ??15460 /usr/sbin/apache2 -k start
             ??15461 /usr/sbin/apache2 -k start
             ??15462 /usr/sbin/apache2 -k start
             ??15463 /usr/sbin/apache2 -k start
             ??15464 /usr/sbin/apache2 -k start

Dec 02 03:11:25 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a la interfaz web de Cacti

Ahora, abre tu navegador web y accede a la interfaz web de Cacti utilizando la URL http://your-server-ip/cacti. Serás redirigido a la página de inicio de sesión de Cacti:

Inicio de sesión en Cacti

Proporciona el nombre de usuario y la contraseña por defecto como admin y haz clic en el botón de inicio de sesión. Deberías ver la pantalla de restablecimiento de contraseña:

Cambiar la contraseña de Cacti

Cambia tu contraseña por defecto y haz clic en el botón Guardar. Deberías ver la página del acuerdo de licencia:

Acepta la licencia

Acepta el acuerdo y haz clic en el botón Comenzar. Deberías ver la pantalla de comprobación de la preinstalación:

Comprobaciones previas a la instalación

Haz clic en el botón Siguiente. Deberías ver la pantalla de Tipo de Instalación:

Tipo de instalación

Selecciona el tipo de instalación que desees y haz clic en el botón Siguiente. Deberías ver la pantalla de comprobación de permisos de directorio:

Permisos de directorio

Haz clic en el botón Siguiente. Deberías ver la pantalla de comprobación de Ubicaciones y Versiones Binarias:

Ubicaciones binarias

Haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:

Listas blancas

Marca la casilla «He leído esta declaración» y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:

Red de automatización

Selecciona las opciones que desees y haz clic en el botón Siguiente. Deberías ver la pantalla de configuración de la plantilla:

Configuración de la plantilla

Haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:

Configuración de la base de datos

Haz clic en el botón Siguiente. Deberías ver la pantalla de Confirmación de la instalación:

Confirmar la instalación

Marca la opción«Confirmar instalación» y haz clic en el botón Instalar. Una vez completada la instalación, deberías ver la siguiente pantalla:

Instalación completa

Haz clic en el botón Comenzar. Deberías ver el panel de control de Cacti en la siguiente pantalla:

Cuadro de mandos de los cactus

Conclusión

Enhorabuena! has instalado y configurado con éxito la herramienta de monitorización Cacti en el servidor Ubuntu 20.04. Ahora puedes añadir dispositivos de red desde el salpicadero de Cacti y empezar a monitorizarlos desde el navegador web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...