Búsqueda de sitios web

LibreNMS: una herramienta de monitoreo de red con todas las funciones para Linux


LibreNMS es un sistema de monitoreo de red basado en PHP, de código abierto, potente y rico en funciones, con descubrimiento automático, que utiliza el protocolo SNMP. Es compatible con una amplia gama de sistemas operativos, incluidos Linux, FreeBSD, así como dispositivos de red, incluidos Cisco, Juniper, Brocade, Foundry, HP y muchos más.

Características de LibreNMS:

  1. Descubre automáticamente una red completa utilizando estos protocolos: CDP, FDP, LLDP, OSPF, BGP, SNMP y ARP.
  2. Tiene una interfaz de usuario web compatible con dispositivos móviles, con paneles personalizables.
  3. Soporta un agente Unix.
  4. Admite escalamiento horizontal para expandirse con su red.
  5. Admite un sistema de alerta altamente flexible y personalizable; envía notificaciones por correo electrónico, irc, slack y más.
  6. Admite una API para administrar, representar gráficamente y recuperar datos de su sistema.
  7. Ofrece un sistema de facturación de tráfico.
  8. También es compatible con aplicaciones de Android e iOS que ofrecen funcionalidades básicas.
  9. Admite la integración con NfSen, Collectd, SmokePing, RANCID y Oxidized.
  10. Admite múltiples métodos de autenticación como MySQL, HTTP, LDAP, Radius y Active Directory.
  11. Permite la actualización automática y muchas otras funciones.

Hay una demostración en línea disponible para que la pruebe antes de instalar LibreNMS en sistemas Linux.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Entorno de prueba:

  1. Ubuntu 16.04 con pila LEMP
  2. CentOS 7 con pila LEMP

En este tutorial aprenderemos cómo instalar Herramienta de monitoreo de red LibreNMS en un Ubuntu o CentOS Linux recién instalado (las mismas instrucciones también funcionan en Distribuciones basadas en Debian y RHEL).

NOTA: Todas estas instrucciones de este artículo deben ejecutarse como usuario root; si no lo eres, utiliza el comando sudo para obtener root privilegios de usuario.

Paso 1: instale los paquetes necesarios

1. Primero comience instalando todos los paquetes necesarios utilizando el administrador de paquetes predeterminado como se muestra.

En Ubuntu/Debian

sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois

En CentOS/RHEL

yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool

2. Una vez instalados todos los paquetes, nginx, php-fpm, mariadb y snmp< Los servicios se iniciarán y se habilitarán para que se inicien automáticamente en el momento del arranque (este es normalmente el caso con Ubuntu); de lo contrario, puede ejecutar los siguientes comandos para iniciarlos y habilitarlos.

------------ On Debian/Ubuntu ------------ 
sudo systemctl nginx start php7.0-fpm mysql snmp 
sudo systemctl enable nginx php7.0-fpm mysql snmp

------------ On CentOS/RHEL ------------ 
systemctl nginx start php-fpm mariadb snmpd 
systemctl enable nginx php-fpm mariadb snmpd

Paso 2: Instale la herramienta de monitoreo LibreNMS

3. A continuación, cree un usuario del sistema llamado librenms, con el comando useradd; donde el indicador -M deshabilita la creación del directorio de inicio del usuario y -r permite la creación de una cuenta del sistema. Luego agregue el usuario librenms al grupo www-data (en Ubuntu) o nginx (en CentOS) de la siguiente manera.

------------ On Debian/Ubuntu ------------ 
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data   

------------ On CentOS/RHEL ------------ 
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx           

4. Luego instale LibreNMS mediante el comando composer como se muestra.

------------ On Debian/Ubuntu ------------ 
cd /opt
sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

------------ On CentOS/RHEL ------------ 
cd /opt
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

Paso 3: crear la base de datos LibreNMS

5. Antes de poder comenzar a utilizar el servidor MariaDB, debe proteger su instalación y ejecutar el script de seguridad proporcionado en el paquete binario. Le pedirá que establezca una contraseña de root, elimine los usuarios anónimos, deshabilite el inicio de sesión de root de forma remota y elimine la base de datos de prueba.

