Cómo instalar Cacti en CentOS 8

En este artículo veremos cómo instalar Cacti en CentOS 8 (CentOS Stream 8) paso a paso, de modo que puedas monitorizar tanto tu servidor o VPS CentOS como máquinas de la red local gracias a este popular software de monitorización.

Existen otros tutoriales como este para otras versiones de CentOS e incluso otros sitemas operativos que puedes encontrar fácilmente con nuestro buscador.

Antes de instalar Cacti en CentOS 8

Para poder seguir esta guía de instalación de Cacti en CentOS 8 debemos cumplir estos requisitos mínimos:

  • Un sistema CentOS 8 (CentOS Stream 8) actualizado.
  • Un entorno o pila tipo LAMP (servicio web con PHP y motor de bases de datos).
  • Acceso a consola con un usuario con permisos de sudo o root.
  • Conexión a Internet.

Si no dispones aún del entorno mínimo sin duda te resultará de interés nuestra guía de instalación de la pila LAMP en CentOS 8.

Necesitaremos algunos paquetes y herramientas que podemos obtener del repositorio de CentOS 8, por lo que actualizamos las listas de paquetes:

~$ sudo yum update

E instalamos estos pre-requisitos:

~$ sudo yum install -y net-snmp-utils policycoreutils-python-utils rrdtool tar wget

Cómo descargar Cacti para CentOS 8

Vamos a descargar Cacti para CentOS 8 desde el sitio web del proyecto, donde encontraremos la última versión estable disponible:

como descargar cacti para centos 8 (centos stream 8)

Encontraremos un paquete en formato .tar.gz que podemos descargar desde el navegador o, como haremos en esta guía, desde consola con el comando wget:

~$ wget https://www.cacti.net/downloads/cacti-1.2.20.tar.gz

Cómo instalar Cacti en CentOS 8

Para poder instalar Cacti en CentOS 8 debemos realizar un buen número de tareas previas para preparar el sistema. Vamos a ver con detalle cómo realizar estos pasos.

Archivos de Cacti

Descomprimimos el paquete que acabamos de descargar directamente en la ruta de instalación que nos interese:

~$ sudo tar xf cacti-1.2.20.tar.gz -C /var/www/

Como la subcarpeta que se crea contiene números de versión en su nombre, la renombraremos, para facilitar el mantenimiento y configuración:

~$ sudo mv /var/www/cacti-1.2.20/ /var/www/cacti

Cacti necesita modificar y crear archivos, así que cambiaremos la propiedad de archivos y carpetas de la aplicación al usuario con el que corre el servicio web en CentOS 8:

~$ sudo chown -R apache: /var/www/cacti/

Necesitaremos editar la configuración por defecto de la aplicación:

~$ sudo nano /var/www/cacti/include/config.php

Buscamos la configuración de la base de datos:

...
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;
$database_ssl_key  = '';
$database_ssl_cert = '';
$database_ssl_ca   = '';
...

Por seguridad cambiaremos la contraseña del usuario de la base de datos:

...
$database_password = 'XXXXXXXX';
...

Si el servidor CentOS 8 es accesible en varios dominios, opcionalmente podríamos configurar la variable cacti_cookie_domain para restringir el acceso a Cacti en un único dominio permitido:

...
//$cacti_cookie_domain = 'cacti.net';
...

Eliminaríamos los dos caracteres / al inicio de línea y sustituiríamos el valor por defecto del dominio:

...
$cacti_cookie_domain = 'centos8.local.lan';
...

Guardamos los cambios y cerramos el archivo.

SELinux

En el caso de tener activado SELinux en CentOS 8, que es lo habitual, debemos crear un contexto de lectura/escritura para el servidor web sobre la carpeta de Cacti:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/cacti(/.*)?"

Aplicamos este contexto con el comando restorecon:

~$ sudo restorecon -R /var/www/cacti/

Base de datos

Cacti trabaja sobre el servicio de base de datos de CentOS 8, que deberá ser del tipo MariaDB/MySQL. Debemos realizar algunos ajustes configurando el servicio de bases de datos editando su archivo de configuración principal y posteriormente preparar la base de datos.

Configuración del servicio en MariaDB

En el caso de MariaDB procedente de los repositorios de CentOS 8 sería el archivo mariadb-server.cnf:

~$ sudo nano /etc/my.cnf.d/mariadb-server.cnf

Añadimos o modificamos las siguientes directivas en la sección server o en la sección mysqld:

...
[server]
...
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
join_buffer_size=31M
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_buffer_pool_size=1024M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=9
innodb_io_capacity=5000
...

Terminados los ajustes, cerramos el archivo y reiniciamos el servicio:

~$ sudo systemctl restart mariadb

Configuración del servicio en MySQL

Editamos el archivo de configuración mysql-server.cnf:

~$ sudo nano /etc/my.cnf.d/mysql-server.cnf

Y al final del mismo añadimos las siguientes directivas:

...
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
join_buffer_size=31M
innodb_buffer_pool_size=1024M
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=9
innodb_io_capacity=5000

Guardamos el archivo y reiniciamos el servicio:

~$ sudo systemctl restart mysqld

Preparación de la base de datos para Cacti

Cacti usa la base de zonas horarias de MariaDB/MySQL, que normalmente no suele contener datos, por lo que la cargaremos con ayuda del comando mysql_tzinfo_to_sql:

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

Es normal que se produzcan algunos avisos durante el proceso.

Conectamos al servicio con el cliente de consola mysql y un usuario administrador:

~$ mysql -u root -p

Creamos la base:

> create database cacti charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario, para MariaDB o MySQL 5.x:

> create user cactiuser@localhost identified by 'XXXXXXXX';

