Cómo instalar la herramienta de monitorización LibreNMS en Ubuntu 22.04
LibreNMS es una herramienta de monitorización gratuita y de código abierto escrita en PHP/MySQL/SNMP. Es una bifurcación comunitaria de Observium con licencia GPL.
LibreNMS es compatible con una amplia gama de hardware y sistemas operativos, como Cisco, Linux, Juniper y muchos más. Admite servicios de red de autodescubrimiento mediante CDP, OSPF, BGP, SNMP y ARP. Proporciona un panel de usuario personalizable que puedes configurar según tus necesidades y también viene con un sistema de alertas personalizable. Además, LibreNMS es un sistema de monitorización extensible con soportes de integración como NFSen, collectd, etc.
LibreNMS admite varios métodos de autenticación, como MySQL local, Radius, LDAP y Active Directory. Esta característica es útil si tienes una infraestructura con autenticación centralizada. LibreNMS también proporciona un sistema de facturación que facilita al administrador comprobar y generar el uso de ancho de banda y la factura de cada usuario.
Esta guía te enseñará a instalar y configurar la herramienta de monitorización LibreNMS en el último servidor Ubuntu 22.04. Este tutorial cubrirá algunas configuraciones adicionales de la Pila LEMP para la instalación de LibreNMS.
Requisitos previos
- Un servidor Ubuntu 22.04
- Un usuario no root con privilegios de root
Instalar las dependencias de los paquetes
En primer lugar, instalarás las dependencias de los paquetes para LibreNMS. Esto incluirá la pila LEMP, algunas herramientas Python y algunas herramientas de red como SNMP, whois y rrdtool.
Antes de instalar ningún paquete, ejecuta el siguiente comando apt para actualizar y refrescar tu repositorio de Ubuntu.
sudo apt update
Ahora instala las dependencias de los paquetes para LibreNMS utilizando el siguiente comando apt.
sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip
Introduce Y para confirmar y pulsa ENTER para continuar. Y comenzará la instalación de las dependencias, espera hasta que se complete toda la instalación.
Descarga e Instalación de LibreNMS
Después de instalar las dependencias de los paquetes, instalarás LibreNMS desde el código fuente.
En primer lugar, debes añadir el nuevo usuario llamado ‘librenms’. Este usuario se utilizará para ejecutar la aplicación de la herramienta de monitorización LibreNMS. Puedes añadir el usuario «librenms» utilizando el siguiente comando.
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
El comando creará un nuevo usuario «librenms» con el directorio raíz /opt./librenms y el shell por defecto bash.
Ahora dirígete al directorio /opt y descarga el código fuente de la herramienta de monitorización LibreNMS utilizando el comando git que se indica a continuación.
cd /opt/ git clone https://github.com/librenms/librenms.git
Obtendrás un nuevo directorio llamado librenms dentro de /opt.
A continuación, ejecuta el siguiente comando para cambiar la propiedad y el permiso del directorio /opt/librenms.
La propiedad debe ser el usuario «librenms» y el permiso«771» que permite al usuario librenms leer, escribir y ejecutar dentro de ese directorio. El comando setfacl se utiliza para configurar las listas de control de acceso a los archivos dentro del directorio rrd (para almacenar el gráfico rrd), logs para almacenar los registros, la caché para almacenar la caché de LibreNMS y el almacenamiento para el directorio de datos.
chown -R librenms:librenms /opt/librenms chmod 771 /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/
Ahora inicia sesión con el usuario«librenms» utilizando el siguiente comando.
su - librenms
Por último, instala todas las dependencias PHP para la monitorización de LibreNMS utilizando el script PHP «composer_wrapper.php».
./scripts/composer_wrapper.php install --no-dev
A continuación se muestra la captura de pantalla durante la instalación de las dependencias de paquetes PHP para LibreNMS.
A continuación se muestra la captura de pantalla cuando se completa la instalación de LibreNMS. Como puedes ver, el script instalador instalará algunas herramientas Python adicionales del repositorio PyPi.
Configurar la zona horaria para PHP
En este paso, ahora configurarás la zona horaria para PHP editando el archivo de configuración php.ini.
Edita la configuración php.ini utilizando el editor nano.
sudo nano /etc/php/8.1/fpm/php.ini sudo nano /etc/php/8.1/cli/php.ini
Descomenta la opción date.timezone y añade tu zona horaria como se indica a continuación. En este ejemplo, la zona horaria será Etc/UTC.
date.timezone = Etc/UTC
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando timedatectl para establecer la zona horaria de tu sistema en Etc/UTC.
sudo timedatectl set-timezone Etc/UTC
Por último, reinicia el servicio PHP-FPM para aplicar los nuevos cambios al archivo de configuración php.ini.
sudo systemctl restart php8.1-fpm
Ya has completado la configuración de la zona horaria para PHP y tu sistema Ubuntu.
Configuración del servidor MariaDB
La herramienta de monitorización LibreNMS requiere cierta configuración específica en el servidor MariaDB. En este paso, editarás la configuración del servidor MariaDB y crearás una nueva base de datos y un nuevo usuario para LibreNMS.
Edita la configuración del servidor MariaDB 50-server.cnf utilizando el editor nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
En la sección «[mysqld]«, añade la siguiente configuración.
[mysqld] ... innodb_file_per_table=1 lower_case_table_names=0
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta los siguientes comandos systemctl para habilitar y reiniciar el servicio MariaDB. Esto permitirá que el servicio MariaDB se inicie al arrancar el sistema y aplicar los nuevos cambios a la configuración del servidor MariaDB.
sudo systemctl enable mariadb sudo systemctl restart mariadb
Ya has completado la configuración del servidor MariaDB.
Ahora accede al shell de MariaDB utilizando el comando mysql que se indica a continuación.
sudo mysql -u root -p
Ejecuta las siguientes consultas para crear una nueva base de datos librenms, el usuario librenms, y la contraseña es«password«.
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES;
Por último, escribe exit para salir de la shell MariaDB. Y ahora tienes que crear la base de datos y el usuario para la herramienta de monitorización LibreNMS.
Configurar el Pool PHP-FPM para LibreNMS
Después de configurar el servidor MariaDB, vas a configurar el pool PHP-FPM para LibreNMS. PHP-FPM te permite crear múltiples pools de procesos para cada una de tus aplicaciones. Esto te permite especificar un pool para una aplicación concreta, en este caso la herramienta de monitorización LibreNMS.
La configuración del pool de PHP-FPM está disponible en el directorio /etc/php/8.1/fpm/pool. d con la configuración por defecto del pool www.conf.
Ahora ejecuta el siguiente comando para copiar la configuración por defecto del pool www. conf a librenms.conf.
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
Edita la configuración del pool librenms.conf utilizando el editor nano.
sudo nano /etc/php/8.1/fpm/pool.d/librenms.conf
Cambia el nombre por defecto del pool de «[www]» a «[librenms]» como se indica a continuación.
[librenms]
Cambia el usuario y grupo por defecto a«librenms«.
user = librenms group = librenms
Ahora cambia el socket de escucha para PHP-FPM a /run/php-fpm-librenms.sock como eblow.
listen = /run/php-fpm-librenms.sock
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para reiniciar el servicio PHP-FPM y realizar nuevos cambios en la configuración del pool.
sudo systemctl restart php8.1-fpm
Por último, si compruebas todos los archivos sock disponibles en tu sistema, podrás ver el archivo sock /run/php-fpm-librenms.sock, que pertenece al pool PHP-FPM librenms.
Puedes comprobar el archivo sock utilizando el siguiente comando.
ss -pln
Configuración de los bloques del servidor Nginx para LibreNMS
Ya has completado la configuración del servidor MariaDB y PHP-FPM para LibreNMS, ahora vas a configurar los bloques de servidor Nginx para la herramienta de monitorización LibreNMS.
Crea un nuevo bloque de servidor Nginx librenms.conf utilizando el editor nano.
sudo nano /etc/nginx/sites-available/librenms.conf
Copia la siguiente configuración y pégala en el archivo. Además, cambia el nombre de dominio por defecto librenms .hwdomain.io por tu dominio.
server { listen 80; server_name librenms.hwdomain.io; 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 cuando hayas terminado.
A continuación, activa la configuración de los bloques del servidor librenms.conf, luego verifica la configuración de Nginx utilizando el siguiente comando.
sudo ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/ sudo nginx -t
Si obtienes una salida como test-successful, entonces tu configuración es correcta.
Por último, puedes reiniciar el servicio nginx para aplicar la nueva configuración de bloques de servidor librenms.conf.
sudo systemctl restart nginx
En este punto, tu instalación de LibreNMS es ahora accesible a través del nombre de dominio librenms.hwdomain.io.
Configuración adicional para LibreNMS
Antes de iniciar la instalación de LibreNMS, necesitarás alguna configuración adicional para tu sistema Ubuntu. Toda esta configuración es necesaria para LibreNMS.
En primer lugar, tendrás que crear un enlace simbólico (symlink) del archivo binario de LibreNMS al directorio /usr/bin, que permita a los usuarios ejecutar el comando lnms desde el shell.
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
Ahora copia el comando lnms para el shell bash en el directorio /etc/bash_completion.d/.
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
A continuación, tendrás que configurar el servicio SNMP para la herramienta de monitorización LibreNMS. El servicio SNMP se puede utilizar para añadir y supervisar servidores o dispositivos.
Copia el ejemplo de configuración del servicio SNMP proporcionado por LibreNMS en el archivo /etc/snmp/snmp.conf. A continuación, edita la configuración utilizando el editor nano.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf sudo nano /etc/snmp/snmpd.conf
Cambia la contraseña de comunidad por defecto«RANDOMSTRINGGOESHERE» para el servicio SNMP por tu contraseña segura.
com2sec readonly default RANDOMSTRINGGOESHERE
Guarda y cierra el archivo cuando hayas terminado.
Ahora ejecuta el siguiente comando para descargar el script binario del agente LibreNMS para comprobar la distribución Linux en el directorio /usr/bin/ y hazlo ejecutable.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro
Ahora activa el servicio snmpd y reinicia el servicio para aplicar la nueva configuración.
systemctl enable snmpd systemctl restart snmpd
Ya has completado la configuración snmp para LibreNMS.
Por último, ejecuta el siguiente comando para cron script y la configuración de logrotate para LibreNMS.
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Ahora puedes iniciar la instalación de LibreNMS desde el navegador web.
Iniciar el instalador web LibreNMS
Abre tu navegador web y visita el nombre de dominio de instalación de LibreNMS (por ejemplo http://librenms.hwdomain.io) y deberías ver la siguiente página de instalación de LibreNMS.
En primer lugar, puedes ver la página de comprobación previa a la instalación. Asegúrate de que todos los requisitos están marcados con el estado verde, lo que significa que se han superado todos los requisitos para la instalación de LibreNMS.
Haz clic en el icono de la base de datos en la parte superior para continuar.
Introduce los detalles de la base de datos MariaDB para tu instalación de LibreNMS y haz clic en el botón Comprobar credenciales.
Haz clic en el botón Crear base de datos para iniciar la configuración de la base de datos. Esto importará todas las tablas necesarias para LibreNMS. Cuando todo el proceso se haya completado, podrás ver el mensaje «Lasiembra de la base de datos se ha completado con éxito«.
Ahora haz clic en el icono de la llave en la parte superior para empezar a configurar el usuario de LibreNMS.
Introduce los detalles del usuario admin para la instalación de LibreNMS y haz clic en Añadir usuario.
Cuando se complete la instalación, podrás ver la siguiente página. El archivo .env y el archivo config. php se han escrito con una nueva configuración.
Además, debes validar tu instalación de LibreNMS haciendo clic en el enlace«validate your install«.
Ahora, serás redirigido a la página de inicio de sesión de LibreNMS. Introduce tu usuario y contraseña de administrador, y haz clic en Iniciar sesión.
Una vez que hayas iniciado sesión, podrás ver la siguiente página de validación de LibreNMS. Asegúrate de que todo el estado de LibreNMS está en color verde con Ok, lo que significa que toda la configuración de LibreNMS es correcta.
Ahora, ya estás listo para añadir una máquina host o hardware a tu herramienta de monitorización LibreNMS.
Conclusión
¡Enhorabuena! Ya has aprendido a instalar la herramienta de monitorización LibreNMS en el último Ubuntu 22.04 con el último PHP 8, servidor MariaDB y servidor web Nginx. También has aprendido a configurar LibreNMS para completar la instalación.