Puede iniciar el script emitiendo el siguiente comando y responder todas las preguntas con yes/y.

sudo mysql_secure_installation   [On Debian/Ubuntu]
mysql_secure_installation        [On CentOS/RHEL]

6. Luego inicie sesión en la base de datos MariaDB para crear una base de datos para LibreNMS (recuerde usar una contraseña segura en un entorno de producción).

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Luego, deshabilite el modo estricto de MySQL por ahora (la compatibilidad con el modo estricto de MySQL aún no se ha agregado).

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
vi /etc/my.cnf        [On CentOS/RHEL]

Dentro de la sección [mysqld] agregue.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Luego reinicie el servidor de la base de datos para efectuar los cambios.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Paso 4: Configurar e iniciar PHP-FPM

8. A continuación, establezca su fecha.zona horaria en php.ini en su zona horaria actual, por ejemplo “África/Kampala”. ”, como se muestra en la siguiente captura de pantalla.

------------ On Debian/Ubuntu ------------ 
sudo vim /etc/php/7.0/fpm/php.ini
sudo vim /etc/php/7.0/cli/php.ini

------------ On CentOS/RHEL ------------ 
vi /etc/php.ini

9. A continuación, habilite el módulo PHP mcrypt en Ubuntu y reinicie php-fpm como se muestra.

------------ On Debian/Ubuntu ------------ 
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

10. En CentOS/RHEL debe realizar los siguientes cambios en el archivo de configuración php-fpm.

vi /etc/php-fpm.d/www.conf

Realice los siguientes cambios.

;user = apache
user = nginx

group = apache   ; keep group as apache

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php7.2-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

11. Reinicie el servicio php-fpm como se muestra.

systemctl restart php-fpm

Paso 5: Configurar Nginx para LibreNMS

12. En este paso, debe configurar un bloque de servidor Nginx para librenms para poder acceder a la interfaz de usuario web. Cree un archivo .conf como se muestra.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

Agregue la siguiente config, edite server_name según sea necesario.

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.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

13. Luego guarde y salga del archivo. También elimine la configuración de bloqueo del servidor predeterminada y reinicie el servidor Nginx.

------------ On Debian/Ubuntu ------------ 
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
systemctl restart nginx

NOTA: En CentOS/RHEL, deberá desactivar la sección sitio predeterminado, si esta es la único sitio que aloja. Elimine la sección del servidor del archivo /etc/nginx/nginx.conf.

14. También en CentOS/RHEL, debe instalar la herramienta de políticas para SELinux y configurar el >contextos que necesita LibreNMS usando los siguientes comandos.

------------ On CentOS/RHEL ------------ 
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
restorecon -RFvv /opt/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
restorecon -RFvv /opt/librenms/rrd/
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1

15. Permita fping creando el archivo http_fping.tt con el siguiente contenido.

module http_fping 1.0;

require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}

#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };

16. Luego ejecute estos comandos.

------------ On CentOS/RHEL ------------ 
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp

17. Si está utilizando Firewall en CentOS/RHEL, habilite el acceso HTTP/HTTPS a través del firewall.

------------ On CentOS/RHEL ------------ 
firewall-cmd --zone public --add-service http
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --zone public --add-service https
firewall-cmd --permanent --zone public --add-service https

Paso 6: Configurar SNMPD para LibreNMS

18. Ahora use la configuración snmp de muestra para crear su archivo de configuración y ábralo para editarlo, de la siguiente manera.

------------ On Debian/Ubuntu ------------ 
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf

------------ On CentOS/RHEL ------------ 
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf

Busque la cadena RANDOMSTRINGGOESHERE y cámbiela a su propia cadena comunitaria como se muestra en la captura de pantalla.

19. A continuación, descargue un script de shell en su sistema, que ayuda a detectar qué sistema operativo y, si es Linux, detectará qué distribución de Linux está utilizando:

------------ On Debian/Ubuntu ------------ 
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

------------ On CentOS/RHEL ------------ 
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

Paso 7: crear Cron y configurar Logrotate

20. Ahora ejecute el siguiente comando para configurar un trabajo cron para LibreNMS.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

