Cómo configurar la herramienta de monitorización LibreNMS con Nginx en Ubuntu 20.04
LibreNMS es una herramienta de monitorización de red gratuita y de código abierto para el sistema operativo Linux. Puedes supervisar distintos sistemas operativos como Linux, Windows, FreeBSD y varios dispositivos de red como Cisco, Juniper, Foundry, FreeBSD, Brocade y muchos más con LibreNMS. Utiliza los protocolos SNMP, ARP, CDP, FDP, LLDP, OSPF y BGP para autodescubrir toda la red. Tiene una interfaz web sencilla y fácil de usar que te ayuda a supervisar todos los dispositivos desde el navegador web. Tiene un rico conjunto de funciones que incluyen, descubrimiento automático, alertas personalizables, acceso a la API, actualizaciones automáticas y muchas más.
En este tutorial, te mostraremos paso a paso cómo instalar LibreNMS en Ubuntu 20.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 20.04.
- Una contraseña de root configurada.
Cómo empezar
En primer lugar, se recomienda actualizar los paquetes de tu sistema a la última versión. Puedes hacerlo con el siguiente comando:
apt-get update -y
Tras actualizar todos los paquetes, instala todas las dependencias necesarias para LibreNMS con el siguiente comando:
apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -y
Una vez instaladas todas las dependencias, puedes pasar al siguiente paso.
Instalar el servidor LEMP
A continuación, tendrás que instalar el servidor web Nginx, el servidor MariaDB, PHP y otras extensiones PHP en tu servidor. Puedes instalarlos todos ejecutando el siguiente comando:
apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -y
Después de instalar todos los paquetes, tendrás que establecer la zona horaria en tu archivo php.ini.
Primero, busca la zona horaria de tu sistema con el siguiente comando:
cat /etc/timezone
Deberías ver el siguiente resultado:
Etc/UTC
A continuación, edita ambos archivos php.ini con el siguiente comando:
nano /etc/php/7.4/fpm/php.ini nano /etc/php/7.4/cli/php.ini
Define la zona horaria de tu sistema como se muestra a continuación:
date.timezone = Etc/UTC
Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio PHP-FPM para aplicar los cambios:
systemctl restart php7.4-fpm
Cuando hayas terminado, puedes pasar al siguiente paso.
Configurar la base de datos MariaDB
A continuación, tendrás que crear una base de datos y un usuario para LibreNMS.
En primer lugar, inicia sesión en el shell de MariaDB con el siguiente comando:
mysql
Una vez iniciada la sesión, crea una base de datos y un usuario con el siguiente comando:
MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> grant all privileges on librenmsdb.* to librenms@localhost IDENTIFIED by "password";
A continuación, vacía los privilegios y sal del shell MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit;
A continuación, edita el archivo de configuración de MariaDB y añade algunos ajustes deseados:
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 sql-mode="" lower_case_table_names=0
Guarda y cierra el archivo y reinicia el servicio MariaDB para aplicar los cambios:
systemctl restart mariadb
En este punto, tu MariaDB está configurada. Ahora puedes pasar al siguiente paso.
Instalar y configurar LibreNMS
En primer lugar, tendrás que crear un usuario independiente para ejecutar LibreNMS. Puedes añadirlo con el siguiente comando:
useradd -r -M -d /opt/librenms librenms
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, cambia el directorio a /opt y descarga la última versión de LibreNMS con el siguiente comando:
cd /opt git clone https://github.com/librenms/librenms.git librenms
A continuación, crea un archivo de registro para LibreNMS con el siguiente comando:
touch /opt/librenms/logs/librenms.log
A continuación, copia el archivo de configuración SNMP de ejemplo con el siguiente comando:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
A continuación, edita el archivo snmpd.conf:
nano /etc/snmp/snmpd.conf
Busca la siguiente línea:
com2sec readonly default RANDOMSTRINGGOESHERE
Y, sustitúyela por la siguiente línea
com2sec readonly default mysnmpserverkey
Guarda y cierra el archivo y, a continuación, descarga el binario de la distro SNMP y cópialo en la ubicación deseada:
curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x distro mv distro /usr/bin/distro
A continuación, reinicia el servicio SNMP para aplicar los cambios:
systemctl restart snmpd
A continuación, también tendrás que copiar el archivo cron y logrotate de LibreNMS a la ubicación deseada. Puedes copiarlos con el siguiente comando:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
A continuación, cambia el directorio a librenms e instala las depemdencias necesarias con el siguiente comando:
cd /opt/librenms ./scripts/composer_wrapper.php install --no-dev
Una vez instaladas todas las dependencias, cambia la propiedad del directorio librenms y dale los permisos necesarios con el siguiente comando:
chown -R www-data:librenms /opt/librenms chmod -R 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/
Cuando 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 librenms.example.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 /api/v0 { try_files $uri $uri/ /api_v0.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } }
Guarda y cierra el archivo y luego comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:
nginx -t
Deberías ver la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia el servicio Nginx para aplicar los cambios:
systemctl restart nginx
También puedes comprobar el estado del servicio Nginx con el siguiente comando:
systemctl status nginx
Deberías obtener 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 Sat 2020-09-05 06:15:20 UTC; 4min 5s ago Docs: man:nginx(8) Process: 28239 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 28250 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 28253 (nginx) Tasks: 3 (limit: 2353) Memory: 3.4M CGroup: /system.slice/nginx.service ??28253 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??28254 nginx: worker process ??28255 nginx: worker process Sep 05 06:15:20 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server... Sep 05 06:15:20 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Accede a la interfaz web de LibreNMS
Ahora, abre tu navegador web y accede a LibreNMS utilizando la URL http://librenms.example.com. Se te redirigirá a la página de comprobación previa a la instalación:
Asegúrate de que todas las extensiones necesarias están instaladas y luego haz clic en Configuración de la base de datos. Deberías ver la siguiente página:
Proporciona tu nombre de usuario de la base de datos, el nombre de la base de datos, la contraseña y haz clic en el botón Comprobar credenciales. Cuando lo hayas hecho correctamente, verás la siguiente página:
Ahora, haz clic en el botón Crear base de datos. Deberías ver la siguiente página:
A continuación, haz clic en el botón Crear usuario administrador. Deberías ver la siguiente página:
Proporciona tu nombre de usuario, correo electrónico y contraseña de administrador y haz clic en el botón Añadir usuario. Deberías ver la siguiente página:
A continuación, haz clic en el botón Finalizar la instalación. Deberías ver la siguiente página:
A continuación, haz clic en el botón«Validar la instalación». Deberías ver la página de inicio de sesión de LibreNMS:
Proporciona tu nombre de usuario y contraseña de administrador de LibreNMS y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de LibreNMS:
Conclusión
Enhorabuena! has instalado y configurado correctamente la herramienta de monitorización de red LibreNMS en el servidor Ubuntu 20.04. Ahora puedes añadir un dispositivo o host y empezar a monitorizar desde el panel de control de LibreNMS. No dudes en preguntarme si tienes alguna duda.