Cacti es una herramienta con la que podremos monitorizar cualquier equipo de red que soporte el protocolo SNMP, ya sea un switch, un router o un servidor Linux. Siempre que tengan activado el protocolo SNMP y conozcamos las MIBs con los distintos OIDs (identificadores de objeto) que podemos monitorizar y visualizar. Cacti es una aplicación que funciona bajo entornos Apache + PHP + MySQL, por tanto, permite una visualización y gestión de la herramienta a través del navegador web. La herramienta utiliza RRDtool, que captura los datos y los almacena en una base de datos, permitiendo visualizar de forma gráfica los datos capturados mediante MRTG.

Algunas buenas características de Cacti incluyen:

  • Visualización rápida de métricas.
  • Soporte para múltiples métodos de adquisición de datos.
  • Soporte para plantillas gráficas avanzadas.
  • Funcionalidad de gestión de usuarios con ACL.

Cacti proporciona una interfaz web intuitiva y fácil de usar para administrar el monitoreo y las configuraciones de la red. Siguiendo el paso a paso de este tutorial podrás instalarlo en tu CentOS.

Paso 1: Instalación de herramientas y dependencias necesarias

Vamos a necesitar instalar, como pre-requisito, las herramientas de desarrollo y después los paquetes de snmp y rrdtool.

dnf group install "Development Tools" -y
dnf install -y net-snmp net-snmp-utils rrdtool

Paso 2: Instale php y las extensiones requeridas

Instalación de PHP y extensiones requeridas por Cacti.

dnf install @php -y
dnf install -y php php-{mysqlnd,curl,gd,intl,pear,recode,ldap,xmlrpc,snmp,mbstring,gettext,gmp,json,xml,common}

Una vez instalado PHP, necesitamos establecer zona horaria PHP dentro del /etc/php.iniarchivo. Veamos como esta por defecto haciendo:

grep date.timezone /etc/php.ini

2.1 – Editamos el archivo y cambiamos estos valores

nano /etc/php.ini

Ajustamos los siguientes valores

memory_limit = 800M
max_execution_time = 60
date.timezone = America/Argentina/Buenos_Aires

2.2 – Iniciar php-fpmservicio

systemctl enable --now php-fpm

Paso 3: Instalar el servidor web Apache

dnf install @httpd -y

3.1 – Inicie y habilite el servicio para comenzar en el arranque.

systemctl enable --now httpd

3.2 – Permita puertos http y https en el firewall.

firewall-cmd --add-service = {http, https} --permanente 
firewall-cmd --reload

Paso 4: Instalar y configurar el servidor de bases de datos

dnf module install mariadb

4.1 – Habilitamos el servicio

systemctl enable --now mariadb

4.2 – Lanzamos la instalación segura

mysql_secure_installation

Le damos enter y nos aseguramos de configurar:

  • Establecer contraseña de usuario root de la base de datos
  • Eliminar usuarios anónimos
  • No permitir inicios de sesión remotos de usuario root
  • Eliminar la base de datos de prueba y acceder a ella

4.3 – Después de la instalación del servidor de la base de datos, cree una base de datos y un usuario para la herramienta Cacti Monitoring.

mysql -u root -p

4.4 – Creamos la base de datos, tené en cuenta de cambiar NKsistemas por una constraseña segura:

CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cacti'@'localhost' IDENTIFIED BY 'NKsistemas';
FLUSH PRIVILEGES;
exit

4.5 – Vamos a tunear la base de MariaDB para Cacti

Vamos a agregar unas lineas en la sección [mysqld] en el archivo /etc/my.cnf.d/mariadb-server.cnf, solo pegamos lo siguiente debajo de lo que ya existe.

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=64M
tmp_table_size=64M
join_buffer_size=64M
innodb_buffer_pool_size=512M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=5

4.6 – Para que tome los cambios reiniciamos el servicio de mariadb

systemctl restart mariadb

Paso 5: Descarga e instalación de cacti

5.1 – Descargamos Cacti

mkdir cacti && cd cacti
curl -SL https://www.cacti.net/downloads/cacti-latest.tar.gz | tar --strip 1 -xzf -

Movemos la carpeta

cd ..
mv cacti/ /var/www/html/

5.2 – Importamos la base de Cacti

mysql -u root -p cacti < /var/www/html/cacti/cacti.sql

5.3 – Configuramos el timezone de MYSQL

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

5.4 – Le damos permisos a cacti dentro de la base para que pueda usar los timezone

mysql -u root -p

Y cargamos lo siguiente:

GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
FLUSH PRIVILEGES;
QUIT

5.5 – Configuramos SELINUX

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/cacti(/.*)?"
restorecon -Rv /var/www/html/cacti

5.6 – Reiniciamos los servicios de apache para que aplique los cambios

systemctl restart httpd php-fpm

5.7 – Configurando Cacti

Editamos el archivo /var/www/html/cacti/include/config.php
Y le cargamos los siguientes datos

$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'NKsistemas';
$database_port = '3306';

5.8 – Creamos el archivo de log para Cacti

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

Le damos permisos

chown -R apache:apache /var/www/html/cacti

5.9 – Configuramos cron

crontab -u apache -e

Pegamos lo siguiente

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

Salimos presionando tecla Esc, :wq!

Paso 6: Instalación web

Vamos a aaceder mediante el navegador web, http://localhost/cacti, al momento de ingresar nos pide usuario y contraseña que por defecto cacti usa admin // admin.

6.2- Y nos pedirá cambiar la contraseña por defecto. Debemos usar una mayúscula.

6.3- Aceptamos los terminos de licencia.

6.4- Verificamos los requisitos pre-instalación, tengo algunos alertas que no me impiden seguir, más adelante los cambiaré.

6.5- Seleccionamos tipo de instalación, le damos Next.

6.6- Verificamos que todos los permisos estén OK.

6.7- Verificamos que este todo en orden en ubicación de binarios y versiones

6.8- Cargamos el rango de nuestra red y clic en Next

6.9- Dejamos tildados todos los templates, y Next.

6.10- Dejamos todo como esta y Next.

6.11- Tildamos Confirm Installation, y next.

6.12- Esperamos que termine de cargar y cuando nos de Get Started, ingresamos a la plataforma.

6.13- Finalmente si todo salió bien deberíamos ver la pantalla para empezar a cargar dispositivos.

Paso 7: Monitoreando el servidor de linux con cacti

Finalmente para monitorear nuestro linux, habilitamos el servicio de snmpd

systemctl enable --now snmpd

Deja un comentario