Para MySQL 8 este paso es similar, pero conviene especificar el plugin de autenticación adecuado:

> create user cactiuser@localhost identified with mysql_native_password by 'XXXXXXXX';

Concedemos los permisos necesarios al usuario sobre la base:

> grant all privileges on cacti.* to cactiuser@localhost;

También concedemos permiso de acceso sobre la tabla mysql.time_zone_name:

> grant select on mysql.time_zone_name to cactiuser@localhost;

Podemos ya cerrar la sesión:

> exit

Finalmente debemos inicializar la base de datos para Cacti, usando para ello un script SQL que incorpora Cacti:

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

PHP

Editamos el archivo php.ini para realizar algunos ajustes que necesita Cacti:

~$ sudo nano /etc/php.ini

Y modificamos los valores de las siguientes directivas:

...
max_execution_time = 60
...
memory_limit = 400M
...

Cacti también requiere la presencia en CentOS 8 de ciertas extensiones:

~$ sudo yum install -y php-gd php-gmp php-json php-ldap php-mbstring php-posix php-simplexml php-snmp

Servicio web

En este tutorial hemos instalado Cacti en una ruta de CentOS 8 que no es navegable directamente, por lo que debemos crear una configuración de Apache que permita la navegación:

~$ sudo nano /etc/httpd/conf.d/cacti.conf

El contenido será un alias que puedes llamar con el nombre que te interese, auque en este ejemplo será cacti:

Alias /cacti /var/www/cacti

Guardamos el archivo y recargamos la configuración del servicio:

~$ sudo systemctl reload httpd

Cron

Cacti debe lanzar periódicamente la herramienta de monitorización que obtendrá la información y creará los gráficos de estado. Para ello creamos una tarea para el servicio Cron:

~$ sudo nano /etc/cron.d/cacti

Con el contenido siguiente:

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

Cada 5 minutos se lanzará el proceso de monitorización.

Instalador web de Cacti para CentOS 8

Vamos a acceder al instalador web de Cacti en CentOS 8 desde el navegador, para lo que usaremos el alias que creamos anteriormente añadido a la dirección IP, nombre DNS o dominio permitido.

Por ejemplo, la máquina CentOS 8 sobre la que hemos preparado este tutorial es accesible en el subdominio centos8.local.lan y hemos creado un alias /cacti, así que podemos usar http://centos8.local.lan/cacti como URL de acceso al instalador:

como instalar cacti en centos 8 (centos stream 8)

Iniciamos sesión con el usuario admin y la contraseña temporal admin.

Nada más autenticarnos, habrá que cambiar la contraseña:

instalar cacti en centos 8 (centos stream 8)

Se presenta el acuerdo de licencia de Cacti:

instalacion de cacti en centos 8 (centos stream 8)

Hay que aceptar expresamente el acuerdo de licencia, sin olvidar previamente elegir el idioma en que queremos instalar Cacti.

Se mostrará la lista de requisitos previos a la instalación:

configurar centos 8 para cacti (centos stream 8)

Si has seguido los pasos anteriores, deberán cumplirse si no todos, los requistos imprescindibles para poder continuar.

Continuamos con la selección del tipo de instalación:

instalador de cacti para centos 8 (centos stream 8)

Lo habitual es elegir un servidor primario.

También se revisarán los permisos de los directorios de Cacti:

instalando cacti en centos 8 (centos stream 8)

Una nueva comprobación revisará las versiones y ubicaciones de las herramientas de CentOS 8 que usa Cacti:

Se nos informará de los riesgos que puede suponer el uso del sistema de monitorización a través de consola:

Para evitar problemas se nos recomienda activar y utilizar el sistema de listas blancas tras la instalación.

El siguiente paso es la configuración del intervalo de sondeo de datos:

Podemos dejar los valores por defecto, ya que en este ejemplo hemos configurado la tarea de Cron para ser lanzada cada 5 minutos.

A continuación podremos seleccionar las plantillas de dispositivos que nos interesen:

Ante la duda, puedes dejarlas todas seleccionadas para su instalación.

Una última comprobación revisará el formato de la base de datos:

Y por fin todo estará listo para realizar el proceso de instalación:

Tendremos que confirmar la instalación para poder lanzarla.

Comenzará el proceso, que irá arrojando información de cada uno de los pasos realizados:

Tras unos instantes el proceso termina:

Podemos examinar el registro de tareas o directamente acceder a la página principal de la aplicación, mediante el enlace «Comenzar«.

cacti para centos 8 (centos stream 8)

Para comprobar el funcionamiento del sondeo y la integración con la aplicación web, visitaremos la sección «Gráficos«, expandimos en el panel lateral «Default Tree» y accedemos a «Local Linux Machine«:

cacti en centos 8 (centos stream 8)

Dependiendo del tiempo que haya pasado desde la configuración de la tarea de Cacti para Cron los primeros gráficos de la máquina local CentOS 8 podrán o no estar disponibles. Estén listos o no, se irán refrescando cada pocos minutos, de modo que deberíamos poder ver la información actualizada.

Conclusión

Ahora que ya sabes cómo instalar Cacti en CentOS 8 ya puedes monitorizar fácilmente tus sistemas gracias a su potente y visual interfaz gráfica.

Si tienes dudas o preguntas, sugerencias, notificaciones de errores, etc. puedes dejar un comentario que revisaremos lo antes posible.

¡Apoya comoinstalar.me!

¿Ya supervisas tu sistema gracias a esta guía de instalación de Cacti en CentOS 8? Si es así y te apetece agradecérnoslo puedes hacerlo ayudando al mantenimiento de este sitio y la creación de más tutoriales y guías dejando una propina desde 1 $ con PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

1 comentario en «Cómo instalar Cacti en CentOS 8»

Deja un comentario