Escenarios Alta Disponibilidad (HA)
===================================

Este apartado recopila cuestiones destacadas sobre las opciones de Alta
Disponibilidad (en adelante :guilabel:`HA`) de **WOCU-Monitoring**:

**1) Suponiendo un escenario de despliegue como el de la imagen adjunta. En el
caso de fallo en la VPN de cualquiera de los dos centros de datos.
¿Continúa el satélite recolectando métricas para
posteriormente enviarlas a indexar una vez se restablece la conexión?**

.. image:: ../images/administrator_guide/7_039_HA-WOCU_0-48.png
    :align: right
    :scale: 55 %

Los eventos producidos y enviados desde la infraestructura de cliente a los
*backends* de datos en la nube, son los siguientes:

    **⇨ Métricas de monitorización**

        - Se almacenan en **Influxdb**, una base de datos específica para
          series temporales.

        - Se ha desarrollado un plugin en el motor de monitorización que
          guarda las métricas generadas en un *buffer* en memoria cuando
          existan problemas de conectividad.

        - Se retoma el envío de las métricas cuando la conexión se
          restrablece.

        - El tamaño del *buffer* es configurable.

    **⇨ Eventos de monitorización**

        - Los eventos generados por el propio motor de monitorización se
          almacenan en **Mongodb**, una base de datos de documentos.

        - El propio cliente de **Mongodb** que se utiliza en el envío de
          eventos, soporta reintentos de escritura (``retryable-writes``)
          en caso de fallo en la comunicación. Más información en el siguiente
          `enlace <https://docs.mongodb.com/manual/core/retryable-writes/>`__.

    **⇨ Logs y traps**

        - Cualquier otro tipo de eventos externos al motor de monitorización
          como son: los logs de sistema (``syslog``), logs de aplicaciones,
          traps ``SNMP``, etc., se almacenan en **Elasticsearch**, un motor de
          búsqueda especializado en analítica de datos.

        - Los eventos se envían a través del colector de eventos
          ``td-agent/fluent`` (similar a *logstash*).

        - Este colector tiene la capacidad de escribir en disco los eventos
          que no puede enviar y ejecuta el volcado cuando recupera la conexión.

        - El tamaño del *buffer* de volcado es configurable.

--------

**2) ¿Cuál es el número máximo de usuarios Administradores y de consulta
que puedo implementar en la plataforma?**

No hay límite estipulado.

Actualmente existen clientes con miles de usuarios registrados y alrededor de
:guilabel:`150/200` usuarios concurrentes.

--------

**3) ¿Los satélites de WOCU-Monitoring se pueden desplegar en modo de HA
manteniendo sincronizadas sus configuraciones?**

Los satélites de WOCU-Monitoring funcionan en **HA por defecto**.

Si un satélite pierde conectividad, el resto de los satélites asumen el
trabajo, dimensionando la tarea para seguir operando con "normalidad".

La siguiente imagen muestra a grandes rasgos el funcionamiento
de los satélites y el *scheduler*.

.. image:: ../images/administrator_guide/7_041_satelite.png
    :align: center
    :scale: 70 %

--------

**4) ¿La instalación de WOCU-Monitoring es distribuida? ¿Dónde puedo instalarlo?**

WOCU-Monitoring está compuesto por varios componentes software que
se comunican entre sí. Pueden ser distribuidos en un único nodo
o en nodos separados para ganar en flexibilidad o rendimiento.

También puede ser instalado en máquinas físicas, entornos virtualizados,
contenedores, nubes, etc.

La siguiente imagen muestra la arquitectura general de **WOCU-Monitoring**,
integrada por los siguientes componentes:

.. image:: ../images/administrator_guide/7_040_software-architecture.png
    :align: center