Configurar LibreNMS

Metas

Introducción

En este ejercicio configuraremos LibreNMS como nuestra herramienta de monitoreo de red.

Conectando a su servidor LibreNMS

LibreNMS se ejecuta en su servidor srv1, es decir, puede conectarse al servidor yendo a:

srv1.campusY.ws.nsrc.org

Cuando haya terminado la configuración, la interfaz web de LibreNMS estará disponible en:

http://librenms.campusY.ws.nsrc.org

El usuario es "admin" y el password is "<CLASS_PASSWORD>".

Ver la configuración

LibreNMS ya está configurado casi completamente en su servidor. Los siguientes ejercicios le indicarán que examine el fichero config.php para comprender algunos de los elementos básicos que deben tenerse en cuenta al instalar el paquete.

Configurando la comunidad SNMP

En primer lugar, vamos a cambiar la comunidad SNMP que LibreNMS utilizará para agregar nuevos dispositivos y sondearlos.

Primero asegúrese de ser el usuario root:

$ sudo bash

Despues, edite el archivo /opt/librenms/config.php,

# editor /opt/librenms/config.php

y encuentre la línea:

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

Y cámbiela a:

$config['snmp']['community'] = array("NetManage");

  ### Dígale a LibreNMS qué subredes se permiten escanear automáticamente

De forma predeterminada, LibreNMS intentará solicitar la lista de "vecinos" que los dispositivos de red "ven" en la red. Esto se hace utilizando el Protocolo de detección de capa de enlace (LLDP) o el CDP de Cisco (Cisco Discovery Protocol).

Sin embargo, para evitar escanear redes fuera de nuestra organización, LibreNMS necesita saber qué subredes se permiten para buscar nuevos dispositivos.

Todavía en el archivo /opt/librenms/config.php, encuentre las líneas:

#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

Y sustituya esto con lo siguiente para escanear las subredes específicas usadas por la red del taller.

$config['nets'][] = "100.68.Y.128/28";
$config['nets'][] = "172.2Y.0.0/16";

Recuerde reemplazar "Y" con su número de campus.  

Evitar dispositivos duplicados

Puede suceder que el mismo dispositivo sea visto varias veces por LibreNMS - una vez usando LLDP/CDP, y otra vez a través de OSPF (por ejemplo).

En ese caso, LibreNMS termina agregando dos veces. Por ejemplo, puede ver dos dispositivos llamados rtr2-fa0-0.ws.nsrc.org y rtr2, y esto no es deseable.

Dado que ambos dispositivos son de hecho el mismo, su SNMP sysName será idéntico, por lo que podemos decirle a LibreNMS que NO agregue dispositivos si uno ya existe con el mismo sysName - después de todo, esto no debería suceder en una red bien configurada! :)

Aquí un ejemplo de esto:

2016-07-06 20:16:47 rtr4 discovery Device rtr4 (10.10.0.224) (port FastEthernet0/0) autodiscovered through CDP on rtr1.ws.nsrc.org
2016-07-06 20:09:45 rtr4-fa0-0 discovery Device rtr4-fa0-0.ws.nsrc.org (10.10.0.224) (port ) autodiscovered through OSPF on rtr1-fa0-0.ws.nsrc.org

Para evitar esto, agregaremos la siguiente configuración:

$config['allow_duplicate_sysName'] = false;

Podrá ver si hay dispositivos duplicados detectados en el Registro de eventos (Resumen -> Registro de eventos).

Después de agregar la configuración anterior, guarde el archivo y salga. Estamos casi listos!

Agregar un host

Vamos a agregar a localhost (es decir: SU servidor virtual), utilizando los siguientes comandos. Más adelante lo haremos desde la interfaz web:

# cd /opt/librenms
# php addhost.php localhost NetManage v2c

Debería ver:

Trying community NetManage ...
Added device localhost (1)

Observe que le decimos explícitamente a LibreNMS qué comunidad SNMP utilizar. También suponemos que es SNMP v2c. Si está utilizando v3, hay pasos adicionales que no se proporcionan aquí.

Configuración final

Descubrir y sondear nodos recién agregados

LibreNMS primero "descubre" cada host que se haya agregado. Esto significa que examina detalladamente cada host agregado previamente y determina qué información debe sondear. El script discover.php se encarga de esto.

Nota: Este script no escanea automáticamente su red para encontrar nuevos dispositivos.

Para ejecutarlo, haga lo siguiente:

# cd /opt/librenms
# sudo -u librenms php discovery.php -h all

NOTA: Esto puede tardar un tiempo considerable. Si existen dispositivos conectados en la red que todavía no tienen SNMP configurado, el script se demorará más.

Una vez que esto haya terminado, ahora puede "sondear" a los hosts. Esto significa que LibreNMS ahora sabe lo que debe preguntar a cada host, pero todavía tiene que poblar su base de datos con valores iniciales para cada elemento. Para hacer esto hacemos:

