Cómo instalar el servidor de monitorización Cacti en CentOS 8

Cacti es una potente herramienta de monitorización y gráficos de red, gratuita y de código abierto. Sirve para controlar el rendimiento del sistema, la carga de la CPU y la utilización del ancho de banda de la red en formato de gráfico. Te permite sondear los servicios a intervalos predeterminados y representar gráficamente los datos resultantes. Es un frontend completo de RRDTool, escrito en PHP y utiliza la base de datos MySQL para almacenar toda la información necesaria.

En este tutorial, explicaremos cómo instalar la herramienta de monitorización Cacti en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8 con un mínimo de 2 GB de RAM.
  • Una contraseña de root configurada el servidor.

Cómo empezar

En primer lugar, se recomienda actualizar los paquetes del sistema a la última versión. Puedes actualizarlos con el siguiente comando:

dnf update -y

Una vez actualizados todos los paquetes, instala otras dependencias necesarias para Cacti con el siguiente comando:

dnf install net-snmp net-snmp-utils net-snmp-libs rrdtool -y

Después de instalar todas las dependencias, inicia el servicio SNMP y habilítalo para que se inicie en el arranque con el siguiente comando:

systemctl start snmpd
systemctl enable snmpd

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

Instalar el servidor LAMP

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

dnf install httpd mariadb-server php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl -y

Una vez instalados todos los paquetes, inicia el servicio HTTP y MariaDB y permite que se inicien en el arranque con el siguiente comando:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

A continuación, tendrás que editar el archivo php.ini y realizar algunos cambios:

nano /etc/php.ini
date.timezone = Asia/Kolkata
memory_limit = 512M
max_execution_style = 60

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

Configurar la base de datos MariaDB

A continuación, tendrás que crear una base de datos y un usuario para Cacti. En primer lugar, entra 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 cacti@localhost IDENTIFIED BY 'password';

A continuación, vacía los privilegios y sal del intérprete de comandos MariaDB con el siguiente comando

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

A continuación, tendrás que editar el archivo de configuración de MariaDB y modificar algunos ajustes. Puedes hacerlo editando el archivo /etc/my.cnf.d/mariadb-server.cnf.

nano /etc/my.cnf.d/mariadb-server.cnf

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

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size=32M
tmp_table_size=32M
join_buffer_size=64M
# 25% Of Total System Memory
innodb_buffer_pool_size=1GB
# pool_size/128 for less than 1GB of memory
innodb_buffer_pool_instances=10
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_io_capacity_max=10000

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

A continuación, importa el archivo mysql_test_data_timezone.sql a la base de datos mysql con el siguiente comando:

mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

A continuación, inicia sesión en MySQL y concede al usuario cacti el acceso a la tabla mysql.time_zone_name:

mysql

Una vez iniciada la sesión, ejecuta el siguiente comando para conceder el acceso:

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cacti@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

Por defecto, Cacti no está disponible en el repositorio por defecto de CentOS 8. Así que tendrás que añadir el repositorio EPEL a tu sistema.

Puedes instalarlo con el siguiente comando:

dnf install epel-release -y

Una vez instalado el repositorio, instala Cacti con el siguiente comando:

dnf install cacti -y

Después de instalar Cacti, comprueba la instalación de Cacti con el siguiente comando:

rpm -qi cacti

Deberías obtener la siguiente salida:

Name        : cacti
Version     : 1.2.14
Release     : 1.el8
Architecture: noarch
Install Date: Wednesday 07 October 2020 01:04:02 AM EDT
Group       : Unspecified
Size        : 56217780
License     : GPLv2+
Signature   : RSA/SHA256, Thursday 06 August 2020 05:06:22 AM EDT, Key ID 21ea45ab2f86d6a1
Source RPM  : cacti-1.2.14-1.el8.src.rpm
Build Date  : Thursday 06 August 2020 04:54:10 AM EDT
Build Host  : buildvm-a64-27.iad2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://www.cacti.net/
Bug URL     : https://bugz.fedoraproject.org/cacti
Summary     : An rrd based graphing tool
Description :
Cacti is a complete frontend to RRDTool. It stores all of the
necessary information to create graphs and populate them with
data in a MySQL database. The frontend is completely PHP
driven.

A continuación, importa los datos de Cacti a la base de datos de Cacti con el siguiente comando:

