Cómo instalar la herramienta de monitorización LibreNMS en Debian 11
LibreNMS es una herramienta de monitorización de red gratuita, de código abierto, basada en la web y con autodescubrimiento, escrita en PHP. Utiliza MySQL o MariaDB como base de datos y usa SNMP para descubrir los clientes remotos. Es compatible con una amplia gama de dispositivos de red, como Linux, Cisco, Juniper, FreeBSD, HP y Windows, entre otros. Admite múltiples métodos de autenticación, como Radius, Active Directory, LDAP, MySQL y otros. Es sencillo, amigable y fácil de entender y utilizar para cualquiera.
En este tutorial, explicaré cómo instalar LibreNMS con Nginx en Debian 11.
Requisitos previos
- Un servidor con Debian 11.
- Un nombre de dominio válido apuntado con la IP de tu servidor.
- Una contraseña de root configurada en tu servidor.
Instalar y configurar la base de datos MariaDB
En primer lugar, tendrás que instalar el servidor de bases de datos MariaDB en tu servidor. Puedes instalarlo con el siguiente comando:
apt-get install mariadb-server -y
Una vez completada la instalación, ejecuta el siguiente script para asegurar la instalación de MariaDB y establecer una contraseña de root:
mysql_secure_installation
Responde a todas las preguntas como se muestra a continuación:
Enter current password for root (enter for none): Switch to unix_socket authentication [Y/n] n Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Reload privilege tables now? [Y/n] Y
Una vez asegurada MariaDB, edita el archivo de configuración de MariaDB y modifica algunos ajustes:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Añade las siguientes líneas dentro de la sección [mysqld]:
innodb_file_per_table=1 lower_case_table_names=0
Guarda y cierra el archivo y reinicia MariaDB para aplicar los cambios:
systemctl restart mariadb
A continuación, inicia sesión en MariaDB con el siguiente comando:
mysql -u root -p
Una vez iniciada la sesión, crea una base de datos y un usuario para LibreNMS:
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'securepassword';
A continuación, concede todos los privilegios a la base de datos de LibreNMS mediante el siguiente comando:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
Por último, vacía los privilegios y sal del shell de MariaDB utilizando el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Nginx, PHP y las dependencias necesarias
A continuación, tendrás que instalar el servidor web Nginx, PHP y otras dependencias requeridas por LibreNMS. Puedes instalarlos todos ejecutando el siguiente comando:
apt-get install nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois acl curl composer fping git graphviz imagemagick mtr-tiny
Una vez instalados todos los paquetes, edita el archivo php.ini y establece tu zona horaria:
nano /etc/php/7.4/fpm/php.ini
Cambia la siguiente línea:
date.timezone = UTC
Guarda y cierra el archivo cuando hayas terminado.
Instalar y configurar LibreNMS
En primer lugar, crea un usuario dedicado para LibreNMS utilizando el siguiente comando:
useradd librenms -d /opt/librenms -M -r -s /bin/bash
A continuación, añade el usuario LibreNMS al grupo www-data con el siguiente comando:
usermod -a -G librenms www-data
A continuación, descarga la última versión de LibreNMS desde el repositorio de GitHub al directorio /opt:
git clone https://github.com/librenms/librenms.git /opt/librenms
A continuación, establece la propiedad y el permiso del directorio LibreNMS:
chown -R librenms:librenms /opt/librenms chmod 775 /opt/librenms 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/
A continuación, cambia el usuario a LibreNMS con el siguiente comando:
su - librenms
A continuación, instala el compositor de PHP con el siguiente comando:
cd /opt/librenms ./scripts/composer_wrapper.php install --no-dev
Una vez instalados el Compositor y otras dependencias de PHP, deberías ver la siguiente salida:
> @php artisan optimize Configuration cache cleared! Configuration cached successfully! Route cache cleared! Routes cached successfully! Files cached successfully! > @php artisan config:clear Configuration cache cleared! > scripts/dynamic_check_requirements.py || pip3 install --user -r requirements.txt || : Requirement already satisfied: PyMySQL!=1.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (0.9.3) Requirement already satisfied: python-dotenv in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.15.0) Requirement already satisfied: redis>=3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (3.5.3) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (52.0.0) Collecting psutil>=5.6.0 Downloading psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl (293 kB) Collecting command_runner>=1.3.0 Downloading command_runner-1.3.0-py3-none-any.whl (17 kB) Installing collected packages: psutil, command-runner Successfully installed command-runner-1.3.0 psutil-5.8.0
A continuación, sal del usuario de LibreNMS utilizando el siguiente comando:
exit
A continuación, tendrás que crear un archivo de configuración independiente para PHP-FPM. Puedes crearlo con el siguiente comando:
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
A continuación, edita el archivo de configuración librenms.conf con tu editor favorito:
nano /etc/php/7.4/fpm/pool.d/librenms.conf
Cambia [www-data] por [librenms] y actualiza también el socket de escucha:
user = librenms group = librenms listen = /run/php-fpm-librenms.sock
Guarda y cierra el archivo y luego reinicia el servicio PHP-FPM para aplicar los cambios de configuración:
systemctl restart php7.4-fpm
Una vez que hayas terminado, puedes pasar al siguiente paso.
Configurar Nginx para LibreNMS
A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para LibreNMS. Puedes crearlo con el siguiente comando:
nano /etc/nginx/conf.d/librenms.conf
Añade las siguientes líneas:
server { listen 80; server_name libre.yourdomain.com; 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; } }
Guarda y cierra el archivo y luego verifica que el Nginx no tenga ningún error de sintaxis con el siguiente comando:
nginx -t
Si todo está bien, obtendrás la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Por último, reinicia el Nginx para aplicar los cambios.
systemctl restart nginx php7.4-fpm
También puedes verificar el estado de Nginx con el siguiente comando:
systemctl status nginx
Deberías ver la siguiente salida:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-12-03 14:39:18 UTC; 18s ago Docs: man:nginx(8) Process: 39888 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 39892 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 39893 (nginx) Tasks: 2 (limit: 2341) Memory: 2.7M CPU: 42ms CGroup: /system.slice/nginx.service ??39893 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??39894 nginx: worker process Dec 03 14:39:18 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Dec 03 14:39:18 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Dec 03 14:39:18 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
A continuación, copia el archivo de configuración del trabajo cron para habilitar el descubrimiento automático y el sondeo de los dispositivos recién añadidos.
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
A continuación, copia el archivo de configuración logrotate para rotar los registros antiguos.
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Una vez que hayas terminado, puedes pasar al siguiente paso.
Accede al Asistente de Instalación Web de LibreNMS
En este punto, LibreNMS está instalado y configurado con Nginx. Ahora puedes acceder a la instalación web de LibreNMS utilizando la URL http://libre.yourdomain.com. Deberías ver la página de comprobación previa a la instalación:
Asegúrate de que todas las comprobaciones son correctas y luego haz clic en el icono de la base de datos. Deberías ver la página de configuración de la base de datos:
Proporciona la información de tu base de datos y haz clic en Comprobar credenciales. Deberías ver la siguiente página:
Ahora, haz clic en el icono de la llave para configurar un usuario administrador:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Añadir usuario. Una vez creado el usuario, deberías ver la siguiente página:
Haz clic en el botón del icono Sí . Deberías ver la siguiente página:
Ahora, abre otra pestaña en tu navegador web y escribe la URL https://libre.yourdomain.com/validate para validar la instalación. Deberías ver la siguiente página:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón de inicio de sesión. Deberías ver la siguiente página:
Conclusión
Enhorabuena, has instalado correctamente LibreNMS con Nginx en Debian 11. Ahora puedes empezar a añadir dispositivos remotos a LibreNMS y empezar a monitorizarlos desde la ubicación central. No dudes en preguntarme si tienes alguna duda.