LibreNMS es una herramienta de monitoreo de red gratuita y de código abierto para el sistema operativo Linux. Puede monitorear diferentes 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 descubrir automáticamente toda la red. Tiene una interfaz web simple y fácil de usar que lo ayuda a monitorear todos los dispositivos desde el navegador web. Tiene un amplio conjunto de características que incluyen detección automática, alertas personalizables, acceso a API, actualizaciones automáticas y muchas más.
En este tutorial, le mostraremos instrucciones paso a paso sobre cómo instalar LibreNMS en Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Se ha configurado una contraseña de root.
Cómo empezar
Primero, se recomienda actualizar los paquetes de su sistema a la última versión. Puedes hacerlo con el siguiente comando:
apt-get update -y
Después de actualizar todos los paquetes, instale 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 que todas las dependencias estén instaladas, puede continuar con el siguiente paso.
Instalar servidor LEMP
A continuación, deberá instalar el servidor web Nginx, el servidor MariaDB, PHP y otras extensiones de PHP en su servidor. Puede 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, deberá configurar la zona horaria en su archivo php.ini.
Primero, encuentre la zona horaria de su sistema con el siguiente comando:
cat /etc/timezone
Debería ver el siguiente resultado:
Etc/UTC
A continuación, edite ambos archivos php.ini con el siguiente comando:
nano /etc/php/7.4/fpm/php.ini
nano /etc/php/7.4/cli/php.ini
Defina la zona horaria de su sistema como se muestra a continuación:
date.timezone = Etc/UTC
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio PHP-FPM para aplicar los cambios:
systemctl restart php7.4-fpm
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar base de datos MariaDB
A continuación, deberá crear una base de datos y un usuario para LibreNMS.
Primero, inicie sesión en el shell de MariaDB con el siguiente comando:
mysql
Una vez que inicie sesión, cree 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 [email protected] IDENTIFIED by "password";
A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Luego, edite el archivo de configuración de MariaDB y agregue algunas configuraciones deseadas:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Agregue las siguientes líneas dentro de la sección [mysqld]:
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Guarde y cierre el archivo, luego reinicie el servicio MariaDB para aplicar los cambios:
systemctl restart mariadb
En este punto, su MariaDB está configurada. Ahora puede continuar con el siguiente paso.
Instalar y configurar LibreNMS
Primero, deberá crear un usuario separado para ejecutar LibreNMS. Puede agregarlo con el siguiente comando:
useradd -r -M -d /opt/librenms librenms
A continuación, agregue el usuario librenms al grupo www-data con el siguiente comando:
usermod -a -G librenms www-data
A continuación, cambie el directorio a /opt y descargue la última versión de LibreNMS con el siguiente comando:
cd /opt
git clone https://github.com/librenms/librenms.git librenms
A continuación, cree un archivo de registro para LibreNMS con el siguiente comando:
touch /opt/librenms/logs/librenms.log
A continuación, copie el archivo de configuración de muestra de SNMP con el siguiente comando:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
A continuación, edite el archivo snmpd.conf:
nano /etc/snmp/snmpd.conf
Busque la siguiente línea:
com2sec readonly default RANDOMSTRINGGOESHERE
Y lo reemplazó con la siguiente línea:
com2sec readonly default mysnmpserverkey
Guarde y cierre el archivo, luego descargue el binario de la distribución SNMP y cópielo 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, reinicie el servicio SNMP para aplicar los cambios:
systemctl restart snmpd
A continuación, también deberá copiar el archivo cron y logrotate de LibreNMS en la ubicación deseada. Puede 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
Luego, cambie el directorio a librenms e instale las dependencias requeridas usando el siguiente comando:
cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev
Una vez que todas las dependencias estén instaladas, cambie la propiedad del directorio librenms y otorgue 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/
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Nginx para LibreNMS
A continuación, deberá crear un archivo de configuración de host virtual Nginx para LibreNMS. Puedes crearlo con el siguiente comando:
nano /etc/nginx/conf.d/librenms.conf
Agregue 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;
}
}
Guarde y cierre el archivo, luego verifique Nginx en busca de cualquier error de sintaxis con el siguiente comando:
nginx -t
Debería ver el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicie el servicio Nginx para aplicar los cambios:
systemctl restart nginx
También puede verificar el estado del servicio Nginx usando el siguiente comando:
systemctl status nginx
Deberías obtener el siguiente resultado:
? 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 haya terminado, puede continuar con el siguiente paso.
Acceder a la interfaz web de LibreNMS
Ahora, abra su navegador web y acceda a LibreNMS usando la URL http://librenms.example.com. Se le redirigirá a la página de comprobación previa a la instalación:

Asegúrese de que todas las extensiones requeridas estén instaladas y luego haga clic en Base de datos ajustes. Debería ver la siguiente página:

Proporcione el nombre de usuario de su base de datos, el nombre de la base de datos, la contraseña y haga clic en Verificar Credenciales botón. Una vez que tenga éxito, debería ver la siguiente página:

Ahora, haga clic en Construir Base de datos botón. Debería ver la siguiente página:

A continuación, haga clic en Administrador usuario creación botón. Debería ver la siguiente página:

Proporcione su nombre de usuario, correo electrónico y contraseña de administrador y haga clic en Agregar Usuario botón. Debería ver la siguiente página:

A continuación, haga clic en Finalizar instalación botón. Debería ver la siguiente página:

A continuación, haga clic en "validar su instalación ". Debería ver la página de inicio de sesión de LibreNMS:

Proporcione su nombre de usuario y contraseña de administrador de LibreNMS y haga clic en Iniciar sesión botón. Debería ver el panel de control de LibreNMS:

Conclusión
¡Felicidades! Ha instalado y configurado con éxito la herramienta de monitoreo de red LibreNMS en el servidor Ubuntu 20.04. Ahora puede agregar un dispositivo o host y comenzar a monitorear desde el panel de control de LibreNMS. Siéntase libre de preguntarme si tiene alguna pregunta.