.. _use_case_interface:

***************************************
Descubrimiento automático de interfaces
***************************************

La :ref:`Tarea de Importación por SNMP<snmp_import_task>` es capaz de descubrir
los interfaces de red asociados a cada Dispositivo y prepararlos para ser
monitorizados por WOCU-Monitoring. Además, es posible precisar esta tarea
filtrando por el tipo de interfaz descubierto, mediante la definición de
expresiones regulares que permitirán agregar los interfaces descubiertos
que cumplan con dicha expresión y excluir a los que no.

A continuación se describe un caso práctico para la configuración
del descubrimiento automático de interfaces en WOCU-Monitoring:

**1. Accede a la herramienta Configuración**

Desde la Herramienta de :ref:`basicconfiguration` de un reino en concreto,
podremos configurar las tareas de importación automáticas desde
diferentes fuentes (snmp, cmdb, csv, nagios...).

.. image:: ../images/use_cases/5_002_aggregator_use_cases-geomap-tasks-tab_0-50.jpg
    :align: center

.. Note:: Recuerda este módulo sólo será visible y accesible
    desde Reinos estándar, es decir, estará oculta para Reinos
    basados en Grupos de Dispositivos (*Hosts Groups*) y
    Multireinos (*Multirealm*).

**2. Crea una nueva tarea SNMP_Import**

WOCU-Monitoring permite al usuario crear, configurar y lanzar nuevas tareas
para la importación de redes completas. Para ello, hay que hacer
clic en el botón
:doc_url:`Añadir Tarea (Add Task)<docs/configuracion/4_2_tasks.html#creacion-de-nuevas-tareas-de-importacion>`
ubicado en la parte superior derecha del listado.

.. image:: ../images/use_cases/5_003_aggregator_use_cases-geomap-tasks-create-button_0-50.jpg
    :align: center

En esta ocasión crearemos una tarea de importación:
:ref:`snmp_import_task`. A continuación se detallan cada uno de los distintos
campos a rellenar para la configuración de la tarea:

.. Important:: Para obtener una descripción pormenorizada de cada
    parámetro de configuración, accede al siguiente
    enlace: :ref:`snmp_import_task`.

.. image:: ../images/setup/4_016_import-tool_tasks_snmp-import_0-58.png
    :align: center
    :scale: 90 %

**Nombre del Reino (Realm Name):**
    Campo no editable. Indica el nombre del Reino objeto de
    la tarea de importación.

**Tipo de Tarea (Task Type):**
    Selector del tipo de tarea que va a generarse. Selecciona la opción
    **SNMP_Import** en el desplegable como muestra la siguiente captura. La
    elección elegida condicionará el resto de los campos.

.. image:: ../images/use_cases/5_026_aggregator_use_cases-interfaces-tasks-type_0-36.jpg
    :align: center
    :scale: 80 %

**Nombre (Name):**
    Recoge el nombre escogido por el usuario para identificar la nueva
    tarea creada.

**Habilitación (Enabled):**
    Marcando esta casilla se habilita y activa esta nueva
    tarea de importación para su próxima ejecución. Por defecto esta
    opción está habilitada.

**Intervalo (Interval):**
    Mediante este desplegable es posible escoger con qué frecuencia se
    ejecutará la importación de Activos de esta nueva tarea. Las posibles
    opciones disponibles son:

    - Tarea ejecutada a diario (*Every 1 days*).
    - Tarea ejecutada cada segundo (*Every 1 second*).

**Instrucciones (Recuadro de fondo gris):**
    En este recuadro se ofrecen instrucciones acerca del
    formato `CIDR <https://es.wikipedia.org/wiki/Classless_Inter-Domain_Routing>`_
    utilizado para introducir la red, redes, dirección IP o
    direcciones IPs, en las que WOCU-Monitoring realizará el escaneo.

