Monitoreo de Red · 19 min read · Nov 03, 2025
Cómo instalar la herramienta de monitoreo SNMP Cacti en Debian 9
Este tutorial te mostrará cómo instalar y configurar la herramienta de monitoreo de red Cacti desde la fuente para asegurarte de que obtienes la última versión en Debian 9, nombre en código Stretch.
Cacti es una herramienta de monitoreo de red basada en la web, completamente de código abierto, diseñada para mostrar gráficos de red y sistema a través de RRDtool. Utiliza el protocolo SNMP (Protocolo Simple de Administración de Red) para recopilar y monitorear el tráfico de red de dispositivos de red, como conmutadores, enrutadores, servidores Linux, Unix y Windows u otros tipos de dispositivos basados en red que admiten SNMP.
Requisitos
- Instalación mínima de Debian 9 en una máquina bare-metal o en un servidor privado virtual.
- Una dirección IP estática configurada para una de tus tarjetas de interfaz de red del sistema.
- Acceso a la cuenta root o a un usuario con privilegios de cuenta root a través de sudo.
Configuración inicial
Antes de comenzar a instalar Cacti desde la fuente, primero asegúrate de que tu sistema cumple con todos los requisitos de software para compilar e instalar Cacti. En el primer paso, abre el archivo de lista de fuentes de Debian para editarlo con privilegios de root y agrega los repositorios contrib y non-free como se muestra en el siguiente extracto del archivo.
nano /etc/apt/sources.listEjemplo de archivo sources.list:
*deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
****deb-src http://security.debian.org/debian-security stretch/updates main*
Después de terminar de editar el archivo, guarda y cierra el archivo y actualiza los repositorios y paquetes de software de tu sistema para incorporar los nuevos paquetes, emitiendo los siguientes comandos.
apt updateapt upgrade
A continuación, inicia un nuevo comando para instalar algunas utilidades necesarias que se utilizarán para administrar tu sistema desde la línea de comandos.
apt install wget patch unzip zip bash-completionCacti es una herramienta de monitoreo basada en la web escrita principalmente en el lenguaje de programación del lado del servidor PHP. Para ejecutar los scripts de archivos PHP de Cacti, se debe instalar y funcionar un servidor web, como el servidor HTTP Apache, y un intérprete de PHP. Para instalar el servidor web Apache y el intérprete de PHP junto con todos los módulos PHP requeridos que necesita Cacti para funcionar correctamente, emite el siguiente comando en la consola de tu servidor.
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt
Después de que Apache y PHP hayan sido instalados, prueba si el servidor web está en funcionamiento y escuchando conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.
netstat –tlpnEn caso de que la utilidad de red netstat no esté instalada por defecto en tu sistema Debian, ejecuta el siguiente comando para instalarla.
apt install net-toolsAl inspeccionar la salida del comando netstat, puedes ver que el demonio de apache está escuchando conexiones de red entrantes en el puerto 80.

