Búsqueda de sitios web

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

Artículos relacionados: