Instale Cacti (monitoreo de red) en RHEL/CentOS 8/7 y Fedora 30


La herramienta Cacti es una solución de gráficos de monitoreo de sistema y monitoreo de red basada en la web de código abierto para empresas de TI. Cacti permite a un usuario sondear servicios a intervalos regulares para crear gráficos sobre los datos resultantes usando RRDtool. Generalmente, se utiliza para graficar datos de series de tiempo de métricas como espacio en disco, etc.

En este tutorial, le mostraremos cómo instalar y configurar una aplicación de monitoreo de red completa llamada Cacti usando la herramienta Net-SNMP en los sistemas RHEL, CentOS y Fedora usando la herramienta de administración de paquetes DNF.

El Cacti requería que los siguientes paquetes se instalaran en sus sistemas operativos Linux como RHEL/CentOS/Fedora.

  1. Apache: un servidor web para mostrar gráficos de red creados por PHP y RRDTool.
  2. MySQL: un servidor de base de datos para almacenar información de cactus.
  3. PHP: un módulo de secuencia de comandos para crear gráficos utilizando RRDTool.
  4. PHP-SNMP: una extensión de PHP para que SNMP acceda a los datos.
  5. NET-SNMP: se utiliza un SNMP (Protocolo simple de administración de red) para administrar la red.
  6. RRDTool: una herramienta de base de datos para administrar y recuperar datos de series de tiempo como carga de CPU, ancho de banda de red, etc.

Nota: Las instrucciones de instalación que se muestran aquí están escritas en base a la distribución de Linux CentOS 7.5.

Instalación de paquetes requeridos de Cacti en RHEL/CentOS/Fedora

Primero, necesitamos instalar los siguientes paquetes de dependencia uno por uno usando la herramienta de administrador de paquetes predeterminada como se muestra.

# yum install httpd httpd-devel   [On RHEL/CentOS 7/6]
# dnf install httpd httpd-devel   [On RHEL/CentOS 8 and Fedora 30]
# yum install mysql mysql-server      [On RHEL/CentOS 6]

MariaDB es una bifurcación desarrollada por la comunidad del proyecto de base de datos MySQL y proporciona un reemplazo para MySQL. Anteriormente, la base de datos oficial admitida era MySQL bajo RHEL/CentOS y Fedora.

Recientemente, RedHat realiza una nueva transacción de MySQL a MariaDB, ya que MariaDB es la implementación predeterminada de MySQL en RHEL/CentOS 8/7 y Fedora 19 en adelante.

# yum install mariadb-server -y		[On RHEL/CentOS 7]
# dnf install mariadb-server -y         [On RHEL/CentOS 8 and Fedora 30]
# yum install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli
OR
# dnf install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli
# yum install php-snmp
OR
# dnf install php-snmp         
# yum install net-snmp-utils net-snmp-libs
OR
# dnf install net-snmp-utils net-snmp-libs
# yum install rrdtool
OR
# dnf install rrdtool

Inicio de servicios Apache, MySQL y SNMP

Una vez que haya instalado todo el software necesario para la instalación de Cacti, iniciemos uno por uno utilizando los siguientes comandos.

[[email protected] ~]# service httpd start
[[email protected] ~]# service mysqld start
[[email protected] ~]# service snmpd start
[[email protected] ~]# systemctl start httpd.service
[[email protected] ~]# systemctl start mariadb.service
[[email protected] ~]# systemctl start snmpd.service

Configurar enlaces de inicio del sistema

Configuración de los servicios de Apache, MySQL y SNMP para que se inicien en el arranque.

[[email protected] ~]# /sbin/chkconfig --levels 345 httpd on
[[email protected] ~]# /sbin/chkconfig --levels 345 mysqld on
[[email protected] ~]# /sbin/chkconfig --levels 345 snmpd on
[[email protected] ~]# systemctl enable httpd.service
[[email protected] ~]# systemctl enable mariadb.service
[[email protected] ~]# systemctl enable snmpd.service

Instalar Cacti en RHEL/CentOS/Fedora

Aquí, debe instalar y habilitar el repositorio EPEL. Una vez que haya habilitado el repositorio, escriba el siguiente comando para instalar la aplicación Cacti.

# yum install cacti         [On RHEL/CentOS 7]
# dnf install cacti         [On RHEL/CentOS 8 and Fedora 30]

Configuración del servidor MySQL para la instalación de Cacti

Necesitamos configurar MySQL para Cacti, para hacer esto necesitamos asegurar un servidor MySQL recién instalado y luego crearemos la base de datos Cacti con el usuario Cacti. Si su MySQL ya está instalado y protegido, no es necesario que vuelva a hacerlo.