**Lista de redes (Networks list):**
    En este campo el usuario deberá introducir la red, redes,
    dirección IP o direcciones IPs en las que WOCU-Monitoring realizará el
    escaneo para importar Activos.

    Las direcciones de red, deben indicarse siguiendo en
    formato `CIDR <https://es.wikipedia.org/wiki/Classless_Inter-Domain_Routing>`_.

    A modo resumen:

    * Para agregar varias redes habrán de introducirse las mismas
      separadas por comas. Siguiendo con el
      ejemplo: ``192.168.0.0/16, 192.168.11.0/24``

    * Es posible también introducir una o varias direcciones
      IP únicas, separadas por comas. Ejemplo: ``192.168.3.11, 192.168.3.14``

.. admonition:: Caso de uso

    Para este caso se definirá el rango de red: ``172.16.100.1/24``

    .. image:: ../images/use_cases/5_027_aggregator_use_cases-interfaces-tasks-networks-list_0-36.jpg
        :align: center
        :scale: 80 %

**Comunidad SNMP (SNMP Community):**
    En este campo hay que añadir la Comunidad SNMP, que es una cadena de texto
    que se utiliza como contraseña para acceder a los Dispositivos
    encontrados y obtener la información que se importará a WOCU-Monitoring.

.. admonition:: Caso de uso

    Para este caso se agregará la comunidad: ``public``

    .. image:: ../images/use_cases/5_028_aggregator_use_cases-interfaces-tasks-community_0-36.jpg
        :align: center
        :scale: 85 %

**Escanear Activos operativos y pendientes (Scan active and pending assets):**
    Esta opción permite seleccionar si el descubrimiento vía SNMP se aplicará
    también a los activos ya inventariados en WOCU-Monitoring y contenidos en
    sus BBDD (bien en Activos Monitorizados o bien en Activos Pendientes).
    Mediante la aplicación de esta opción es posible enriquecer la información
    (en este caso los interfaces de red a monitorizar y otros atributos) que
    WOCU-Monitoring ya posee sobre los dispositivos.

.. admonition:: Caso de uso

    Para este caso, se activará dicha opción para mantener actualizada
    la información de Dispositivos y Servicios ya importados.

**Tiempo de desconexión (Scan Timeout):**
    Este campo establece el tiempo en segundos en el que WOCU-Monitoring
    dejará de interrogar por SNMP a un Dispositivo si no encuentra respuesta.

.. admonition:: Caso de uso

    Para este caso, se definirán 2 segundos.

    .. image:: ../images/use_cases/5_029_aggregator_use_cases-interfaces-tasks-scan-timeout_0-36.jpg
        :align: center
        :scale: 85 %

**Opción Descubrir coordenadas geográficas (discover_geocoordinates):**
    Esta opción habilita el descubrimiento de las coordenadas geográficas del
    Dispositivo, para representar el Dispositivo en sus geomapas. Ten en cuenta
    que habilitar esta opción aumentará significativamente el tiempo de
    descubrimiento y que además es necesario que WOCU-Monitoring tenga acceso
    a internet para poder realizar esta tarea. Por estos motivos, la opción
    está deshabilitada por defecto.

**Opción Interfaces por nombre (Store _IFACES_BYNAME macro):**
    Esta opción almacenará los interfaces de los Dispositivos descubiertos
    con el nombre del interfaz establecido por el usuario en el propio
    Dispositivo y no con el Índice del Interfaz (Interface Index).

**Poller tag**
    En entornos distribuidos existen máquinas (*Pollers*) que se ocupan de
    tareas de descubrimiento y ejecución de chequeos para la evaluación de
    estados operativos, aplicados sobre un conjunto de Dispositivos receptores.
    Mediante la definición de una etiqueta en este campo, se configura qué
    *Poller* será responsable sobre los nuevos Dispositivos importados, es
    decir, se ocupará de enviar chequeos y descubrimientos hacia cada
    Dispositivo en cuestión.

    Un Dispositivo a monitorizar con un ``poller_tag`` definido, tan solo usará
    los *Pollers* etiquetados con esa misma etiqueta, y nunca otros *Pollers*
    con otra etiqueta distinta o ninguna. En conclusión, es necesario que
    ambas partes (Dispositivo-Poller) compartan una misma etiqueta.

