1 Configurar LibreNMS

1.1 Metas

1.2 Introducción

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

1.2.1 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>".

1.3 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.

1.3.1 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";

Debajo estas lineas agrega 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.  

1.3.2 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 (puede ser que ya esta asi):

$config['allow_duplicate_sysName'] = false;

Podrá ver si hay dispositivos duplicados detectados en el Registro de eventos (Resumen -> Registro de eventos, en inglés "Overview -> Event Log").

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

1.3.3 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:

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í.

1.4 Configuración final

1.4.1 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.

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.

1.5 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 (trabajando en grupo):

¿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.

1.6 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 "Default"
* 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 Add 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 "Update".

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

Cuando haya terminado, presiona el botón "Update". 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 Settings" y bajando al "Tablero predeterminado".

1.7 Ver un gráfico en tiempo real en una interfaz

En la interfaz de LibreNMS haga:

* Seleccionar Devices ==> All Devices ==> Server
* Seleccione un servidor de la pantalla resultante (haga clic en su nombre)
* Haga clic en el elemento "Ports" cerca de la parte superior.
* Haga clic en una interfaz de red ("ens3, br0, br1, etc...")
* Junto al elemento Gráficos, seleccione "Real time"
* 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.

1.8 Algunas cosas más

1.9 Mapa de Frontpage global

Es posible crear un Weathermap en LibreNMS. Revisa lo siguente enlace por mas información:

https://docs.librenms.org/Extensions/Weathermap/

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.

Por mucho más información detallado sobre SNMP, dispositivos y LibreNMS revisa:

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

1.10 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.