En caso de que tengas un firewall habilitado en tu sistema, como la aplicación de firewall UFW, deberías agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.
ufw allow WWWo
ufw allow 80/tcpFinalmente, prueba si la página web predeterminada del servidor web Apache se puede mostrar en el navegador de tu cliente visitando la dirección IP de tu máquina Debian a través del protocolo HTTP, como se muestra en la imagen a continuación. Si no conoces la dirección IP de tu máquina, ejecuta los comandos ‘ifconfig‘ o ‘ip a‘. Mi IP en esta configuración es: http://192.168.1.14
En el siguiente paso, necesitamos hacer algunos cambios adicionales en el archivo de configuración predeterminado de PHP para asegurarnos de que la variable file_uploads esté habilitada y la configuración de timezone de PHP esté correctamente configurada y coincida con la ubicación física de tu sistema. Abre el archivo /etc/php/7.0/apache2/php.ini para editar y asegúrate de que las siguientes líneas estén configuradas de la siguiente manera.
*file_uploads = On ****date.timezone = Europe/London*
Reemplaza la variable de zona horaria de acuerdo a tu zona horaria física consultando la lista de zonas horarias proporcionada por la documentación de PHP en el siguiente enlace http://php.net/manual/en/timezones.php
Después de haber realizado los cambios requeridos, crea un archivo de información de PHP y reinicia el demonio de apache para aplicar los cambios emitiendo los siguientes comandos.
echo ''| tee /var/www/html/info.phpsystemctl restart apache2Verifica si la zona horaria de PHP se ha configurado correctamente visitando el script de información de PHP desde un navegador en la siguiente URL (como se ilustra en la imagen a continuación). Desplázate hacia abajo hasta la configuración de fecha para verificar la configuración de la zona horaria de PHP.
La herramienta de monitoreo Cacti almacena configuraciones y datos recopilados en una base de datos RDBMS. En este tutorial, configuraremos Cacti con el backend de base de datos MariaDB. Emite el siguiente comando para instalar el servidor de base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos mysql.
apt install mariadb-server php7.0-mysql
Después de haber instalado MariaDB, verifica que el demonio esté en funcionamiento y escuche conexiones de red en localhost, puerto 3306, ejecutando el comando netstat.
netstat –tlpn | grep mysqlLuego, inicia sesión en la consola de MySQL y asegura la cuenta root de MariaDB emitiendo los siguientes comandos.
mysql -h localhostuse mysql;
update user set plugin='' where user='root';
flush privileges;
exit
En el siguiente paso, asegura MariaDB ejecutando el script mysql_secure_installation proporcionado por el paquete de instalación del repositorio de Debian Stretch. Al ejecutarlo, el script hará una serie de preguntas para asegurar la base de datos de MariaDB, como: cambiar la contraseña de root de MySQL, eliminar usuarios anónimos, deshabilitar inicios de sesión remotos de root y eliminar la base de datos de prueba. Ejecuta el script emitiendo el siguiente comando y asegúrate de escribir sí a todas las preguntas que se hagan para asegurar completamente el demonio de MySQL. Usa la salida del script a continuación como guía.
sudo mysql_secure_installationNOTA: SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MariaDB EN USO DE PRODUCCIÓN! ¡LEE CADA PASO CUIDADOSAMENTE! Para iniciar sesión en MariaDB y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MariaDB, y no has configurado la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.Introduce la contraseña actual para root (presiona enter si no hay):OK, se utilizó la contraseña con éxito, continuando... Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MariaDB sin la autorización adecuada. Ya tienes una contraseña de root configurada, así que puedes responder 'n' de forma segura. ¿Cambiar la contraseña de root? [Y/n] yNueva contraseña:Reingresa la nueva contraseña:¡Contraseña actualizada con éxito!Recargando tablas de privilegios.. ... ¡Éxito! Por defecto, una instalación de MariaDB tiene un usuario anónimo, lo que permite a cualquiera iniciar sesión en MariaDB sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas, y para que la instalación sea un poco más fluida. Deberías eliminarlos antes de pasar a un entorno de producción.¿Eliminar usuarios anónimos? [Y/n] y ... ¡Éxito! Normalmente, solo se debería permitir que root se conecte desde 'localhost'. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.¿Deshabilitar el inicio de sesión remoto de root? [Y/n] y ... ¡Éxito! Por defecto, MariaDB viene con una base de datos llamada 'test' a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debería eliminarse antes de pasar a un entorno de producción.¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] y- Eliminando base de datos de prueba... ... ¡Éxito!- Eliminando privilegios en la base de datos de prueba... ... ¡Éxito!Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.¿Recargar tablas de privilegios ahora? [Y/n] y ... ¡Éxito!Limpiando...¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MariaDB debería estar ahora segura.Gracias por usar MariaDB!Para probar la seguridad de MariaDB, intenta iniciar sesión en la base de datos desde la consola sin contraseña de root. El acceso a la base de datos debería ser denegado si no se proporciona una contraseña para la cuenta root. Si se proporciona la contraseña, el proceso de inicio de sesión debería ser concedido a la consola de MySQL, como se muestra en la captura de pantalla a continuación.
mysql -h localhost -u rootmysql -h localhost -u root –p
Mientras estés conectado a la base de datos de MariaDB, procede a crear una base de datos para la instalación de Cacti y crear el usuario que se utilizará para gestionar la base de datos cacti, emitiendo los siguientes comandos. Reemplaza el usuario y la contraseña de la base de datos cacti según corresponda.
create database cacti;
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';
flush privileges;
exitAdemás, otorga permisos de selección al usuario de la base de datos cacti para la zona horaria de MySQL emitiendo los siguientes comandos. Este es un nuevo requisito para instalar y ejecutar la última versión de Cacti.
mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sqlmysql -u root -p -e 'grant select on mysql.time_zone_name to cacti_user@localhost'
En el siguiente paso, abre el archivo de configuración predeterminado del servidor MySQL y agrega las siguientes líneas como se muestra en el siguiente ejemplo.
nano /etc/mysql/mariadb.conf.d/50-server.cnfAgrega las siguientes líneas al final del archivo 50-server.cnf:
max_heap_table_size = 98M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_buffer_pool_size = 485M
innodb_doublewrite = off
innodb_additional_mem_pool_size = 80M
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16