.. Note:: La construcción de etiquetas se llevará a cabo desde la
        configuración interna de la propia máquina/Poller.

**Lista de redes excluidas (Excluded networks list):**
    En este campo se deberá introducir la red, redes, dirección
    IP o direcciones IPs, que se quieren excluir del escaneo SNMP.

**Filtrado por interfaz mediante expresión regular (Filter interfaces regexp):**
    Campo destinado para el filtrado por tipo de interfaz descubierto.
    Para ello, habrá que añadir una expresión regular *(regexp)*, y se
    agregarán los interfaces descubiertos que coincidan y cumplan con dicha
    expresión.

.. Important::

    - Dichas expresiones ignorarán entre mayúsculas y
      minúsculas para facilitar el filtrado.

    - Los campos contra los que se realiza la comprobación son la
      descripción del interfaz (*ifDescr*) y el alias (*ifAlias*).

    - La expresión regular debe ser válida, en caso contrario
      el propio formulario se ocupará de hacer la validación
      correspondiente.

    - Se pueden utilizar una cadena de texto sencilla o expresiones
      regulares complejas (ver la
      `documentación de python <https://docs.python.org/3/library/re.html>`_
      como referencia).

    - Este campo es opcional, es decir, es posible aplicar una expresión
      regular, múltiples o no definir ninguna. En este caso, WOCU-Monitoring
      devolverá todas las interfaces de red activas, detectadas sobre el
      conjunto de Dispositivos definidos.

    - Para que el filtrado se efectúe con éxito, es necesario que el
      administrador de los equipos ha fijado una descripción o un alias
      apropiados para cada interfaz).

.. admonition:: Caso de uso

    Para este caso, se definirá la expresión regular: ``Giga|Fast``. Por lo que
    sólo aquellos interfaces que contengan los términos ``Giga`` o ``Fast`` en
    su alias o descripción serán devueltos.

    .. image:: ../images/use_cases/5_030_aggregator_use_cases-interfaces-tasks-filter-regexp_0-36.jpg
        :align: center
        :scale: 85 %

**Filtrado por estado de interfaz (Filter interfaces status)**

    Campo destinado para el filtrado de interfaces descubiertas según su estado
    operacional y de administración.

    Los interfaces de red pueden alcanzar los siguientes estados de
    administración:

        1. **Up**: listo para transmitir paquetes.
        2. **Down**: no operativo.
        3. **Testing**: en modo de pruebas, los paquetes no pueden
           transmitirse.

    Y en los siguientes estados de operación, además de en los estados
    de administración anteriores:

        1. **Unknown**: el estado no puede ser determinado por alguna razón
           desconocida.
        2. **Dormant**: el interfaz está a la espera de acciones externas.
        3. **Not Present**: algún componente no está presente, típicamente
           por un problema *hardware*.
        4. **Lower Layer Down**: no operativo debido al estado de otro interfaz
           del que depende.

.. Important:: A la hora de aplicar el filtro, el estado de operación tiene
    precedencia sobre el de administración al ser un estado más específico.

**Sobreescribir macros simples (Overwrite simple macros):**
    Esta opción permite habilitar o dejar inhabilitada la actualización
    de las macros simples de los Activos. Por defecto esta opción está
    habilitada.

**Sobreescribir macros complejas (Overwrite complex macros):**
    Esta opción permite habilitar o dejar inhabilitada la actualización
    de las macros complejas de los Activos. Por defecto esta opción está
    inhabilitada.

