Table of Contents
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 autodescubrimiento, de código abierto, poderoso y rico en funciones que utiliza el protocolo SNMP. Admite 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:
- Detecta automáticamente un toda la red utilizando estos protocolos: CDP, FDP, LLDP, OSPF, BGP, SNMP y ARP.
- Tiene una interfaz de usuario web compatible con dispositivos móviles, con paneles personalizables.
- Admite un agente Unix .
- Admite escalado horizontal para expandirse con su red.
- Admite un sistema de alerta altamente flexible y personalizable; envía notificaciones por correo electrónico, irc, slack y más.
- Admite una API para administrar, representar gráficamente y recuperar datos de su sistema.
- Ofrece un sistema de facturación de tráfico.
- También es compatible con aplicaciones de Android e iOS que ofrecen funcionalidades básicas.
- Admite la integración con NfSen, collectd, SmokePing, RANCID y Oxidized.
- Admite múltiples métodos de autenticación como MySQL, HTTP, LDAP, Radius y Active Directory.
- 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.
URL de demostración. https://demo.librenms.org/ Nombre de usuario. Contraseña de demostración. : Demo Test Environment:
- Ubuntu 16.04 con LEMP Stack
- CentOS 7 con LEMP Stack
En este tutorial aprenderemos cómo instalar Herramienta de monitoreo de red LibreNMS. en un Ubuntu o CentOS. Linux (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 es, utilice el comando sudo para obtener privilegios de usuario root.
Paso 1: Instale los paquetes requeridos
1.. Primero comience instalando todos los paquetes requeridos usando 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-servidor 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-x rml php72w zip freestar.config.enabled_slots.push
2.. Una vez instalados todos los paquetes, nginx. los servicios php-fpm. mariadb. y snmp. se iniciarán y se habilitarán para que se inicien automáticamente en el momento del arranque (este suele ser el caso con Ubuntu. , de lo contrario, puede ejecutar los siguientes comandos para iniciarlos y habilitarlos.
————En Debian/Ubuntu———— $ sudo systemctl nginx start php7.0-fpm mysql snmp $ sudo systemctl enable nginx php7.0-fpm mysql snmp ————En CentOS/RHEL———— # systemctl nginx start php-fpm mariadb snmpd # systemctl enable nginx php-fpm mariadb snmpd
Paso 2: Instale la herramienta de monitoreo de LibreNMS
3.. Luego, 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 habilita 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.
————En Debian/Ubuntu———— $ sudo useradd librenms-d/opt/librenms-M-r $ sudo usermod-a-G librenms www-data ————En CentOS/RHEL———— # useradd librenms-d/opt/librenms-M-r # usermod-a-G librenms nginx
4.. Luego instale LibreNMS. a través del comando composer. como se muestra.
————En Debian/Ubuntu———— $ cd/opt $ sudo composer create-project–no-dev–keep-vcs librenms/librenms librenms dev-master ————En CentOS/RHEL———— # cd/opt # composer create-project–no-dev–keep-vcs librenms/librenms librenms dev-master
Paso 3: Cree la base de datos LibreNMS
5.. Antes de que pueda comenzar a usar el servidor MariaDB. necesita asegurar su instalación, ejecute el script de seguridad provisto en el paquete binario. Le pedirá que establezca una contraseña de root, elimine usuarios anónimos, desactive 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 sí/y.
$ sudo mysql_secure_installation [en Debian/Ubuntu. # mysql_secure_installation [en CentOS/RHEL.
6.. Luego, inicie sesión en 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.
7.. Luego, deshabilite el modo estricto 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 [en Debian/Ubuntu. # vi/etc/my.cnf [En 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 [En Debian/Ubuntu. # systemctl restart mariadb [En CentOS/RHEL.
Paso 4: Configure e inicie PHP-FPM
8.. A continuación, configure su date.timezone. en php.ini a su zona horaria, por ejemplo “África/Kampala”. como se muestra en la siguiente captura de pantalla.
————En Debian/Ubuntu———– $ sudo vim/etc/php/7.0/fpm/php.ini $ sudo vim/etc/php/7.0/cli/php.ini ————En CentOS/RHEL———— # vi/etc/php.ini
Establecer zona horaria en archivo PHP
9.. A continuación, habilite el módulo PHP mcrypt. en Ubuntu. y reinicie php-fpm. como se muestra.
————En 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.
; usuario = apache usuario = nginx grupo = apache; mantener el grupo como 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: Configure Nginx para LibreNMS
12.. En este paso, debe configurar un bloque de servidor Nginx. para librenms. con el fin de acceder a la interfaz de usuario web. Cree un archivo .conf como se muestra.
$ sudo vim/etc/nginx/conf.d/librenms.conf [En Debian/Ubuntu. # vi/etc/nginx/conf .d/librenms.conf [En CentOS/RHEL.
Agregue la siguiente configuración. edite server_name según sea necesario.
servidor escuchar 80; nombre_servidor librenms.example.com. root/opt/librenms/html; index index.php; juego de caracteres utf-8; gzip encendido; 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; ubicación/try_files $ uri $ uri//index.php?$query_string; ubicación/api/v0 try_files $ uri $ uri//api_v0.php?$query_string; ubicación ~ \ .php incluir fastcgi.conf; fastcgi_split_path_info ^ (. + \. php) (/.+) $; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; ubicación ~/\.ht denegar todo;
13.. Luego, guarde y salga del archivo. También elimine la configuración predeterminada del bloque del servidor y reinicie el servidor Nginx.
————En Debian/Ubuntu———— $ sudo rm/etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ————En CentOS/RHEL———— # systemctl restart nginx
NOTA. en CentOS/RHEL. deberá deshabilitar sección de sitio predeterminado. si este es el único sitio que está alojando. 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 los contextos. necesarios para LibreNMS utilizando los siguientes comandos.
————En 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.
En el módulo CentOS/RHEL http_fping 1.0; require tipo httpd_t; capacidad de clase net_raw; class rawip_socket getopt crear setopt escribir leer; # ============= httpd_t ============== permitir httpd_t self: capacidad net_raw; permitir httpd_t self: rawip_socket getopt crear setopt escribir leer;
16.. Luego, ejecute estos comandos.
————En 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 un cortafuegos en CentOS/RHEL. habilite el acceso HTTP/HTTPS a través del cortafuegos.
————En 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 de muestra de snmp para crear su archivo de configuración y ábralo para editarlo, de la siguiente manera.
————En Debian/Ubuntu———— $ sudo cp/opt/librenms/snmpd.conf.example/etc/snmp/snmpd.conf $ sudo vim/etc/snmp/snmpd .conf ————En 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.
Establecer cadena SNMP
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:
————En 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 ———–En 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: Crea Cron y configura Logrotate
20.. Ahora ejecuta 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. puede necesitar configurar estos registros para que se roten automáticamente, utilizando el archivo de configuración logrotate proporcionado, como esto.
# cp/opt/librenms/misc/librenms.logrotate/etc/logrotate.d/librenms
Luego, configure los permisos adecuados en el directorio raíz de instalación de LibreNMS y los archivos de registro.
————En Debian/Ubuntu———— $ sudo chown-R librenms: librenms/opt/librenms $ sudo setfacl-d-mg :: rwx/opt/librenms/rrd/opt/librenms/logs $ sudo setfacl-R-mg :: rwx/opt/librenms/rrd/opt/librenms/logs ————En CentOS/RHEL———— # chown-R librenms: librenms/opt/librenms # setfacl-d-mg :: rwx/opt/librenms/rrd/opt/librenms/logs # setfacl-R-mg :: rwx/opt/librenms/rrd/opt/librenms/logs
Paso 8: Acceda al instalador web de LibreNMS
22.. A continuación, utilice la siguiente URL para acceder al instalador web y siga las instrucciones en pantalla.
http://librenms .tecmint.lan/install.php
Para que esta dirección funcione en una máquina local, necesita configurar un DNS local usando el archivo de hosts (/etc/hosts), para resolución de dominio local o propósitos de prueba antes de comenzar a funcionar.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan
Configurar DNS local para dominio
23.. Verá la página de bienvenida de la instalación como se muestra en la siguiente captura de pantalla, haga clic en Siguiente etapa. para continuar.
LibreNMS Web Installer
24.. Luego ingrese la configuración (host de base de datos, puerto, nombre de usuario y contraseña de usuario) para la base de datos de LibreNMS y haga clic en Siguiente etapa. para continuar.
Generar configuración de Librenms
LibreNMS Configuración
29.. Una vez generada la configuración, como se muestra en la pantalla anterior t, cópialo y guárdalo en el directorio raíz de tu instalación, en un archivo llamado /opt/librenms/config.php.
# vi/opt/librenms/config.php LibreNMS Configuración Php ## Eche un vistazo en defaults.inc.php para ver ejemplos de configuraciones que puede establecer aquí. ¡NO EDITE defaults.inc.php! ### Configuración de la base de datos $ config ['db_host'] = 'localhost'; $ config ['db_port'] = '3306'; $ config ['db_user'] = 'librenms'; $ config ['db_pass'] = '[correo electrónico protegido]! # @% $ libre'; $ config ['db_name'] = 'librenms'; $ config ['db_socket'] = '';//Este es el usuario con el que se ejecutará LibreNMS//Asegúrese de que este usuario esté creado y tenga los permisos correctos para su instalación $ config ['user'] = 'librenms'; ### Ubicaciones: se recomienda mantener el valor predeterminado # $ config ['install_dir'] = "/opt/librenms"; ### Esto debe * solo * establecerse si desea * forzar * un nombre de host/puerto en particular ### Evitará que la interfaz web sea utilizable desde cualquier otro nombre de host # $ config ['base_url'] = "http://librenms.company.com "; ### Habilite esto para usar rrdcached. Asegúrese de que rrd_dir esté dentro del directorio rrdcached ### y que su servidor web tenga permiso para hablar con rrdcached. # $ config ['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Comunidad predeterminada $ config ['snmp'] ['comunidad'] = array ("público"); ### Modelo de autenticación $ config ['auth_mechanism'] = "mysql"; # predeterminado, otras opciones: ldap, http-auth # $ config ['http_auth_guest'] = "invitado"; # recuerde configurar este usuario si usa http-auth ### Lista de redes RFC1918 para permitir el descubrimiento basado en escaneo # $ config ['nets'] [] = "10.0.0.0/8"; # $ config ['nets'] [] = "172.16.0.0/12"; # $ config ['nets'] [] = "192.168.0.0/16"; # Actualizar configuración # $ config ['update_channel'] = 'release'; # descomenta seguir el canal de lanzamiento mensual # $ config ['update'] = 0; # descomente para deshabilitar completamente las actualizaciones
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.