# mysql_secure_installation

Inicie sesión en el servidor MySQL con una contraseña recién creada y cree la base de datos Cacti con el usuario Cacti y establezca la contraseña.

[[email protected] ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL ON cacti.* TO [email protected] IDENTIFIED BY 'tecmint';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye
[[email protected] ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.41-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database cacti;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON cacti.* TO [email protected] IDENTIFIED BY 'tecmint';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

Averigüe la ruta del archivo de la base de datos usando el comando RPM, para instalar tablas de cactus en la base de datos de Cacti recién creada, use el siguiente comando.

# rpm -ql cacti | grep cacti.sql
/usr/share/doc/cacti-1.2.6/cacti.sql
OR
/usr/share/doc/cacti/cacti.sql

Ahora que tenemos la ubicación del archivo Cacti.sql, escriba el siguiente comando para instalar tablas, aquí debe escribir la contraseña de usuario de Cacti.

[[email protected] ~]# mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql
Enter password:

Abra el archivo llamado /etc/cacti/db.php con cualquier editor.

# vi /etc/cacti/db.php

Realice los siguientes cambios y guarde el archivo. Asegúrese de configurar la contraseña correctamente.

/* make sure these values reflect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "your-password-here";
$database_port = "3306";
$database_ssl = false;

Configuración de firewall para Cacti

[[email protected] ~]# iptables -A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
[[email protected] ~]# service iptables save
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=http
[[email protected] ~]# firewall-cmd --reload

Configuración del servidor Apache para la instalación de Cacti

Abra el archivo llamado /etc/httpd/conf.d/cacti.conf con el editor que elija.

# vi /etc/httpd/conf.d/cacti.conf

Debe habilitar el acceso a la aplicación Cacti para su red local o por nivel de IP. Por ejemplo, hemos habilitado el acceso a nuestra red LAN local 172.16.16.0/20. En tu caso, sería diferente.

Alias /cacti    /usr/share/cacti
 
<Directory /usr/share/cacti/>
        Order Deny,Allow
        Deny from all
        Allow from 172.16.16.0/20
</Directory>

En la última versión de Apache (por ejemplo: Apache 2.4), es posible que deba cambiar de acuerdo con la siguiente configuración.

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>

Finalmente, reinicie el servicio Apache.

[[email protected] ~]# service httpd restart				[On RHEL/CentOS 6 and Fedora 18-12]
[[email protected] ~]# systemctl restart httpd.service		[On RHEL/CentOS 8/7 and Fedora 19 onwards]

Configuración de Cron para cactus

Abra el archivo /etc/cron.d/cacti.

# vi /etc/cron.d/cacti

Descomente la siguiente línea. El script poller.php se ejecuta cada 5 minutos y recopila datos del host conocido que utiliza la aplicación Cacti para mostrar gráficos.

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

Ejecución de la configuración del instalador de Cacti

Finalmente, Cacti está listo, solo vaya a http:// YOUR-IP-HERE/cacti/y siga las instrucciones del instalador a través de las siguientes pantallas. Ingrese los detalles de inicio de sesión predeterminados y presione el botón Enter.

User: admin
Password: admin

A continuación, cambie la contraseña predeterminada de Cacti.

Acepte el contrato de licencia de Cacti.

A continuación, la pantalla muestra Comprobaciones previas a la instalación para la instalación de Cacti, corrija la configuración sugerida en su archivo /etc/php.ini como se muestra y reinicie Apache después de realizar los cambios.

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

De manera similar, también debe otorgar acceso a la base de datos de MySQL TimeZone para el usuario Cacti, de modo que la base de datos se llene con información global de TimeZone.

mysql> use mysql;
mysql> GRANT SELECT ON mysql.time_zone_name TO [email protected];
mysql> flush privileges;

Elija el tipo de instalación como "Nueva instalación".

Asegúrese de que todos los siguientes permisos de directorio sean correctos antes de continuar.

Asegúrese de que todos estos valores de Versiones y ubicaciones binarias críticas sean correctos antes de continuar.

Elija el perfil de fuente de datos predeterminado que se utilizará para las fuentes de sondeo.

Por favor, elija las plantillas de dispositivo que desea utilizar después de la instalación de Cacti.

Establezca Server Collation en su archivo de configuración MySQL /etc/my.cnf en la sección [mysqld] como se muestra.

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

Su servidor Cacti está casi listo. Confirme que está feliz de continuar.

Para obtener más información y uso, visite la página de cactus.