Para aplicar todos los cambios que hemos realizado hasta ahora, reinicia los demonios de MySQL y Apache y verifica que los demonios estén en funcionamiento emitiendo los siguientes comandos.
systemctl restart mysql apache2systemctl status mysql apache2Configurar el servicio SNMP
El servicio de monitoreo web de Cacti utiliza el protocolo SNMP para recopilar datos y estadísticas de dispositivos. Para instalar el programa SNMP, el servicio de demonio SNMP y SNMP MIBS en tu sistema local Debian 9, emite el siguiente comando con privilegios de root.
apt install snmp snmpd snmp-mibs-downloader
Además, instala la herramienta de registro de datos estándar de la industria RRDtool, que es utilizada por Cacti para mostrar la funcionalidad de gráficos.
apt install rrdtool
A continuación, edita el archivo de configuración SNMP /etc/snmp/snmp.conf y comenta la línea “mibs” agregando un hashtag (#) delante de la línea como se describe en la imagen a continuación.

También configura el acceso remoto y localhost del demonio SNMP, abriendo el archivo snmpd.conf para editar y busca y actualiza las siguientes líneas como se indica:
nano /etc/snmp/snmpd.confDescomenta la línea para escuchar conexiones en todas las interfaces
agentAddress udp:161,udp6:[::1]:161
Agrega las siguientes líneas para permitir consultas SNMP para tu red local a través de la contraseña snmp_string. Reemplaza la contraseña de la cadena de comunidad snmp snmp_string y tu dirección CIDR de red según corresponda.
rocommunity snmp_string localhost
rocommunity snmp_string 192.168.1.0/25**
Opcionalmente, también puedes modificar la variable de contacto y ubicación para proporcionar información sobre tu servidor. Esta información se muestra en el área de notificación de Cacti cuando verificas los detalles de tu servidor. Además, el nombre de host de tu sistema, la versión del kernel y el tiempo de actividad del sistema se muestran en el área de notificación de Cacti.
Para modificar esta información, edita las líneas sysLocation y sysContact en la sección de información del sistema y agrega tus propios valores. Por defecto, los siguientes valores están configurados para sysLocation y sysContact.

sysLocation Sitting on the Dock of the Bay
sysContact Me <[email protected]>Después de haber realizado los cambios adecuados en el archivo snmpd.conf, guarda y cierra el archivo y reinicia el demonio snmp para reflejar los cambios emitiendo los siguientes comandos. Luego verifica el estado del demonio snmp y los puertos que posee en estado de escucha.
systemctl restart snmpd.servicesystemctl status snmpd.servicenetstat -tulpn| grep snmp
Abre el puerto del firewall para SNMP:
ufw allow 161/udpPara verificar que el demonio SNMP está funcionando como se espera y recupera todos los valores SNMP bajo el árbol de memoria para localhost, ejecuta el siguiente comando.
snmpwalk -v 2c -c snmp_string localhost memory
Instalar Cacti-Spine
Cacti-Spine es un reemplazo para el poller cmd.php predeterminado, escrito en C para un tiempo de ejecución más rápido. Para compilar e instalar el pooler Cacti-Spine desde las fuentes en Debian 9, primero, ejecuta el siguiente comando para instalar todas las dependencias requeridas en el sistema.
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-devA continuación, descarga la última versión del archivo comprimido tar de Cacti-Spine con la utilidad wget, extrae el archivo tarball e ingresa al directorio extraído de cacti-spine emitiendo los siguientes comandos.
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gztar xfz cacti-spine-latest.tar.gzcd cacti-spine-1.1.24/Ahora, compila e instala la utilidad Cacti-Spine desde las fuentes emitiendo los siguientes comandos.
./bootstrap./configuremakemake installCacti-Spine se instalará en la ruta del sistema /usr/local/spine/. Spine recomienda que configures el bit SUID para el binario spine para admitir solicitudes de ping ICMP.
chown root:root /usr/local/spine/bin/spinechmod +s /usr/local/spine/bin/spineTambién debes conectar Spine a la base de datos cacti editando el archivo de configuración como se muestra en el siguiente extracto del archivo.
nano /usr/local/spine/etc/spine.confEjemplo de archivo spine.conf. Reemplaza las credenciales según corresponda. Usa las mismas credenciales de base de datos que configuraste para Cacti.
DB_Host localhost
DB_Database cacti
DB_User user_cacti
DB_Pass pass_cacti
DB_Port 3306
DB_PreG 0
Instalar Cacti
Para instalar Cacti desde las fuentes en Debian 9, primero, descarga y extrae la última versión del archivo comprimido tar de Cacti, luego copia todos los archivos extraídos a la ruta raíz del servidor web apache, emitiendo los siguientes comandos.
wget https://www.cacti.net/downloads/cacti-latest.tar.gztar xfz cacti-latest.tar.gzcp -rf cacti-1.1.24/* /var/www/html/
En el siguiente paso, abre el archivo de configuración de cacti y actualiza las siguientes líneas para reflejar el nombre de usuario, la contraseña, el host y la ruta URL de la base de datos MySQL de cacti según corresponda, como se ilustra en el siguiente ejemplo.
nano /var/www/html/include/config.php** Ejemplo de archivo config.php de Cacti:
*$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti_user';
$database_password = 'cacti_pass';
$database_port = '3306';
$database_ssl = false;*Desplázate hacia abajo y cambia la variable de ruta de “/cacti ” a “ / ”
*$url_path = '/';*

A continuación, necesitas poblar la base de datos cacti cargando el script cacti.sql ubicado en la ubicación del documento raíz de tu servidor web y verificar las tablas de mysql de cacti emitiendo los siguientes comandos.
mysql -u cacti_user cacti -p < /var/www/html/cacti.sql mysql -u cacti_user cacti -p -e 'show tables'Finalmente, antes de comenzar a instalar Cacti desde la interfaz web, ejecuta los siguientes comandos para eliminar el archivo index.html predeterminado instalado por el servidor web Apache, crear el archivo de registro para Cacti y permitir que el usuario en tiempo de ejecución de Apache tenga permisos de escritura completos en la ruta de instalación de cacti.
rm /var/www/html/index.htmltouch /var/www/html/log/cacti.logchown -R www-data:www-data /var/www/html/** Comienza a instalar Cacti a través de la interfaz web visitando la dirección IP de tu sistema o el nombre de dominio desde un navegador y abriendo la siguiente URL.
En la primera pantalla, marca Aceptar el Acuerdo de Licencia GPL y presiona el botón Siguiente para continuar, como se muestra en la captura de pantalla a continuación.
En la siguiente pantalla, desplázate hacia abajo y verifica si todos los requisitos del sistema han sido aprobados por el instalador y presiona el botón Siguiente para avanzar en el proceso de instalación.
A continuación, elige Nuevo Servidor Primario como el tipo de instalación y haz clic en el botón Siguiente para continuar.
Ahora verifica si todas las ubicaciones y versiones de binarios críticos son detectadas correctamente por el instalador de cacti. También deberías actualizar la ruta del binario de Spine a /usr/local/spine/bin/spine. Puedes elegir el tema Clásico y presionar el botón Siguiente para continuar.
En la siguiente pantalla, el instalador verificará los permisos del directorio raíz del servidor web Apache para comprobar si el servidor web tiene permiso para realizar escrituras en la ruta de instalación de cacti. Si todas las rutas requeridas son escribibles, presiona el botón Siguiente para continuar.
Selecciona todas las plantillas de la lista proporcionada y presiona el botón Finalizar para completar la instalación.
Después de haber terminado el proceso de instalación, inicia sesión en la interfaz web de Cacti con las siguientes credenciales predeterminadas y reemplaza la contraseña predeterminada de admin con una nueva contraseña fuerte, como se ilustra en las siguientes capturas de pantalla.
Nombre de usuario: admin Contraseña: admin
Después de iniciar sesión en la interfaz web de Cacti, navega a Consola -> Configuración -> Ajustes -> Poller y cambia el tipo de poller de cmd.php a spine binario, como se muestra en la imagen a continuación. Desplázate hacia abajo y presiona el botón Guardar para aplicar los cambios.
Luego navega a Consola -> Configuración -> Ajustes -> Rutas y actualiza Cacti-Spine y establece la ruta del archivo de configuración en la siguiente ruta /usr/local/spine/etc/spine.conf y presiona el botón Guardar para aplicar la configuración, como se ilustra en la imagen a continuación.
Para agregar un nuevo dispositivo que se va a monitorear a través de SNMP, ve a Consola -> Gestión -> Dispositivos y presiona el ícono +, como se ilustra en la imagen a continuación. A modo de demostración, agregaremos la máquina localhost para ser monitoreada por Cacti a través del protocolo SNMP.
Para el nuevo dispositivo Linux que se monitoreará a través de SNMP, agrega una descripción para el dispositivo, el nombre de host, FQDN o la dirección IP del dispositivo monitoreado y selecciona Máquina Linux Local como plantilla de dispositivo. En las opciones de SNMP, selecciona la versión de SNMP adecuada (en este caso usaremos la versión 2) y escribe tu cadena de comunidad SNMP del dispositivo, como se describe en las imágenes a continuación. En caso de que el puerto SNMP no haya sido cambiado, deja el valor del puerto como predeterminado y, cuando termines, desplázate hacia abajo y presiona el botón Crear para agregar el dispositivo a la base de datos de Cacti para ser monitoreado.
Después de que el dispositivo haya sido agregado a la base de datos de Cacti, se mostrará un resumen de SNMP en la parte superior de la página del dispositivo en caso de que el dispositivo haya sido detectado y consultado correctamente. Para crear gráficos SNMP de RRDTool para este dispositivo, haz clic en el enlace Crear Gráficos para este dispositivo, marca las plantillas de gráficos que deseas examinar más a fondo y presiona el botón Crear para pasar a la siguiente pantalla, luego, presiona el botón Crear nuevamente para finalizar, como se ilustra en las siguientes imágenes.
Para visualizar los gráficos, navega a Consola -> Gestión -> Dispositivos, marca el dispositivo sobre el que deseas realizar una acción y selecciona Colocar en un Árbol (Árbol Predeterminado) del menú de acciones.
En la nueva pantalla, deja la Rama de Destino como predeterminada y presiona el botón Continuar para finalizar el proceso, como se describe en la imagen a continuación.
Finalmente, para que el poller de Cacti comience a recopilar datos sobre los dispositivos monitoreados, necesitas agregar un nuevo trabajo cron que consultará los dispositivos a través de SNMP cada 5 minutos. Agrega el trabajo programado para que sea propiedad y ejecutado por el usuario en tiempo de ejecución de Apache emitiendo el siguiente comando.
crontab –u www-data –eLínea del trabajo de Crontab:
*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1
Después de haber agregado el trabajo cron del poller, espera aproximadamente media hora para darle tiempo a Cacti para recopilar datos y luego navega a la pestaña Gráficos en la interfaz web de Cacti. Expande el árbol predeterminado y los gráficos recopilados de tu máquina monitoreada deberían mostrarse como se ilustra en la captura de pantalla a continuación.
Por ahora, la interfaz de Cacti puede ser accedida desde los navegadores de los clientes de manera no segura a través del protocolo HTTP. Toda la información sensible sobre tus dispositivos, así como las credenciales de inicio de sesión de cacti, se envían en texto plano. Para cifrar el tráfico entre los navegadores de los clientes y la interfaz web de Cacti, emite los siguientes comandos con privilegios de root para habilitar la configuración SSL de Apache.
a2enmod ssla2ensite default-ssl.confsystemctl restart apache2Después, navega a la interfaz web de Cacti a través del protocolo HTTPS. Debido a que el servidor web Apache utiliza un certificado autofirmado para cifrar la conexión, debería mostrarse un mensaje de error en tu navegador. Acepta el error y ahora puedes acceder de forma segura a la interfaz web de Cacti como se muestra en la captura de pantalla a continuación.
¡Eso es todo! Has instalado y configurado con éxito Cacti desde las fuentes en Debian 9. Para otras configuraciones personalizadas relacionadas con Cacti, visita las páginas de documentación en el siguiente enlace https://docs.cacti.net/manual:100
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.