En este artículo veremos cómo instalar Cacti en CentOS 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.
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 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.
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.13.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.13.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.13/ /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 y preparar la base de datos.
Configuración del servicio
Configuramos el servicio de bases de datos editando su archivo de configuración principal. 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_flush_log_at_timeout=3 innodb_read_io_threads=32 innodb_write_io_threads=16 innodb_buffer_pool_instances=10 innodb_io_capacity=5000 ...
Terminados los ajustes, cerramos el archivo y reiniciamos:
~$ sudo systemctl restart mariadb
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.
Preparación de la base de datos para Cacti
Conectamos al servicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base:
> create database cacti;
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 cactiuser -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-ldap php-posix 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 sobre temas como CentOS 8 o Cacti, invitándonos a un café:
O también puedes dejar 1 $ de propina con PayPal:
¡Gracias!