Cómo instalar LibreNMS en Debian 11
LibreNMS es un sistema de monitorización de red de código abierto basado en PHP y con soporte de autodescubrimiento. Es un fork comunitario del software de monitorización Observium publicado bajo licencia GPLv3. El uso de LibreNMS te permite supervisar sistemas operativos como Linux, Windows y BSD, y también es compatible con una amplia gama de hardware de red de múltiples proveedores, como Aruba, Cisco, Dell, D-Link, HP, Mikrotik, etc.
Como sistema de monitorización completo, LibreNMS proporciona una gran cantidad de funciones con múltiples integraciones y recopilación de datos de múltiples protocolos.
A continuación se indican algunas características destacables de LibreNMS:
- Autodescubre toda tu red con múltiples protocolos como CDP, BGP, SNMP, OSPF y ARP.
- Múltiples métodos de alerta mediante correo electrónico, slacks, IRC, Rocket.chat, Telegram, etc.
- Amplia API para gestionar, representar gráficamente y recuperar datos de tu sistema de monitorización.
- Soporta sistema de facturación para generar facturas de ancho de banda basadas en el uso o transferencia de la red.
- Admite múltiples métodos de autenticación, como MySQL, Radius, LDAP, HTTP y Active Directory.
- Admite autenticación de dos factores.
- Múltiples integraciones con aplicaciones de terceros como Graylog, NfSen, Nagios Plugins, Oxidized, RANCID.
- Soporta una amplia gama de proveedores de Hardware, comprueba tus proveedores aquí.
- Panel de control fácil de usar y personalizable.
- Mantén tu software LibreNMS con soporte de auto-actualización.
- Aplicación nativa para Android e iOS que proporciona funcionalidad básica.
En esta guía, aprenderás a instalar y configurar la herramienta de monitorización LibreNMS en Debian 11 Bullseye.
Requisitos previos
Para completar esta guía, asegúrate de que tienes los siguientes requisitos:
- Sistema Operativo: Debian 11 Bullseye
- Privilegios de root
Ahora vamos a iniciar la instalación.
Instalación de paquetes dependientes
En este primer paso, instalarás paquetes básicos y esenciales para el LireNMS. Instalarás la pila LEMP, paquetes Python, snmpd y utilidades adicionales del sistema como curl, fping, git e imagemagick.
1. Refresca y actualiza los repositorios de Debian utilizando el siguiente comando.
sudo apt update
2. Ahora ejecuta el siguiente comando para instalar las dependencias de los paquetes.
sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-pip python3-systemd rrdtool snmp snmpd whois
Escribe ‘y’ para confirmar la instalación y pulsa ‘Enter’ para continuar.
3. Una vez finalizada la instalación de las dependencias de los paquetes, ejecuta los siguientes comandos para iniciar y habilitar servicios como Nginx, MariaDB, PHP-FPM y snmpd.
sudo systemctl enable --now nginx sudo systemctl enable --now mariadb sudo systemctl enable --now php7.4-fpm sudo systemctl enable --now snmpd.service
Ahora has completado la instalación de las dependencias de paquetes para LibreNMS.
Configurar un nuevo usuario librenms
En este paso, crearás un nuevo usuario de sistema ‘librenms’. Tu herramienta de monitorización LibreNMS se ejecutará bajo el usuario ‘librenms’.
1. Ejecuta el siguiente comando para crear un nuevo usuario ‘librenms’.
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
Opciones que debes conocer:
- -d /opt/librenms: Establece el directorio raíz por defecto del usuario ‘librenms’ en ‘/opt/librenms’.
- -M: No crear un directorio personal para el usuario ‘librenms’.
- -r: Convertir a este usuario ‘librenms’ en usuario del sistema.
- -s«$(que bash)»: Configura el shell por defecto para el usuario ‘librenms’. El shell será la salida del comando ‘which bash’.
2. A continuación, crea una nueva contraseña para el usuario ‘librenms’ utilizando el siguiente comando.
passwd librenms
Escribe una nueva contraseña segura y repítelo.
Continúa con la siguiente etapa para configurar tu sistema para la instalación de LibreNMS.
Configurar el sistema de zona horaria y PHP
La hora es una parte esencial de la monitorización. En este paso, configurarás la zona horaria por defecto para tu PHP y la zona horaria del sistema, asegúrate de que ambas zonas horarias (PHP y sistema) están sincronizadas y utilizan la misma zona horaria.
1. Edita la configuración ‘php.ini’ para PHP-FPM y CLI utilizando el siguiente comando.
sudo nano /etc/php/7.4/fpm/php.ini sudo nano /etc/php/7.4/cli/php.ini
Descomenta la opción ‘date.timezone’ y pon después tu zona horaria. Para este ejemplo, usaremos la zona horaria‘Europa/París’.
date.timezone = Europe/Paris
Guarda ambas configuraciones y sal.
2. Ahora reinicia PHP-FPM para aplicar la nueva configuración utilizando el siguiente comando.
sudo systemctl restart php7.4-fpm
3. Después, ejecuta el siguiente comando timedatectl para establecer la zona horaria por defecto del sistema en ‘Europa/París‘.
sudo timedatectl set-timezone Europe/Paris
Has completado la configuración de la zona horaria para tu PHP y el sistema.
Configurar MariaDB y Crear Base de Datos
En este paso, añadirás la configuración para MariaDB según los requisitos de LibreNMS, y luego crearás una nueva base de datos MariaDB y un usuario para la instalación de LibreNMS.
1. Edita la configuración del servidor MariaDB‘/etc/mysql/mariadb.conf.d/50-server.cnf‘ utilizando el editor nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Añade la siguiente configuración en la sección ‘[mysqld]’.
[mysqld] ..... .... innodb_file_per_table=1 lower_case_table_names=0
Guarda la configuración y sal.
2. Para aplicar la nueva configuración de MariaDB, reinicia el servicio utilizando el siguiente comando systemctl.
sudo systemctl restart mariadb
Ahora has añadido una configuración adicional al servidor MariaDB.
3. A continuación, accede al shell de MariaDB/MySQL utilizando el comando‘mysql‘ como usuario‘root‘, tal y como se indica a continuación.
mysql -u root -p
Escribe tu contraseña o pulsa ‘Intro‘ para iniciar sesión.
4. Ahora ejecuta las siguientes consultas MariaDB para crear una nueva base de datos y un nuevo usuario‘librenms‘. Y asegúrate de cambiar la contraseña‘LibreNMSPassword‘ por tu contraseña segura.
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'LibreNMSPassword'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES;
Escribe ‘exit’ y pulsa‘Enter’ para salir del intérprete de comandos MariaDB.
Ahora ya has creado la base de datos y el usuario para la instalación de LibreNMS.
Crear un nuevo Pool PHP-FPM
El Gestor de Procesos FastCGI (FPM) o PHP-FPM te permite crear un pool personalizado para tus aplicaciones PHP. Por defecto, el PHP-FPM ejecuta el pool ‘www’ con la configuración‘/etc/php/7.4/fpm/pool.d/www.conf’.
En este paso, crearás un nuevo pool PHP-FPM personalizado para LibreNMS. Crearás un nuevo pool PHP-FPM‘librenms‘ con la configuración ‘/etc/php/7.4/fpm/pool.d/librenms.conf’, y lo ejecutarás con el usuario‘librenms‘.
1. En primer lugar, copia la configuración por defecto del pool ‘www.conf‘ a ‘librenms.conf‘ utilizando el siguiente comando.
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
2. Edita la configuración personalizada del pool ‘librenms.conf’ utilizando el editor nano.
sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf
En la parte superior de la línea, cambia el usuario por defecto de ‘[www]’ a ‘[librenms]’.
[librenms]
Cambia el usuario y grupo por defecto a‘librenms‘.
user = librenms group = librenms
Cambia el archivo sock PHP-FPM por defecto a ‘/run/php-fpm-librenms.sock‘.
listen = /run/php-fpm-librenms.sock
Guarda la configuración y sal.
3. A continuación, reinicia el servicio PHP-FPM para aplicar la nueva configuración.
sudo systemctl restart php7.4-fpm
Ahora el PHP-FPM generará un nuevo pool ‘librenms’ con el archivo sock ‘/run/php/php-fpm-librenms.sock’.
4. Verifica el archivo sock ‘librenms‘ utilizando el siguiente comando.
ss -anl | grep librenms
Verás una salida similar a la siguiente.
u_str LISTEN 0 511 /run/php/php-fpm-librenms.sock 69199 * 0 users:(("php-fpm7.4",pid=26105,fd=10),("php-fpm7.4",pid=26104,fd=10),("php-fpm7.4",pid=26103,fd=7))
Ahora estás listo para descargar e instalar la herramienta de monitorización LibreNMS.
Descargar LibreNMS
En este paso, descargarás el código fuente de LibreNMS y configurarás los permisos y el control de acceso al mismo.
1. Cambia tu directorio de trabajo a ‘/opt’ y descarga el código fuente de LibreNMS utilizando el comando git como se indica a continuación.
cd /opt/ git clone https://github.com/librenms/librenms.git
Tu instalación de LibreNMS es el directorio‘/opt/librenms‘.
2. Cambia la propiedad y el permiso de la instalación de LibreNMS utilizando el siguiente comando.
chown -R librenms:librenms /opt/librenms chmod 771 /opt/librenms
3. A continuación, configura listas de control de acceso (ACL) para el directorio de instalación de LibreNMS. Permite al grupo leer escribir ejecutar en cada uno de los siguientes directorios utilizando el siguiente comando setfacl.
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
Continúa con el siguiente paso para instalar las dependencias PHP para LibreNMS.
Instalación de las dependencias PHP de LibreNMS
Para instalar las dependencias PHP de LibreNMS, debes iniciar sesión como usuario ‘librenms’ y utilizar el composer_wrapper, que se incluye en el código fuente de LibreNMS.
1. Inicia sesión como usuario ‘librenms’ utilizando el siguiente comando.
su - librenms
2. Ejecuta el script PHP‘composer_wrapper.php‘ para instalar las dependencias de los paquetes PHP para LibreNMS.
./scripts/composer_wrapper.php install --no-dev
3. Una vez finalizados todos los procesos de descarga, escribe‘exit‘ y pulsa‘Enter‘ para cerrar la sesión del usuario‘librenms’.
Ahora ya has completado la instalación de las dependencias PHP para LibreNMS.
Configurar Nginx para LibreNMS
En este paso, crearás un nuevo bloque de servidor Nginx para la herramienta de monitorización LibreNMS. Este ejemplo utilizará el nombre de dominio ‘librenms.ejemplo.io’.
1. Crea una nueva configuración de bloques de servidor Nginx‘librenms‘ utilizando el editor nano.
sudo nano /etc/nginx/sites-available/librenms
Copia y pega la siguiente configuración. Y asegúrate de cambiar el nombre de dominio por tu dominio.
server { listen 80; server_name librenms.example.io; root /opt/librenms/html; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { fastcgi_pass unix:/run/php-fpm-librenms.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi.conf; } location ~ /\.(?!well-known).* { deny all; } }
Para una instalación segura HTTPS de LibreNMS, utiliza la siguiente configuración. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL.
server { listen 80; server_name librenms.example.io; rewrite ^ https://$server_name$request_uri? permanent; } server { server_name librenms.example.io; root /opt/librenms/html; index index.php; listen 443 ssl http2; server_name example.io; ssl_certificate /etc/letsencrypt/live/librenms.example.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/librenms.example.io/privkey.pem; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { fastcgi_pass unix:/run/php/php-fpm-librenms.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi.conf; } location ~ /\.(?!well-known).* { deny all; } }
Ahora guarda la configuración y sal.
2. A continuación, activa el nuevo host virtual‘librenms‘ y verifica la configuración de nginx utilizando el siguiente comando.
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/ sudo nginx -t
Si la configuración es correcta, verás un mensaje de salida como ‘la prueba se ha realizado correctamente’.
3. Por último, reinicia el servicio nginx para aplicar la nueva configuración.
sudo systemctl restart nginx
Ahora has completado la configuración del bloque del servidor Nginx para LibreNMS. Estás listo para iniciar la instalación de LibreNMS.
Iniciar la instalación de LibreNMS
Para iniciar la instalación de LibreNMS, abre tu navegador web y escribe el nombre de dominio de LibreNMS en la barra de direcciones.
1. Verás las«Comprobaciones previas a la instalación» de LibreNMS. Asegúrate de que todas las comprobaciones están marcadas en verde y haz clic en el icono de la base de datos para continuar.
2. Escribe tu base de datos, usuario y contraseña. A continuación, haz clic en el botón‘Comprobar credenciales‘.
Esto realizará la comprobación de tu base de datos y usuario MariaDB. Si tiene éxito, verás la marca verde en las ‘Credencialesde la base de datos’.
3. Ahora haz clic en el botón ‘Crear base de datos‘ para importar el esquema de base de datos para tu LibreNMS.
Una vez completada la configuración de la base de datos, asegúrate de que ambas secciones‘Credenciales de la base de datos’ y ‘Crearbase de datos’ están marcadas en verde.
4. Ahora haz clic en el icono ‘Clave‘ para continuar.
5. Escribe un nuevo usuario, contraseña y dirección de correo electrónico para crear el usuario administrador de LibreNMS.
5. Pulsa el botón ‘Añadir usuario‘.
Si tu usuario admin está creado, verás tu usuario admin en la página como se muestra a continuación.
5. Haz clic en el icono de la marca para completar la instalación. A continuación se muestra la salida que obtendrás.
Para finalizar la instalación de LibreNMS, abre la página de validación de LibreNMS como se muestra a continuación.
https://librenms.example.io/validate
6. Y serás redirigido a la página de inicio de sesión de LibreNMS.
Escribe tu usuario y contraseña de administrador y pulsa el botón‘Iniciar sesión‘
7. En las páginas de validación de LibreNMS, verás algunos errores como los siguientes.
Puedes tener errores diferentes, pero la página de validación de LibreNMS te ofrece soluciones para tu error.
8. A continuación se muestran algunos errores de nuestra instalación y cómo solucionarlos.
– Corregir la zona horaria de la base de datos
Accede al shell de MariaDB utilizando tu usuario root.
mysql -u root -p
Cambia la base de datos actual a ‘librenms’.
use librenms;
Ahora ejecuta las siguientes consultas para corregir el error de zona horaria de la base de datos.
SET TIME_ZONE='+00:00'; ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ; ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;
– Corregir errores del sistema
Añade el comando binario LibreNMS ‘lnms’ al directorio‘/usr/bin‘ utilizando el siguiente comando.
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
Activa la finalización bash para el comando ‘lnms’.
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
Por último, copia la configuración de logrotate para LibreNMS en el directorio ‘/etc/logrotate.d/’.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
9. Después de corregir los errores de LibreNMS, vuelve a las páginas de validación de LibreNMS y recarga la página.
Ahora asegúrate de que todos los estados son‘OK‘.
10. Haz clic en el menú«Visión general» para mostrar el panel de control.
Ahora has completado la instalación de LibreNMS en Debian 11 Bullseye.
Conclusión
¡Enhorabuena! Has instalado con éxito la herramienta de monitorización LibreNMS con Nginx, PHP-FPM y la base de datos MariaDB en la última versión de Debian 11 Bullseye. Además, has aprendido a crear el pool PHP-FPM personalizado y a corregir algunos errores de la instalación de LibreNMS.
En el siguiente paso, aprenderás a añadir hosts a monitorizar a la herramienta de monitorización LibreNMS.