21. A continuación, todos los registros de LibreNMS se registran en /opt/librenms/logs; es posible que deba configurar estos registros para que giren automáticamente. , usando el archivo de configuración logrotate proporcionado, así.

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Luego configure los permisos apropiados en el directorio raíz de instalación de LibreNMS y en los archivos de registro.

------------ On Debian/Ubuntu ------------
sudo chown -R librenms:librenms  /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

------------ On CentOS/RHEL ------------ 
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

Paso 8: acceda al instalador web LibreNMS

22. A continuación, utilice la siguiente URL para acceder al instalador web y siga las instrucciones que aparecen en pantalla.

http://librenms.tecmint.lan/install.php

Para que esta dirección funcione en una máquina local, necesita configurar un DNS local utilizando el archivo hosts (/etc/hosts), para la resolución del dominio local o con fines de prueba antes de publicarlo.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Verá la página de bienvenida a la instalación como se muestra en la siguiente captura de pantalla; haga clic en Siguiente etapa para continuar.

24. Luego ingrese la configuración (host de la base de datos, puerto, nombre de usuario y contraseña de usuario) para la base de datos LibreNMS y haga clic en Siguiente etapa para continuar.

25. El instalador web ahora comenzará a importar la base de datos MySQL, esto llevará algún tiempo. Tenga en cuenta que el proceso intentará pausarse en ciertos puntos; simplemente haga clic en Reintentar para continuar con el proceso de importación.

26. Una vez completada la importación de la base de datos, debería ver el mensaje "¡La base de datos está actualizada!", como se muestra en la captura de pantalla siguiente. Luego haga clic en Ir a Agregar usuario para continuar.

27. A continuación, agregue un usuario de LibreNMS, especifique el nombre de usuario, la contraseña y el correo electrónico, luego haga clic en Agregar usuario para efectuar los cambios.

28. Ahora haga clic en crear la configuración LibreNMS para su sistema, haciendo clic en Generar configuración.

29. Una vez generada la configuración, como se muestra en la captura de pantalla anterior, cópiela y guárdela en el directorio raíz de su instalación, en un archivo llamado /opt/librenms/config.php. .

vi /opt/librenms/config.php
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'librenms';
$config['db_pass'] = '=@!#@%$libre';
$config['db_name'] = 'librenms';
$config['db_socket'] = '';

// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';

### Locations - it is recommended to keep the default
#$config['install_dir']  = "/opt/librenms";

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url']        = "http://librenms.company.com";

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

### Default community
$config['snmp']['community'] = array("public");

### Authentication Model
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

Update configuration
#$config['update_channel'] = 'release';  # uncomment to follow the monthly release channel
#$config['update'] = 0;  # uncomment to completely disable updates

30. Guarde y cierre el archivo. Luego regrese al instalador web para continuar con el proceso de instalación, haciendo clic en Finalizar instalación.

31. Ahora que la instalación de LibreNMS está completa, puede hacer clic en “validar su instalación y solucionar cualquier problema”, debería aparecer la página de inicio de sesión.

32. A continuación, introduzca sus credenciales de usuario para acceder a la página de validación.

33. Desde el proceso de validación de la instalación, LibreNMS ha descubierto dos problemas, uno es que no se han agregado dispositivos (esto es una advertencia por ahora) y el segundo, tenemos no estableció el permiso apropiado en el archivo de configuración (/opt/librenms/config.php) que se agregó manualmente, como se muestra en la captura de pantalla a continuación.

Ahora ejecute el siguiente comando para establecer el permiso correcto en el archivo de configuración.

sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Para agregar dispositivos, vaya a: http://librenms.tecmint.lan/addhost. Después de agregar dispositivos, puede ir a la página de inicio y agregar varios paneles.

¡Eso es todo! Puede encontrar más información, incluida la instalación y configuración, en la documentación de LibreNMS en https://docs.librenms.org/.

LibreNMS es un sistema de monitoreo de red con todas las funciones que admite una variedad de hardware de red. Esperamos que esta haya sido una guía de instalación lúcida. Si tiene alguna pregunta, comuníquese con nosotros a través del formulario de comentarios a continuación.