**Registrarse como activo (Register as active)**
    Habilitando esta opción, los activos descubiertos vía SNMP, serán
    importados directamente al listado de Activos Operativos
    *(Active Assets)*, es decir, se omitirá el alta en Activos
    Pendientes *(Pending Assets)* y pasarán directamente a monitorización.

    Una vez introducidos los datos en los campos correspondientes habrá
    que pulsar el botón azul “Añadir Tarea” (Add Tasks) para guardar la
    nueva Tarea en el listado.

.. Note:: Situando el cursor sobre botón de información (ℹ️),
        aparecerá una nueva ventana con información de ayuda de
        los distintos campos del formulario. Esta acción no efectúa cambio
        alguno en la configuración.

        .. image:: ../images/setup/4_010_import-tool_tasks_info-button_0-36.png
         :align: center

Establecida la configuración, habrá que pulsar el botón azul
**Añadir Tarea** (*Add Tasks*) para hacer efectiva la nueva tarea.
Inmediatamente esta nueva tarea ya estará disponible en el listado con el
resto de tareas creadas.

.. image:: ../images/use_cases/5_004_aggregator_use_cases-geomap-tasks-add-button_0-36.jpg
    :align: center

**3. Lanzamiento y ejecución de la tarea**

A continuación, localizada la nueva tarea creada en el listado global,
habrá que lanzarla mediante la acción **Run** (▶️).

.. image:: ../images/use_cases/5_031_aggregator_use_cases-interfaces-tasks-run-button_0-50.jpg
    :align: center

.. Important:: Recuerda que la frecuencia de ejecución automática de
    tareas es definida en el campo *Intervalo (Interval)*.

**4. Gestión de Dispositivos desde Pending Assets a Active Assets**

Una vez concluida la tarea, los Dispositivos descubiertos
pasarán en un primer momento y de manera provisional al listado de
:ref:`pending`, estando a partir de ese momento
integrados en la BBDD de WOCU-Monitoring, pero sin ser monitorizados aún.

Seguidamente, habrá que enviar al listado de :ref:`active_assets` el
Dispositivo o red de Dispositivos importados para incluirlos en la
planta de monitorización.

Para ello habrá que realizar los siguientes pasos:

* Seleccionar en el listado el o los Dispositivos a importar.

* Seleccionar el destino de envío de Dispositivos: marcando la
  opción **Monitorize** para que los Dispositivos seleccionados sean
  migrados al listado de :ref:`active_assets`,
  y pasen a ser monitorizados por WOCU-Monitoring.

* Confirmar la migración mediante la opción **Aplicar** (*Apply*).

    .. image:: ../images/use_cases/5_032_aggregator_use_cases-interfaces-active-actions_0-50.jpg
        :align: center

**4. Hacer efectivos los cambios: WOCU-Check**

Finalizada la tarea de importación, los cambios se consolidarán
a través de la ejecución de la acción de :ref:`check`.

.. image:: ../images/use_cases/5_008_aggregator_use_cases-geomap-check-button_0-50.png
    :align: center

De inmediato aparecerá un cuadro de diálogo informando al usuario de
las novedades en la configuración de los activos que se aplicarán
o del funcionamiento anómalo en el sistema.

Para efectuar los cambios, pulsa el botón azul **Reiniciar WOCU**
(*Restart WOCU*).

**5. Asignación automática de packs**

Posterior al reinicio de WOCU-Monitoring, los nuevos Dispositivos
en :ref:`active_assets` comenzarán a ser objeto de las tareas de
monitorización de la herramienta.

Con el fin de cargar Dispositivos de red de la manera más automática
y completa posible, durante la importación, WOCU-Monitoring asigna los packs
correspondientes a cada Dispositivo descubierto, en base a las propiedades
obtenidas, tales como sistema operativo y puertos abiertos.

.. Note:: Aunque esta configuración es asignada automáticamente,
    el usuario puede realizar ajustes y otras configuraciones a medida.

