Este tutorial le mostrará cómo instalar y configurar la herramienta de monitoreo de red Cacti desde la fuente para asegurarse de obtener la última versión en Debian 9, nombre en clave 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 redes y sistemas a través de RRDtool. Utiliza el protocolo SNMP (Protocolo simple de administración de redes) para recopilar y monitorear el tráfico de red desde 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 completa o en un servidor privado virtual.
- Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema.
- Acceso a la cuenta raíz o un usuario con privilegios de cuenta raíz a través de sudo.
Configuración inicial
Antes de comenzar a instalar Cacti desde la fuente, primero asegúrese de que su sistema cumpla con todos los requisitos de software para compilar e instalar Cacti. En el primer paso, abra el archivo de la lista de fuentes de Debian para editarlo con privilegios de root y agregue los repositorios contrib y non-free como se muestra en el siguiente extracto del archivo.
nano /etc/apt/sources.list
ejemplo de archivo source.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, guárdelo y ciérrelo y actualice los repositorios de su sistema y los paquetes de software para incorporar los nuevos paquetes, emitiendo los siguientes comandos.
apt update
apt upgrade
A continuación, inicie un nuevo comando para instalar algunas utilidades necesarias que se utilizarán para administrar aún más su sistema desde la línea de comandos.
apt install wget patch unzip zip bash-completion
Cacti es una herramienta de monitoreo basada en la web escrita principalmente en el lenguaje de programación del lado del servidor PHP. Para ejecutar las secuencias de comandos del archivo php de Cacti, un servidor web, como un servidor Apache HTTP, y un intérprete de PHP deben estar instalados y en funcionamiento en el sistema. Para instalar el servidor web Apache y el intérprete PHP junto con todos los módulos PHP necesarios que necesita Cacti para funcionar correctamente, emita el siguiente comando en la consola de su 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 se hayan instalado Apache y PHP, pruebe si el servidor web está funcionando y escuchando las conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.
netstat –tlpn
En caso de que netstat La utilidad de red no está instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.
apt install net-tools
Inspeccionando el netstat Como resultado del comando, puede ver que el demonio apache está escuchando las conexiones de red entrantes en el puerto 80.
En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.
ufw allow WWW
o
ufw allow 80/tcp
Finalmente, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en el navegador de su cliente visitando la dirección IP de su máquina Debian a través del protocolo HTTP, como se muestra en la imagen a continuación. Si no conoce la dirección IP de su máquina, ejecute 'ifconfig' o 'ip a' comandos Mi IP en esta configuración es:http://192.168.1.14
En el siguiente paso, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP para garantizar que file_uploads variable está habilitada y la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación física de su sistema. Abra /etc/php/7.0/apache2/php.ini archivo para editarlo y asegúrese de que las siguientes líneas estén configuradas de la siguiente manera.
file_uploads = On
date.timezone = Europe/London
Reemplace la variable de zona horaria de acuerdo con su zona horaria física consultando la lista de zonas horarias proporcionada por los documentos de PHP en el siguiente enlace http://php.net/manual/en/timezones.php
Una vez que haya realizado los cambios necesarios, cree un archivo de información php y reinicie el demonio apache para aplicar los cambios emitiendo los siguientes comandos.
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
systemctl restart apache2
Verifique si la zona horaria de PHP se configuró 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ácese hacia abajo hasta la configuración de la fecha para verificar la configuración de la zona horaria de php.
http://192.168.1.14/info.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 la base de datos MariaDB. Ejecute el siguiente comando para instalar la 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 instalar MariaDB, verifique que el demonio se esté ejecutando y escuche las conexiones de red en el host local, puerto 3306, ejecutando netstat comando.
netstat –tlpn | grep mysql
Luego inicie sesión en la consola MySQL y asegure la raíz de MariaDB cuenta emitiendo los siguientes comandos.
mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit
En el siguiente paso, asegure MariaDB ejecutando el script mysql_secure_installation proporcionado por el paquete de instalación del repositorio de Debian Stretch. Mientras se ejecuta, el script hará una serie de preguntas para asegurar la base de datos MariaDB, tales como:cambiar la contraseña raíz de MySQL, eliminar usuarios anónimos, deshabilitar los inicios de sesión raíz remotos y eliminar la base de datos de prueba. Ejecute el script emitiendo el siguiente comando y asegúrese de escribir sí a todas las preguntas formuladas para asegurar completamente el demonio MySQL. Use la salida del script a continuación, excepto como guía.
sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Para probar la seguridad de MariaDB, intente iniciar sesión en la base de datos desde la consola sin root clave. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para el raíz cuenta. Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola MySQL, como se muestra en la siguiente captura de pantalla.
mysql -h localhost -u root
mysql -h localhost -u root –p
Mientras está conectado a la base de datos MariaDB, continúe y cree una base de datos para la instalación de Cacti y cree el usuario que se usará para administrar cacti base de datos, emitiendo los siguientes comandos. Reemplace los cactus usuario de base de datos y contraseña en consecuencia.
create database cacti;
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';
flush privileges;
exit
Además, otorgue permisos de selección al usuario de la base de datos de cactus 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.sql
mysql -u root -p -e 'grant select on mysql.time_zone_name to [email protected]'
En el siguiente paso, abra el archivo de configuración predeterminado del servidor MySQL y agregue las siguientes líneas como se muestra en el ejemplo a continuación.
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Agregue las siguientes líneas en la parte inferior de 50-server.cnf archivo:
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 hicimos hasta ahora, reinicie los demonios MySQL y Apache y verifique que los demonios se estén ejecutando emitiendo los siguientes comandos.
systemctl restart mysql apache2
systemctl status mysql apache2
Configurar servicio SNMP
El servicio de monitoreo web de Cacti utiliza el protocolo SNMP para recopilar datos y estadísticas del dispositivo. Para instalar el programa SNMP, el servicio de demonio SNMP y MIBS SNMP en su sistema Debian 9 local, emita el siguiente comando con privilegios de root.
apt install snmp snmpd snmp-mibs-downloader
Además, instale la herramienta de registro de datos estándar de la industria RRDtool, que Cacti utiliza para mostrar la funcionalidad de gráficos.
apt install rrdtool
A continuación, edite el archivo de configuración de SNMP /etc/snmp/snmp.conf y comenta los “mibs” línea agregando un hashtag (#) delante de la línea como se describe en la imagen a continuación.
Configure también el acceso remoto y localhost del daemon SNMP, abriendo el snmpd.conf archivo para editar y buscar y actualizar las siguientes líneas de la siguiente manera:
nano /etc/snmp/snmpd.conf
Descomente la línea para escuchar las conexiones en todas las interfaces
agentAddress udp:161,udp6:[::1]:161
Agregue las siguientes líneas para permitir la consulta SNMP para su red local a través de snmp_string clave. Reemplace la cadena comunitaria snmp snmp_string contraseña y la dirección CIDR de su red en consecuencia.
rocommunity snmp_string localhost
rocommunity snmp_string 192.168.1.0/25
Opcionalmente, también puede modificar la variable de contacto y ubicación para proporcionar información sobre su servidor. Esta información se muestra en el área de notificación de Cacti cuando verifica los detalles de su servidor. Además, el nombre de host de su 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, edite la sysLocation y sysContact líneas debajo de la sección de información del sistema y agregue sus propios valores. De forma predeterminada, los siguientes valores están configurados para sysLocation y sysContact .
sysLocation Sitting on the Dock of the Bay
sysContact Me <[email protected]>
Una vez que haya realizado los cambios adecuados en snmpd.conf archivo, guarde y cierre el archivo y reinicie el demonio snmp para reflejar los cambios emitiendo los siguientes comandos. Luego verifique el estado del demonio snmpd y los puertos propios en estado de escucha.
systemctl restart snmpd.service
systemctl status snmpd.service
netstat -tulpn| grep snmp
Abrir puerto de firewall para SNMP:
ufw allow 161/udp
Para verificar que el demonio SNMP funciona como se esperaba y recupera todos los valores SNMP en el árbol de memoria para localhost, ejecute el siguiente comando.
snmpwalk -v 2c -c snmp_string localhost memory
Instalar Cacti-Spine
Cacti-Spine es un reemplazo para el sondeador cmd.php predeterminado, escrito en C para un tiempo de ejecución más rápido. Para compilar e instalar Cacti-Spine pooler desde fuentes en Debian 9, primero ejecute 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-dev
A continuación, descargue la última versión del archivo comprimido tar de Cacti-Spine con wget utilidad, extraiga el archivo tarball e ingrese al directorio extraído de cacti-spine emitiendo los siguientes comandos.
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz
cd cacti-spine-1.1.24/
Ahora, compile e instale la utilidad Cacti-Spine desde las fuentes emitiendo los siguientes comandos.
./bootstrap
./configure
make
make install
Cacti-Spine se instalará en /usr/local/spine/ ruta del sistema. Spine recomienda que establezca el bit SUID para el binario de la columna vertebral para admitir solicitudes de ping ICMP.
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine
También debe conectar Spine a la base de datos de cactus editando el archivo de configuración como se muestra en el extracto del archivo a continuación.
nano /usr/local/spine/etc/spine.conf
columna vertebral.conf muestra de archivo. Reemplace las credenciales en consecuencia. Utilice las mismas credenciales de la base de datos configuradas para Cacti.
DB_Host localhost
DB_Database cacti
DB_User user_cacti
DB_Pass pass_cacti
DB_Port 3306
DB_PreG 0
Instalar cactus
Para instalar Cacti desde fuentes en Debian 9, primero, descargue y extraiga la última versión del archivo comprimido tarball de Cacti, luego copie todos los archivos extraídos a la ruta raíz web de apache, emitiendo los siguientes comandos.
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz
cp -rf cacti-1.1.24/* /var/www/html/
En el siguiente paso, abra el archivo de configuración de cacti y actualice 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 cacti, como se ilustra en el siguiente ejemplo.
nano /var/www/html/include/config.php
Cactus config.php muestra de archivo:
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti_user';
$database_password = 'cacti_pass';
$database_port = '3306';
$database_ssl = false;
Desplácese hacia abajo y cambie la variable de ruta de “/cacti ” a “/ ”
$url_path = '/';
A continuación, debe completar la base de datos de cactus cargando cacti.sql script ubicado en la ubicación raíz del documento de su servidor web y verifique las tablas mysql de cactus 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, ejecute los siguientes comandos para eliminar el archivo index.html predeterminado instalado por el servidor web Apache, cree el archivo de registro para Cacti y permita que el usuario de tiempo de ejecución de Apache tenga permisos de escritura completos en la ruta de instalación de Cacti. .
rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/
Comience a instalar Cacti a través de la interfaz web visitando la dirección IP o el nombre de dominio de su sistema desde un navegador y abriendo la siguiente URL.
http://192.168.1.14/instalar
En la primera pantalla, marque Aceptar el acuerdo de licencia GPL y presione el botón Siguiente para continuar como se muestra en la siguiente captura de pantalla.
En la siguiente pantalla, desplácese hacia abajo y verifique si el instalador aprobó todos los requisitos del sistema y presione el botón Siguiente para continuar con el proceso de instalación.
A continuación, elija Nuevo servidor principal como tipo de instalación y haga clic en el botón Siguiente para continuar.
Ahora verifique si todas las ubicaciones y versiones binarias críticas son detectadas correctamente por el instalador de cactus. Además, debe actualizar la ruta binaria de Spine a /usr/local/spine/bin/spine . Puede elegir el tema Clásico y pulsar el botón Siguiente para continuar.
En la siguiente pantalla, el instalador verificará los permisos del directorio raíz web de Apache para verificar si el servidor web puede realizar escrituras en la ruta de instalación de cactus. Si se pueden escribir todas las rutas requeridas, presione el botón Siguiente para continuar.
Seleccione todas las plantillas de la lista provista y presione el botón Finalizar para completar la instalación.
Una vez que haya terminado el proceso de instalación, inicie sesión en la interfaz web de Cacti con las siguientes credenciales predeterminadas y reemplace la contraseña predeterminada de administrador con una nueva contraseña segura, como se ilustra en las siguientes capturas de pantalla.
Nombre de usuario:administrador
Contraseña:administrador
Después de iniciar sesión en la interfaz web de Cacti, vaya a Consola -> Configuración -> Ajustes -> Sondeador y cambie el tipo de encuestador de cmd.php a spine binario, como se muestra en la siguiente imagen. Desplázate hacia abajo y presiona Guardar botón para aplicar los cambios.
Luego navegue a Consola -> Configuración -> Ajustes -> Rutas y actualice Cacti-Spine y establezca la ruta del archivo de configuración en la siguiente ruta /usr/local/spine/etc/spine.conf y presione el botón Guardar para aplicar la configuración, como se ilustra en la imagen a continuación.
Para agregar un nuevo dispositivo para ser monitoreado a través de SNMP, vaya a Consola -> Administración -> Dispositivos y presiona + icono, como se ilustra en la imagen de abajo. Para fines de demostración, agregaremos la máquina localhost para que sea monitoreada por Cacti a través del protocolo SNMP.
Para el dispositivo Linux recién agregado que será monitoreado a través de SNMP, agregue una descripción para el dispositivo, el nombre de host, FQDN o la dirección IP del dispositivo monitoreado y seleccione Máquina Linux local como plantilla de dispositivo. En las opciones de SNMP, seleccione la versión de SNMP adecuada (en este caso, usaremos la versión 2) y escriba la cadena de comunidad SNMP de su dispositivo, como se describe en las imágenes a continuación. En caso de que no se haya cambiado el puerto SNMP, deje el valor del puerto como predeterminado y, cuando termine, desplácese hacia abajo y presione el botón Crear para agregar el dispositivo a la base de datos de Cacti para poder monitorearlo.
Después de agregar el dispositivo 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 se haya detectado y consultado correctamente. Para crear gráficos RRDTool SNMP para este dispositivo, haga clic en Crear gráficos para este dispositivo enlace, marque las plantillas de gráficos que desea examinar más a fondo y presione el botón Crear para pasar a la siguiente pantalla, luego presione el botón Crear nuevamente para finalizar, como se ilustra en las siguientes imágenes.
Para visualizar los gráficos, vaya a Consola -> Administración -> Dispositivos, marque el dispositivo en el que desea realizar una acción y seleccione Colocar en un árbol (Árbol predeterminado) en el menú de acciones.
En la nueva pantalla, deje la sucursal de destino como predeterminada y presione el botón Continuar para finalizar el proceso, como se describe en la imagen a continuación.
Finalmente, para que Cacti poller comience a recopilar datos sobre los dispositivos monitoreados, debe agregar un nuevo trabajo cron que consultará los dispositivos a través de SNMP cada 5 minutos. Agregue el trabajo programado para ser propiedad y ejecutado por el usuario de tiempo de ejecución de Apache emitiendo el siguiente comando.
crontab –u www-data –e
Línea de trabajo Crontab:
*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1
Después de haber agregado el cronjob del pooler, espere aproximadamente media hora para que Cacti tenga tiempo de recopilar datos y luego navegue a la pestaña Gráficos en la interfaz web de Cacti. Expanda el árbol predeterminado y los gráficos recopilados de su máquina monitoreada deberían mostrarse como se ilustra en la siguiente captura de pantalla.
Por ahora, se puede acceder a la interfaz de Cacti desde los navegadores de los clientes de forma no segura a través del protocolo HTTP. Toda la información confidencial sobre sus dispositivos, así como las credenciales de inicio de sesión de cactus, se envían en texto sin formato. Para encriptar el tráfico entre los navegadores del cliente y la interfaz web de Cacti, emita los siguientes comandos con privilegios de root para habilitar la configuración Apache SSL.
a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2
Luego, navegue 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 su navegador. Acepte el error y ahora puede acceder de forma segura a la interfaz web de Cacti como se muestra en la siguiente captura de pantalla.
¡Eso es todo! Ha instalado y configurado con éxito Cacti desde fuentes en Debian 9. Para otras configuraciones personalizadas con respecto a Cacti, visite las páginas de documentación en el siguiente enlace https://docs.cacti.net/manual:100