# sudo -u librenms php poller.php -h all

Como se puede ver el script poller.php hace mucho trabajo con sólo unos pocos dispositivos.

Instalación completa

!Eso es todo! Ahora debe ser capaz de iniciar sesión en http://librenms.campusY.ws.nsrc.org/ y empezar a explorar la información que se está recopilando para sus dispositivos supervisados.

Puede agregar algunos dispositivos adicionales a través de la interfaz web de LibreNMS. Agreguemos los siguientes:

¿Qué hay de tus otros servidores? host [1..6] .campusY.ws.nsrc.org, srv1.campusY.ws.nsrc.org?

Usando la comunidad de la clase snmp. Vea si puede averiguar cómo hacerlo por su cuenta.

** NOTA **: cuando agrega por primera vez un dispositivo, éste puede terminar en el grupo de dispositivos "Genéricos". Esto se debe a LibreNMS necesita ejecutar su trabajo cron para sondear todos los dispositivos, obtener información más específica del dispositivo y luego clasificar el dispositivo en el grupo adecuado. Esto podría tomar de 5 a 10 minutos

** POR FAVOR NOTE **: No hemos cubierto la configuración de HTTPS en este ejemplo, por lo que su instalación de LibreNMS no es segura por defecto. No lo exponga a Internet pública a menos que haya configurado HTTPS y haya realizado los pasos de endurecimiento adecuados del servidor web.

Personalice su instalación

Cuando inicia sesión por primera vez en LibreNMS, su pantalla predeterminada está vacía. Esto se debe a que tiene permiso para editar su pantalla predeterminada usando la herramienta de edición del tablero (Dashboard) para que se vea como usted prefiera. Para hacer esto, haga:    ~~~~ * Haga clic en el icono Editar panel que se parece a un lápiz al lado del icono rojo de un cubo de basura. * Nombre su tablero o déjelo como "Predeterminado" * Si selecciona Privado, su panel solo está disponible para su usuario. * Si lo hace compartido (lectura), usted controla el aspecto, pero otros pueden usarlo. * Si lo hace simplemente Compartido, entonces cualquiera puede actualizar la apariencia del tablero. * Haga clic en Agregar widgets y seleccione los elementos que desea ver de forma predeterminada al iniciar sesión. * Coloque el widget seleccionado en la pantalla donde lo desee. * Puede hacer clic en la "X" para cerrar el aviso sobre la edición de los paneles para que no aparezca la próxima vez que inicie sesión. * Si desea gráficos específicos, puede seleccionar el widget "Gráfico" y personalizarlo. * Muchas personas usan los widgets Top-devices y Top-interfaces. * Para la nota de Top-interfaces, puede establecer los detalles en este widget. Cuando termine, presione el botón "Establecer". ~~~~

Recuerde, puede cambiar el tamaño de los widgets como lo desee.

Cuando haya terminado, presiona el botón "Actualizar". Tenga en cuenta que los widgets de dispositivos superiores e interfaces superiores llevarán algún tiempo antes de que se llenen con información interesante, por lo que aparecerán en blanco durante un tiempo.

Si crea varios Tableros, puede alternar entre su inicio de sesión predeterminado en el Tablero yendo al icono de la persona,seleccionando "Mi configuración" y bajando al "Tablero predeterminado".

Ver un gráfico en tiempo real en una interfaz

En la interfaz de LibreNMS haga:

* Seleccionar dispositivos ==> Todos los dispositivos ==> Servidor
* Seleccione un servidor de la pantalla resultante (haga clic en su nombre)
* Haga clic en el elemento "Puertos" cerca de la parte superior.
* Haga clic en la interfaz de red "eth0"
* Junto al elemento Gráficos, seleccione "Tiempo real"
* Seleccione un "Intervalo de sondeo" que sea suficiente para ver información.
  * Haga clic en "60s"

Si no ve ningún tráfico, vaya a ese servidor y haga algo ... Como,

$ ping srvX.campusY.ws.nsrc.org

O algún otro dispositivo o máquina, o ejecute una actualización de apt-get, etc.

Algunas cosas más

Crear una alerta

LibreNMS tiene un número de alertas predeterminadas que pueden utilizarse fácilmente. Por defecto, establecerá un contacto para su instalación. Este será el contacto que recibirá todas las notificaciones.

Vamos a crear una alerta que se efectuará si un dispositivo falla o si se recupera. Usted puede, además, crear una alerta que ocurrirá solamente cuando un dispositivo falla, y muchas más opciones.

Para empezar, tendremos que configurar nuestro LibreNMS para enviar alertas.

En su interfaz web de LibreNMS, haga lo siguiente:

