Cacti es una poderosa herramienta de gráficos y monitoreo de red basada en la web, gratuita y de código abierto. Se utiliza para monitorear el rendimiento del sistema, la carga de la CPU y la utilización del ancho de banda de la red en un formato de gráfico. Le permite sondear servicios a intervalos predeterminados y graficar los datos resultantes. Es una interfaz completa para RRDTool, escrita 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 monitoreo Cacti en CentOS 8.
Requisitos
- Un servidor que ejecuta CentOS 8 con un mínimo de 2 GB de RAM.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Primero, se recomienda actualizar los paquetes de su sistema a la última versión. Puede actualizarlos con el siguiente comando:
dnf update -y
Una vez que todos los paquetes estén actualizados, instale otras dependencias requeridas 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, inicie el servicio SNMP y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start snmpd
systemctl enable snmpd
Una vez que haya terminado, puede continuar con el siguiente paso.
Instalar servidor LAMP
A continuación, deberá instalar el servidor web Apache, el servidor de base de datos MariaDB, PHP y otras extensiones de PHP necesarias en su sistema. Puede 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 que todos los paquetes estén instalados, inicie el servicio HTTP y MariaDB y habilítelos para 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, deberá 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 haya terminado, puede continuar con el siguiente paso.
Configurar base de datos MariaDB
A continuación, deberá crear una base de datos y un usuario para Cacti. Primero, inicie sesión en el shell de MariaDB con el siguiente comando:
mysql
Una vez que inicie sesión, cree 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 [email protected] IDENTIFIED BY 'password';
A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
A continuación, deberá editar el archivo de configuración de MariaDB y modificar algunas configuraciones. Puede hacerlo editando el archivo /etc/my.cnf.d/mariadb-server.cnf.
nano /etc/my.cnf.d/mariadb-server.cnf
Agregue 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
Guarde y cierre el archivo cuando haya terminado, luego reinicie el servicio MariaDB para aplicar los cambios:
systemctl restart mariadb
A continuación, importe 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, inicie sesión en MySQL y permita que el usuario de cactus acceda a la tabla mysql.time_zone_name:
mysql
Una vez que inicie sesión, ejecute el siguiente comando para otorgar el acceso:
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected];
A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Una vez que haya terminado, puede continuar con el siguiente paso.
Instalar y configurar Cacti
De forma predeterminada, Cacti no está disponible en el repositorio predeterminado de CentOS 8. Por lo tanto, deberá agregar el repositorio EPEL a su sistema.
Puede instalarlo con el siguiente comando:
dnf install epel-release -y
Una vez que el repositorio esté instalado, instale Cacti con el siguiente comando:
dnf install cacti -y
Después de instalar Cacti, verifique la instalación de Cacti con el siguiente comando:
rpm -qi cacti
Deberías obtener el siguiente resultado:
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, importe 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, edite el archivo de configuración de Cacti y defina la configuración de su base de datos:
nano /usr/share/cacti/include/config.php
Cambie las siguientes líneas que coincidan con su 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;
Guarde y cierre el archivo cuando haya terminado, luego cree un archivo Cron para Cacti.
nano /etc/cron.d/cacti
Agregue la siguiente línea:
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
Guarde y cierre el archivo cuando haya terminado.
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Apache para Cacti
A continuación, deberá crear un archivo de configuración de host virtual de Apache para Cacti. Puedes crearlo con el siguiente comando:
nano /etc/httpd/conf.d/cacti.conf
Encuentra 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 reemplácelos con 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>
Guarde y cierre el archivo cuando haya terminado, luego reinicie el servicio Apache y PHP-FPM para aplicar los cambios:
systemctl restart httpd
systemctl restart php-fpm
También puede comprobar el estado de Apache con el siguiente comando:
systemctl status httpd
Deberías obtener el siguiente resultado:
? 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 puede continuar con el siguiente paso.
Configurar Firewall y SELinux
A continuación, deberá permitir los servicios http y https a través del cortafuegos. Puede 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 deberá deshabilitar SELinux en su sistema.
Puede deshabilitar SELinux editando el archivo /etc/selinux/config:
nano /etc/selinux/config
Busque la siguiente línea:
SELINUX=enforcing
Y reemplácelo con la siguiente línea:
SELINUX=permissive
Guarde y cierre el archivo y luego reinicie el sistema para aplicar los cambios.
Acceder a la interfaz web de Cacti
Ahora, abra su navegador web y acceda a la interfaz web de Cacti usando la URL http://your-server-ip/cacti. Será redirigido a la página de inicio de sesión de Cacti:
Proporcione el nombre de usuario y la contraseña predeterminados como administrador/administrador y luego haga clic en Iniciar sesión botón. Debería ver la pantalla de cambio de contraseña de Cacti:
Proporcione su contraseña predeterminada, una nueva contraseña y haga clic en Guardar botón. Debería ver la página del acuerdo de licencia de Cacti:
Acepte el acuerdo de licencia y haga clic en Comenzar botón. Debería ver la página de comprobación previa a la instalación:
Asegúrese de que todos los paquetes estén instalados y luego haga clic en Siguiente botón. Debería ver la siguiente página:
Seleccione su tipo de instalación y haga clic en Siguiente botón. Debería ver la página de verificación de permisos del directorio:
Haga clic en Siguiente botón. Deberías ver la siguiente página.
Haga clic en Siguiente botón. Debería ver la página Validación de entrada:
Marque la casilla de verificación y haga clic en Siguiente botón. Deberías ver la página de Perfil:
Proporcione su rango de red y haga clic en Siguiente botón. Debería ver la página de configuración de la plantilla:
Seleccione su plantilla requerida y haga clic en Siguiente botón. Debería ver la siguiente página:
A continuación, abra su terminal, inicie sesión en MySQL shell y cambie 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, vuelva al asistente de instalación de Cacti y haga clic en Siguiente botón. Debería ver la siguiente página:
Confirme la instalación y haga clic en Instalar botón. Una vez finalizada la instalación, debería ver la siguiente página:
Haga clic en Obtener Iniciado botón. Deberías ver el tablero de Cacti en la siguiente página:
Haga clic en Gráficos => Máquina Linux local . Debería ver la información sobre su máquina local en la siguiente página:
Conclusión
¡Felicidades! Ha instalado y configurado con éxito la herramienta de monitoreo de red Cacti en Ubuntu 20.04. Ahora puede instalar el agente Cacti en la máquina del cliente y agregarlo al servidor Cacti y comenzar a monitorear. Siéntase libre de preguntarme si tiene alguna pregunta.