En esta entrada veremos cómo instalar Cacti en FreeBSD 12 paso a paso, de modo que puedas monitorizar los recursos y sistemas de tu red gracias a esta potente aplicación web.
Existen otras versiones de este tutorial para distintos sistemas operativos que puedes encontrar en el buscador de nuestro sitio.
Contenido
Antes de instalar Cacti en FreeBSD 12
Para poder completar esta guía de instalación de Cacti en FreeBSD 12 será necesario partir de los siguientes requerimientos mínimos:
- Un sistema FreeBSD 12 actualizado.
- Una pila o entorno tipo FAMP (servicio web con PHP y bases de datos).
- El paquete ca_root_nss.
- Acceso a consola con un usuario con permisos de sudo.
- Conexión a Internet.
Si aún no dispones del entorno mínimo necesario, seguramente te resulte de utilidad nuestra guía de instalación de la pila FAMP en FreeBSD 12.
Cómo descargar Cacti para FreeBSD 12
Vamos a descargar Cacti para FreeBSD 12 desde el sitio oficial ya que, aunque existen paquetes en los repositorios del sistema, están basados en PHP 8.0 y podrían causar problemas en caso de usar versiones distintas.
Encontraremos dos formatos de paquete, una versión .tar.gz y otra .zip, siendo el paquete .tar.gz el que descargaremos en este tutorial, bien desde el navegador, bien desde consola utilizando el enlace con el comando fetch:
~$ fetch https://www.cacti.net/downloads/cacti-1.2.20.tar.gz
Cómo instalar Cacti en FreeBSD 12
Para instalar Cacti en FreeBSD 12 será necesario completar una lista de tareas orientadas a preparar el sistema, a fin de que el instalador web cumpla su tarea sin encontrar problemas. Veamos cuáles son estas tareas.
Archivos de Cacti
Descomprimimos el paquete de Cacti directamente en la ubicación que más convenga para la integración con el servicio web:
~$ sudo tar xf cacti-1.2.20.tar.gz -C /usr/local/www/apache24/
Se crea una nueva subcarpeta que contiene números de versión en su nombre, así que puede ser una buena idea crear un enlace simbólico sin números de versión que facilitará la instalación y el mantenimiento:
~$ sudo ln -s /usr/local/www/apache24/cacti-1.2.20/ /usr/local/www/apache24/cacti
Como Cacti necesita escribir en su propia carpeta de instalación, cambiamos el propietario de la misma y su contenido al usuario con el que corre el servicio web en FreeBSD 12:
~$ sudo chown -R www:www /usr/local/www/apache24/cacti/
Herramientas adicionales
Es importante instalar la herramienta rrdtool (Round Robin Database Tools), que obtendremos de los repositorios de FreeBSD 12, por lo que actualizamos las listas de paquetes:
~$ sudo pkg update
E instalamos el paquete:
~$ sudo pkg install -y rrdtool
Base de datos
Cacti se apoya en el servicio de bases de datos que tengamos instalado en FreeBSD.
En el caso de MariaDB/MySQL es importante realizar algunos ajustes de configuración en el archivo my.cnf.
Para MariaDB lo creamos (o editamos si ya existía):
~$ sudo nano /usr/local/etc/mysql/conf.d/server.cnf
Hay que asegurarse de que la sección server o mysqld quede con los siguientes valores:
... [mysqld] ... character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_doublewrite = OFF innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_io_capacity = 5000 ...
Para MySQL:
~$ sudo nano /usr/local/etc/mysql/my.cnf
Y añadimos o editamos:
... [mysqld] ... character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_io_capacity = 5000 ...
En cualquier caso, guardados los cambios reiniciamos el servicio:
~$ sudo service mysql-server restart
Hecho esto conectaremos al servicio para crear la base de datos y el usuario de Cacti, para lo que podemos usar el cliente de consola mysql y algún usuario administrador:
~$ mysql -u root -p
Creamos la base de datos:
> create database cacti charset utf8mb4 collate utf8mb4_unicode_ci;
Para MariaDB o MySQL 5 creamos el usuario de la forma habitual:
> create user cactiuser@localhost identified by 'XXXXXXXX';
Pero si se trata de MySQL 8 es muy recomendable 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 daremos permiso de consulta a la tabla de zonas horarias de MySQL:
> grant select on mysql.time_zone_name to cactiuser@localhost;
Y podemos cerrar la conexión:
> exit
No basta con crear la base de datos para Cacti, además hay que inicializarla con un pequeño archivo SQL que proporciona el paquete:
~$ mysql -u root -p cacti < /usr/local/www/apache24/cacti/cacti.sql
Por último, con respecto a la tabla de zonas horarias de MySQL, por defecto suele estar vacía, así que conviene cargarla mediante la herramienta mysql_tzinfo_to_sql, operación que habrá que realizar con algún usuario administrador de MySQL:
~$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Configuración de Cacti
Para que Cacti pueda conectar con la base de datos, editaremos su archivo de configuración principal:
~$ sudo nano /usr/local/www/apache24/cacti/include/config.php
Buscamos la sección de conexión a 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 = ''; ...
Cambiaremos los valores que necesitamos, aunque en este tutorial sólo sería necesario cambiar el valor de la contraseña, ya que hemos creado la base de datos y el usuario con los nombres por defecto:
... $database_password = 'XXXXXXXX'; ...
Guardamos los cambios y cerramos el archivo.
PHP
Cacti requiere la presencia en FreeBSD 12 de una buena colección de extensiones, así que las instalaremos (si tu versión de PHP es otra, cambia oportunamente los nombres de los paquetes siguientes), para la versión 7.4:
~$ sudo pkg install -y php74-ctype php74-filter php74-gd php74-gettext php74-gmp php74-json php74-ldap php74-mbstring php74-openssl php74-pdo_mysql php74-posix php74-session php74-simplexml php74-snmp php74-sockets php74-xml php74-zlib
O para la versión 8.0:
~$ sudo pkg -y install php80-ctype php80-filter php80-gd php80-gettext php80-gmp php80-ldap php80-mbstring php80-pdo_mysql php80-posix php80-session php80-simplexml php80-snmp php80-sockets php80-xml php80-zlib
Por otro lado, editamos el archivo php.ini para realizar un ajuste:
~$ sudo nano /usr/local/etc/php.ini
Buscamos la directiva memory_limit:
... memory_limit = 128M ...
Y cambiamos su valor a 400M:
... memory_limit = 400M ...
Aplicamos todos estos cambios recargando la configuración del servicio web o PHP, según corresponda:
~$ sudo service apache24 reload
Cron
Para lanzar periódicamanete la monitorización de Cacti, cremos una tarea para el servicio Cron de FreeBSD 12:
~$ sudo nano /etc/cron.d/cacti
La tarea será la siguiente (es una única línea):
*/5 * * * * www /usr/local/bin/php /usr/local/www/apache24/cacti/poller.php > /dev/null 2>&1
Tras guardar los cambios, cada 5 minutos el usuario www lanzará la monitorización (y se generarán nuevos datos y gráficos).
Servicio web
Para hacer navegable la aplicación Cacti, creamos un archivo de configuración de Apache:
~$ sudo nano /usr/local/etc/apache24/Includes/cacti.conf
La configuración será básicamente la siguiente:
Alias /cacti /usr/local/www/apache24/cacti <Directory /usr/local/www/apache24/cacti> Require all granted php_value max_execution_time 60 </Directory>
Guardamos los cambios.
El contenido es el alias para hacer navegable la aplicación, la aplicación del permiso de acceso y un ajuste de PHP exclusivo para Cacti.
Será necesario recargar la configuración del servicio web para aplicar la nueva configuración de Cacti:
~$ sudo service apache24 reload
Instalador web
Finalizadas las tareas de preparación, es el momento de lanzar el instalador web de Cacti en FreeBSD 12 desde un navegador, para lo que usaremos la dirección IP o nombre DNS del servidor y el alias que hemos creado.
Por ejemplo, el servidor FreeBSD 12 sobre el que hemos realizado este artículo es accesible en el subdominio o nombre DNS freebsd12.local.lan, y hemos definido un alias /cacti, por lo que usamos http://freebsd12.local.lan/cacti como URL:
Se mostrará una página de inicio de sesión, siendo las credenciales de acceso por defecto como usuario admin y como contraseña admin.
Estas credenciales son temporales, y habrá que cambiar inmediatamente la contraseña:
Volvemos a introducir la contraseña admin y a continuación creamos la contraseña definitiva.
Se nos muestra el acuerdo de licencia de Cacti:
Además de aceptar expresamente el acuerdo de licencia de Cacti para poder continuar, podremos elegir el idioma que nos interese para realizar la instalación.
Una página de comprobación de requisitos nos mostrará el estado en que se encuentran:
Si has seguido los pasos anteriores, todos los requisitos se cumplirán y podremos continuar.
El siguiente paso es elegir el tipo de instalación:
En este caso elegiremos «Nuevo servidor primario«, que es la opción para montar un «servidor» principal de Cacti.
Una nueva revisión se encargará de comprobar los permisos de los directorios de Cacti:
Los permisos de los directorios deberían estar correctos.
También se comprobarán las versiones y ubicaciones de las herramientas de FreeBSD 12 que usa Cacti:
Todas las herramientas deberían aparecer como instaladas y con las versiones adecuadas.
Desde la introducción del sistema de listas blancas para la ejecución de la monitorización de Cacti, es necesario confirmar que sabemos qué implica este método:
Cuando termine la instalación realizaremos las acciones recomendadas en este paso.
Seguidamente configuramos el escaneo:
Es importante que «Rango de Red» refleje el rango al que pertenece nuestra red local.
Habrá que seleccionar las plantillas que queremos instalar:
Es buena idea dejarlas todas activadas.
Continuamos con una nueva comprobación de las bases de datos
Es la última comprobación que realiza el instalador de Cacti.
Para poder iniciar la instalación será necesario confirmarlo:
Se lanzará el proceso de instalación, que tomará algunos instantes, mostrándose el progreso de la misma:
Una vez terminada la instalación, con el registro de todas las operaciones presente, se mostrará un enlace «Comenzar» para acceder a la aplicación:
Accedemos directamente a la página principal de Cacti con la sesión ya iniciada:
En el momento de instalar Cacti la única máquina monitorizada es el propio sistema FreeBSD 12 local, y podemos comprobar que todo funciona como debería visitando la solapa «Gráficos» del menú superior, expandiendo «Default Tree» en el panel lateral y seleccionando «Local Linux Machine«:
Recuerda que la monitorización se realiza de forma periódica, por lo que si visitas esta sección inmediatemente después de realizar la instalación es posible que no haya gráficos generados aún. Sin embargo, la página se refresca de forma automática, por lo que en unos minutos deberían estar disponibles los primeros datos.
Post-instalación de Cacti en FreeBSD 12
Este es un buen momento para realizar los ajustes sobre el sistema de listas blancas de Cacti que quedaron pendientes.
Editamos el archivo de configuración de Cacti:
~$ sudo nano /usr/local/www/apache24/cacti/include/config.php
Buscamos esta línea:
... //$input_whitelist = '/usr/local/etc/cacti/input_whitelist.json'; ...
Y la activamos eliminando los caracteres // al inicio de línea:
... $input_whitelist = '/usr/local/etc/cacti/input_whitelist.json'; ...
Guardamos los cambios.
Creamos un directorio de datos de configuración de Cacti:
~$ sudo mkdir /usr/local/etc/cacti
Y lanzamos los scripts de mantenimiento:
~$ sudo php -q /usr/local/www/apache24/cacti/cli/input_whitelist.php --update
Este otro:
~$ sudo php -q /usr/local/www/apache24/cacti/cli/input_whitelist.php --audit
Y finalmente:
~$ sudo php -q /usr/local/www/apache24/cacti/cli/input_whitelist.php --update --push
Conclusión
Ahora que sabes cómo instalar Cacti en FreeBSD 12 ya puedes monitorizar tus sistemas y dispositivos de red con esta reconocida aplicación web.
Si te ha quedado alguna duda o pregunta, tienes sugerencias de mejora del tutorial, crees que ha llegado el momento de actualizarlo, o quieres notificar algún error, deja un comentario y lo revisaré gustosamente.
¡Apoya comoinstalar.me!
¿Ya monitorizas tu red local y sus dispositivos gracias a esta guía de instalación de Cacti en FreeBSD? Si es así y quieres agradecérnoslo, puedes contribuir de varias formas al mantenimiento de este sitio y la creación de más artículos y tutoriales, como dejando 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, invitándome a un café:
¡Gracias!
Actualizado a la versión 1.2.20.