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:

Comprobaciones previas 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:

Configurar 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:

Construir una base de datos

Ahora, haz clic en el icono de la llave para configurar un usuario administrador:

Crear 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:

Usuario administrador de LibreNMS

Haz clic en el botón del icono . Deberías ver la siguiente página:

Terminar la instalación

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:

Iniciar sesión en LibreNMS

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:

Panel de control de LibreNMS

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.

También te podría gustar...