Desde el panel global dónde se listan todos los activos que WOCU-Monitoring
ya está monitorizando, podemos observar los packs asignados mediante las
etiquetas mostradas en la columna **Uses**, las cuales corresponde con
packs de monitorización.

.. image:: ../images/use_cases/5_033_aggregator_use_cases-intefaces-active-assets_0-50.jpg
    :align: center

Por ejemplo, en la anterior imagen se observa como el Dispositivo **Wocu-ci**,
tiene asignados los packs:

- ``tcp-generic``: pack genérico que monitoriza los puertos abiertos de cada
  máquina.

- ``linux-SNMP``: este pack posibilita la obtención de valores tales como
  conexiones de red, consumo de CPU, memoria RAM, etc., de una máquina
  Linux determinada, vía protocolo SNMP.

- ``networkdevice-traffic``: pack de chequeo del tráfico
  cursado por un grupo de interfaces de un mismo dispositivo.

Utiliza la acción *Packs* del listado de Dispositivos y accede
al conjunto de packs aplicados y configurados a medida para cada uno
de ellos.

.. image:: ../images/use_cases/5_034_aggregator_use_cases-interfaces-active-actions-packs_0-36.jpg
    :align: center

**6. Descubrimiento automático de interfaces**

Podemos acceder a la configuración propia del pack, mediante la
acción de :ref:`check` presente en el listado global de packs.

.. image:: ../images/use_cases/5_035_aggregator_use_cases-interfaces-active-packs_0-36.jpg
    :align: center

Recordemos que en la configuración de la tarea de importación SNMP lanzada,
se filtró para descubrir solo las interfaces que coincidan y cumplan
con la expresión regular definida: ``Giga|Fast``.
Por lo tanto, solo aquellos interfaces que contengan *Giga* o *Fast* en su
alias o descripción han sido descubiertos por WOCU-Monitoring.

Siguiendo con el anterior ejemplo, en la sección **Complex macros** del
pack ``networkdevice-traffic``, los valores devueltos son la configuración de
la única interfaz que cumple con la regla de filtrado, puesto que el alias
``Intel_Corporation_82540EM_Gigabit_Ethernet_Controller``, contiene el
término Giga.

.. image:: ../images/use_cases/5_036_aggregator_use_cases-interfaces-discover-interfaces_0-36.jpg
    :align: center

.. Note::
    Tanto con la asignación de packs como el descubrimiento de interfaces
    de forma automática y sin intervención del operario, WOCU-Monitoring
    agiliza y optimiza la gestión y tratamiento de infraestructuras
    de gran magnitud.

Sin embargo, mediante la funcionalidad **Descubrir** (*Discover*) de la
macro **_IFACEs**, el sistema redescubrirá todas
las interfaces del Dispositivo sin restricción ninguna, e independientemente
de las descubiertas durante la importación de activos.

Como se puede observar en la siguiente imagen, el sistema devolverá
como resultado un listado con las interfaces descubiertas,
tanto las detectadas con anterioridad durante la importación
(identificadas en color amarillo), como las detectadas recientemente tras
la acción **Discover** (identificadas en color verde).

.. image:: ../images/use_cases/5_036a_aggregator_use_cases-interfaces-discover-interfaces_0-36.jpg
    :align: center

Cada una de las interfaces dispone de las siguientes opciones para su
gestión:

    **✔**:️ para agregar la interfaz a la configuración del pack.

    **✖️**: para retirar la interfaz de la configuración del pack.

.. image:: ../images/use_cases/5_036b_aggregator_use_cases-interfaces-discover-interfaces-options_0-36.jpg
    :align: center

Para guardar estas nuevas o actualizadas variables de configuración,
habrá que hacer clic en el botón **Aplicar configuración** (*Apply configuration*).
A continuación, para consolidar estos cambios en la herramienta `Import tool`,
es necesario ejecutar la acción de :ref:`check`.

.. image:: ../images/use_cases/5_008_aggregator_use_cases-geomap-check-button_0-50.png
    :align: center