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.
Contenido
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:
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:
Iniciamos sesión con el usuario admin y la contraseña temporal admin.
Nada más autenticarnos, habrá que cambiar la contraseña:
Se presenta el acuerdo de licencia de Cacti:
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:
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:
Lo habitual es elegir un servidor primario.
También se revisarán los permisos de los directorios de Cacti:
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«.
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«:
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!
Actualizado a la versión 1.2.20.