Cómo instalar LibreNMS en Ubuntu 22.04/20.04/18.04
LibreNMS es una herramienta de monitoreo de red de descubrimiento automático con licencia GPL basada en PHP, MySQL y SNMP. LibreNMS incluye soporte para una amplia gama de hardware de red y sistemas operativos, incluidos Juniper, Cisco, Linux, Foundry, FreeBSD, Brocade, HP, Windows y muchos más. Es una bifurcación de la herramienta de monitoreo "Observium".
En esta guía, cubriremos la instalación y configuración de LibreNMS en el servidor Ubuntu 20.04/18.04 LTS, con nombre en código Bionic Beaver. Tenemos otros tutoriales de monitoreo sobre Cacti, Zabbix, Grafana, Prometheus e InfluxDB.
A continuación se muestran las características principales de la herramienta de monitoreo de redes LibreNMS
- Tiene descubrimiento automático: descubrirá automáticamente toda su red mediante CDP, FDP, LLDP, OSPF, BGP, SNMP y ARP.
- Acceso API: LibreNMS proporciona una API completa para administrar, graficar y recuperar datos de su instalación.
- Actualizaciones automáticas: con LibreNMS puedes mantenerte actualizado automáticamente con nuevas funciones y correcciones de errores.
- Alertas personalizables: sistema de alertas altamente flexible, notifica por correo electrónico, irc, slack y más.
- Compatibilidad con encuestas distribuidas mediante escalamiento horizontal que crece con su red
- Sistema de facturación: genere fácilmente facturas de ancho de banda para los puertos de su red según el uso o la transferencia.
- Aplicación para Android e iOS: hay una aplicación nativa para iPhone/Android disponible que proporciona la funcionalidad principal.
- Múltiples métodos de autenticación: MySQL, HTTP, LDAP, Radius, Active Directory
- Soporte de integración para NfSen, Collectd, SmokePing, RANCID, Oxidized
A continuación se detallan los requisitos para ejecutar LibreNMS en Ubuntu
- Servidor de base de datos: usaremos MariaDB
- PHP
- Servidor web: usaremos Nginx
Paso 1: instale PHP y los módulos necesarios
Ubuntu 18.04+ tiene PHP 7.x en sus repositorios. Instálelo ejecutando los siguientes comandos en su terminal:
sudo apt update
sudo apt -y install wget php php-{pear,cgi,common,curl,mbstring,gd,mysql,bcmath,imap,json,xml,snmp,fpm,zip}
Para confirmar la versión de php instalada, use el comando php -v
:
# Ubuntu 22.04
$ php -v
PHP 8.1.2-1ubuntu2.13 (cli) (built: Jun 28 2023 14:01:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.13, Copyright (c), by Zend Technologies
# Ubuntu 20.04
$ php -v
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
# Ubuntu 18.04
$ php -v
PHP 7.2.8 (cli) (built: Jul 17 2018 09:50:46) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Configurar e iniciar PHP-FPM
Asegúrese de que date.timezone esté configurado en php.ini en su zona horaria preferida:
Edite ambos archivos:
sudo vim /etc/php/*/fpm/php.ini
Cambie date.timezone
en la sección [Fecha]
:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Africa/Nairobi
Realice lo mismo en el siguiente archivo.
sudo vim /etc/php/*/cli/php.ini
Reinicie php fpm:
sudo systemctl restart php*-fpm.service
Paso 2: instale el servidor web Nginx
Para esta configuración, usaremos Nginx como servidor web para LibreNMS, lo instalaremos ejecutando:
sudo apt remove apache2 -y
sudo apt -y install nginx
Asegúrese de que esté habilitado para iniciarse en el arranque:
sudo systemctl enable nginx
Paso 3: instalar y configurar MariaDB
Instale el servidor MariaDB:
sudo apt install mariadb-server
LibreNMS no es totalmente compatible con el modo estricto de MySQL; por ahora, desactívelo después de instalar mysql.
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
Dentro de la sección [mysqld]
agregue:
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Luego reinicie mysql
sudo systemctl restart mariadb
Una vez que se haya instalado y configurado el servidor de la base de datos, debe crear una base de datos
para LibreNMS.
$ sudo mysql -u root
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit
Paso 4: Descargue e instale LibreNMS
Descargaremos e instalaremos LibreNMS en este paso. Si no tienes git, primero instálalo:
sudo apt install git -y
LibreNMS se ejecutará bajo su propio usuario llamado librenms al cual debemos agregar:
sudo useradd -r -M -d /opt/librenms librenms
getent passwd librenms
Agregue este usuario al grupo de usuarios web www-data
sudo usermod -a -G librenms www-data
Cuando termine. proceder a instalar los paquetes requeridos por LibreNMS
sudo apt update
sudo apt install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3 python3-pip python3-mysqldb snmp snmpd python3-memcache mtr-tiny composer acl unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd -y
Clonar el código fuente de LibreNMS desde github:
$ git clone https://github.com/librenms/librenms.git librenms
Cloning into 'librenms'...
remote: Counting objects: 130428, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 130428 (delta 10), reused 10 (delta 4), pack-reused 130396
Receiving objects: 100% (130428/130428), 128.54 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (88754/88754), done.
Checking out files: 100% (8476/8476), done.
Mueve la carpeta librenms
a /opt
sudo mv librenms/ /opt/
Configurar snmpd
Copiar plantilla de configuración:
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf
Edite el texto que dice RANDOMSTRINGGOESHERE
y establezca su propia cadena de comunidad.
$ sudo vim /etc/snmp/snmpd.conf
com2sec readonly default LibreStr0ngSecret
Próxima distribución de descarga:
curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x distro
sudo mv distro /usr/bin/distro
Reiniciar snmpd
sudo systemctl restart snmpd
Paso 5: Configurar PHP-FPM y trabajo cron
Copie el archivo PHP-FPM www.conf predeterminado
cd /etc/php/*/fpm/pool.d
sudo cp www.conf librenms.conf
cd ~/
Abra el archivo para editarlo:
sudo vim /etc/php/*/fpm/pool.d/librenms.conf
Cambie [www]
a [librenms]
:
[librenms]
Cambie usuario
y grupo
a “librenms”:
user = librenms
group = librenms
Cambie escuchar
a un nombre único:
listen = /run/php-fpm-librenms.sock
Crear trabajo cron de LibreNMS
Ejecute el siguiente comando para configurar el trabajo cron:
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Paso 6: Configurar la rotación de registros y los permisos
LibreNMS mantiene registros en /opt/librenms/logs
. Con el tiempo, estos pueden crecer y rotarse. Para rotar los registros antiguos, puede utilizar el archivo de configuración logrotate proporcionado:
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Finalmente, arregle todos los permisos.
sudo chown -R librenms:librenms /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
Ejecute la instalación del compositor:
sudo su - librenms
./scripts/composer_wrapper.php install --no-dev
exit
Habilite la finalización del comando lnms:
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
Paso 7: Configurar Nginx para LibreNMS
Creemos la definición de VirtualHost para que LibreNMS utilice Nginx.
Crea un nuevo archivo:
sudo vim /etc/nginx/conf.d/librenms.conf
Agregue y modifique los siguientes datos:
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 ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Verifique la sintaxis:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si todo está bien, reinicie nginx:
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
sudo systemctl restart php*-fpm.service
Paso 8: Configurar LibreNMS en la interfaz de usuario web
Ahora abra su navegador web e inicie el instalador:
http://librenms.example.com/install.php
Confirme que las comprobaciones previas a la instalación sean exitosas.
Ingrese los detalles de conexión de la base de datos.
Verifique las credenciales proporcionadas y cree la base de datos.
Los procesos de verificación y creación de credenciales de la base de datos deberían ser exitosos.
Cree el primer usuario administrador de LibreNMS.
El nombre de usuario debe aparecer en la pantalla.
Valide su instalación de LibreNMS en Ubuntu:
Inicie sesión en el portal de administración de LibreNMS y comience a configurar su monitoreo de red
Otras lecturas:
- Cómo instalar y configurar Cacti en Ubuntu
- Instalar el servidor Zabbix en Ubuntu