mysql -u root -p cactidb < /usr/share/doc/cacti/cacti.sql

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

nano /usr/share/cacti/include/config.php

Cambia las siguientes líneas que coincidan con tu base de datos:

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;

Guarda y cierra el archivo cuando hayas terminado y crea un archivo Cron para Cacti.

nano /etc/cron.d/cacti

Añade la siguiente línea:

*/5 * * * *   apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Guarda y cierra el archivo cuando hayas terminado.

Una vez que hayas terminado 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/httpd/conf.d/cacti.conf

Busca las siguientes líneas:

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require host localhost
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
        </IfModule>
</Directory>

Y, sustitúyelas por las siguientes líneas:

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio Apache y PHP-FPM para aplicar los cambios:

systemctl restart httpd
systemctl restart php-fpm

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

systemctl status httpd

Deberías obtener la siguiente salida:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2020-10-07 01:10:35 EDT; 58s ago
     Docs: man:httpd.service(8)
 Main PID: 5159 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 12523)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5159 /usr/sbin/httpd -DFOREGROUND
           ??5161 /usr/sbin/httpd -DFOREGROUND
           ??5162 /usr/sbin/httpd -DFOREGROUND
           ??5163 /usr/sbin/httpd -DFOREGROUND
           ??5164 /usr/sbin/httpd -DFOREGROUND

Oct 07 01:10:35 centos8 systemd[1]: Stopped The Apache HTTP Server.
Oct 07 01:10:35 centos8 systemd[1]: Starting The Apache HTTP Server...
Oct 07 01:10:35 centos8 httpd[5159]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:45>
Oct 07 01:10:35 centos8 systemd[1]: Started The Apache HTTP Server.
Oct 07 01:10:35 centos8 httpd[5159]: Server configured, listening on: port 80

En este punto, el servidor web Apache está configurado para servir a Cacti. Ahora puedes pasar al siguiente paso.

Configurar el cortafuegos y SELinux

A continuación, tendrás que permitir los servicios http y https a través del firewalld. Puedes permitirlos con el siguiente comando:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

A continuación, también tendrás que desactivar el SELinux en tu sistema.

Puedes desactivar el SELinux editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Busca la siguiente línea:

SELINUX=enforcing

Y, sustitúyela por la siguiente línea:

SELINUX=permissive

Guarda y cierra el archivo y luego reinicia el sistema para aplicar los cambios.

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 / admin y luego haz clic en el botón de inicio de sesión. Deberías ver la pantalla de cambio de contraseña de Cacti:

Cambiar la contraseña

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

Acepta la licencia

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

control de preinstalación

Asegúrate de que todos los paquetes están instalados y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Elige el tipo de instalación

Selecciona el tipo de instalación y haz clic en el botón Siguiente. Deberías ver la página de comprobación de permisos de directorio:

Permisos de directorio

Haz clic en el botón Siguiente. Deberías ver la siguiente página.

Comprueba las ubicaciones binarias

Haz clic en el botón Siguiente. Deberías ver la página de Validación de Entradas:

Lista blanca de validación de entradas

Marca la casilla de verificación y haz clic en el botón Siguiente. Deberías ver la página Perfil:

Perfil por defecto

Proporciona tu rango de red y haz clic en el botón Siguiente. Deberías ver la página de configuración de la plantilla:

Configuración de la plantilla

Selecciona la plantilla que desees y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Cotejo de servidores

A continuación, abre tu terminal, entra en el shell de MySQL y cambia el conjunto de caracteres ejecutando el siguiente comando:

MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

A continuación, vuelve al asistente de instalación de Cacti y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Confirmar la instalación

Confirma la instalación y haz clic en el botón Instalar. Una vez finalizada la instalación, deberías ver la siguiente página:

La instalación se ha completado con éxito

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

Cuadro de mandos de los cactus

Haz clic en los Gráficos => Máquina Linux local. Deberías ver la información sobre tu máquina local en la siguiente página:

Monitorización de servidores con Cacti

Conclusión

Enhorabuena! has instalado y configurado con éxito la herramienta de monitorización de red Cacti en Ubuntu 20.04. Ahora puedes instalar el agente Cacti en la máquina del cliente y añadirlo al servidor Cacti y empezar a monitorizar. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...