Enable email alerting:          Yes
How to deliver mail:            smtp
From name:                      LibreNMS
From email address:             root@srv1.campusY.ws.nsrc.org
Use HTML emails:                No
Sendmail path:                  /usr/sbin/sendmail
SMTP Host:                      localhost
SMTP Port:                      25
SMTP Timeout:                   10
SMTP secure:                    <blank>
SMTP Auto TLS Support:          false
SMTP Authentication:            No
SMTP Authentication Username:   NULL
SMTP Authentication Password:   <blank>

Puede verificar que su e-mail funciona oprimiendo el botón "Test transport" en la pestaña "Email transport"

NOTA: El e-mail puede que no funcione. Para arreglarlo, haga lo siguiente en la línea de comandos de srv1:

# touch /var/mail/sysadm
# chown sysadm:mail /var/mail/sysadm

Puede que tenga que repetir la operación "Test Transport". Luego, escriba:

# su - sysadm
$ mutt

y vea si un mensaje de LibreNMS ha llegado. Debería tener un asunto de "Testing transport from LibreNMS". Puede salir de Mutt presionando la tecla "q" dos veces.

Ahora estamos listos para agregar una alerta.

Ahora hemos de hacer algunas selecciones razonables. La entidad "devices.status" alertará siempre que un dispositivo falle o se recupere. Esto significa que un mensaje se enviará a sysadm@srv1.campusY.ws.nsrc.org desde root@srv1.campusY.ws.nsrc.org.

Puede entrar la siguiente información en la caja de "Alert Rules":

Entity:         devices.status
Condition:      Equals
Value:          <blank>
Connection:     <leave as is>
Severity:       Critical
Max alerts:     1
Delay:          1 m
Interval:       <blank>
Mute alerts:    OFF
Invert match:   OFF
Rule name:      Devices up/down
Map to:         <blank>
Procedure URL:  <blank>

Ahora oprima "Save Rule".

Para verificar que su nueva alerta funciona, debe apagar uno de los nodos que está monitorizando con LibreNMS. Seleccione uno de los nodos en su campus que esté visible en LibreNMS y apáguelo, como sigue:

$ sudo halt -p

Ahora, regrese a srv1.campusY.ws.nsrc.org y escriba:

$ mutt

y espere unos minutos. Luego de un rato, recibirá un e-mail con el siguiente encabezado:

Alert for device hostX.campusY.ws.nsrc.org - Devices up/down

Si lee la alerta, verá algo así:

Date: Tue, 20 Feb 2018 10:29:01 +0000
From: root@srv1.campusY.ws.nsrc.org
To: NOC <sysadm@srv1.campusY.ws.nsrc.org>
Subject: Alert for device hostX.campusY.ws.nsrc.org - Devices up/down
X-Mailer: LibreNMS

Alert for device hostX.campusY.ws.nsrc.org - Devices up/down
Severity: critical
Timestamp: 2018-02-20 10:25:28
Unique-ID: 371
Rule: Devices up/down
Faults:
  #1: sysObjectID => enterprises.8072.3.2.10; sysDescr => Linux
hostX.campusY.ws.nsrc.org 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12
14:59:54 UTC 2017 x86_64;
Alert sent to: NOC <sysadm@srv1.campusY.ws.nsrc.org>

Fíjese en los elementos sysObjectID y SysDescr. Estos son los nombres de OIDs contenidos en los ficheros MIB de la instalación de srv1.campusY.ws.nsrc.org.

Salga de Mutt oprimiendo "q" dos veces y luego: ~ $ exit # ~

Fíjese que cuando inicie el nodo de nuevo, recibirá un mensaje como el siguiente:

Device hostX.campusY.ws.nsrc.org recovered from Devices up/down

Si añade una alerta con el campo "entity" de "macros.device_down", sólo será notificado cuando el dispositivo falle.

Note: En este momento, pida al instructor que restaure el nodo que se apagó anteriormente.

Mapa de Frontpage global

Es posible crear un mapa global de todas sus entradas en LibreNMS. Si le interesa, puede ver la documentación de LibreNMS sobre esto en:

* http://docs.librenms.org/Extensions/Globe-Frontpage/
* http://docs.librenms.org/Support/SNMP-Configuration-Examples/

Debe usar la variable sysLocation de SNMP en sus servidores y dispositivos de red, que proporcione información de latitud y longitud para cada elemento para que esto funcione.

Acerca de las actualizaciones diarias

LibreNMS realiza actualizaciones diarias de forma predeterminada. A las 00:15 hora del sistema todos los días, se realiza un git pull --no-edit --quiet. Si no lo desea, cambie el valor predeterminado editando su archivo ''config.php''. Elimine el símbolo de comentario (la marca '' #'') en la línea:

#$config['update'] = 0;

Para que se vea así::

$config['update'] = 0;

No recomendamos que efectúe este cambio, pero lo mencionamos para que esté al tanto.