Pandora: Documentation es: Monitorizacion transaccional

From Pandora FMS Wiki
Revision as of 09:27, 16 February 2017 by Antonio.sanchez (talk | contribs) (Creación del árbol de fases)
Jump to: navigation, search

1 Monitorización Transaccional

1.1 Introducción

Pandora FMS incorpora desde su versión 7 la posibilidad de monitorizar procesos de negocio.

El componente de servidor transaccional implementado en esta versión permite ejecutar tareas dependientes unas de otras siguiendo un diseño definido por el usuario. Esto significa que es posible coordinar diferentes ejecuciones para comprobar un objetivo en un momento determinado.

Pongamos por ejemplo un caso práctico podría consistir en realizar el seguimiento de un pedido que va pasando por sus diferentes fases, pudiendo llevar un control de los tiempos en cada uno de los pasos, departamentos o etapas:


TO DO - DIAGRAM

Nos definiría un grafo de 5 etapas. Pandora FMS utilizará este grafo junto con una serie de scripts de control para monitorizar el proceso anteriormente indicado, mostrando visualmente el estado en que está en todo momento cada una de las partes que conforman nuestro proceso de negocio.

A continuación veremos cómo monitorizar de forma completa un proceso transaccional.

1.2 Funcionamiento

Definiremos una transacción como un conjunto de pasos que conforman una tarea más compleja. A estos pasos les llamaremos fases.

El conjunto de fases y su flujo de trabajo (relaciones de dependencia) definirá un grafo transaccional.

Pandora FMS, basándose en el grafo transaccional, lanza una serie de scripts de control en cada una de las fases anteriormente definidas. Estos scripts de control realizarán las tareas de monitorización propiamente dichas de cada fase.

Los puntos más habituales a comprobar en los scripts de control que pueden darnos información sobre el estado de nuestra transacción son:

  • Entradas en ficheros de log.
  • Presencia de archivos temporales.
  • Consultas directas a bases de datos.
  • Existencia de correos en bandejas de entrada.

El sistema transaccional es distribuido, pudiendo desplegar tantos agentes transaccionales en nuestra infraestructura como necesitemos, y será el servidor de Pandora el que se comunicará con estos agentes, indicándoles los pasos a seguir y los momentos en que deben ejecutar un script de control.

1.3 Configurar una transacción

Para configurar y realizar adecuadamente un proceso de monitorización transaccional se necesitará:

  • Análisis previo del proceso de negocio a monitorizar:
    • Flujo de trabajo.
    • Puntos implicados.
    • Scripts de control.
  • Despliegue de agentes transaccionales en los equipos requeridos, para controlar el flujo de información.
    • Desarrollo y despliegue de los scripts de control en los agentes transaccionales necesarios.
    • Configuración de los agentes transaccionales.
  • Desde la consola de Pandora, crear la transacción introduciendo los datos en los formularios.

1.3.1 Análisis previo

Vamos a realizar un análisis de un caso habitual.

Nuestra transacción se inicia cuando se recibe un pedido en la máquina Portal. Tendremos por tanto que desplegar un agente transaccional en Portal o bien en una máquina capaz de realizar consultas remotas. En esta primera fase se ejecutará un script crítico, el disparador de transacción.

En el siguiente paso de nuestra transacción se lanza un proceso de procesado del pedido en la máquina EMI01, empleando diferentes códigos identificadores del pedido realizado en el paso anterior. Necesitaremos otro agente transaccional en esta máquina o en una capaz de consultarla remotamente. El script de control de esta fase deberá comprobar que el proceso se ha completado correctamente, para ello buscará entradas en archivos de registro, eventos o archivos temporales.

El tercer paso de la transacción será almacenar el pedido ya procesado en una base de datos Oracle, en la máquina ORAMON. Es habitual que estas máquinas estén securizadas y no sea posible la instalación de software adicional en ellas, por lo que desplegaremos el agente transaccional en una máquina remota con permisos para lanzar consultas contra la base de datos.

El último paso es confirmar la existencia de un correo en la bandeja de entrada del departamento de Logística en un servidor de correo público. Dado que no podemos desplegar un agente en esta máquina, realizaremos las consultas desde otra que sea capaz de acceder a ella. Podemos utilizar los plugins clásicos de Pandora FMS con pequeñas variaciones para realizar la verificación de la llegada del correo electrónico.

1.3.2 Despliegue y desarrollo

En nuestro ejemplo identificamos cuatro fases, y necesitaremos cuatro scripts:

  • 1. Disparador de transacción: dejar un pedido ficticio en la máquina Portal para poder rastrearlo.
  • 2. Script de control: buscar una cadena en un archivo de log.
  • 3. Script de control: realizar una consulta a la base de datos.
  • 4. Script de control: confirmar la existencia de un correo en la bandeja de entrada de Logística.

En nuestro caso el disparador de transacción dejará una copia de un fichero de un pedido en un punto determinado (por ejemplo mediante FTP).

Todos los scripts de control deben tener una estructura básica como la del siguiente ejemplo:

Script1.JPG
#!/bin/bash
########################
# Check Control Set 
######################## 
function check_flag() { 
   # Condiciones del script de control 
   if [ "a" == "a" ]; then 
      return 1; 
   fi 
   return 0; 
} 
max_tries=100 
wait=3 
try=0 
while [ $try -le $max_tries ]; do 
   if [ check_flag == 1 ]; then 
      echo 1 
      exit 0 
   fi 
   sleep 
   $wait 
   try=`expr $try + 1` 
done 
echo 0 
exit 1

Una vez tengamos todos los scripts funcionando correctamente, procederemos a desplegar agentes transaccionales en las máquinas que necesitemos.

tar xvzf pandorafms_transactional.tar.gz
cd pandora_transactional 
./pandora_transactional_installer --install

Únicamente tendremos que modificar el fichero de configuración del agente (por defecto /etc/pandora/pandora_transaccional.conf) para apuntar al servidor Pandora FMS que dirigirá el proceso de la transacción. E iniciaremos el servicio del agente:

/etc/init.d/transactional_daemon start

1.3.3 Creación de transacción

Lo haremos a través de la consola web de Pandora FMS.

Accedemos al menú Maps -> Transactional map.


Trans1.JPG


Trans2.JPG

Creamos la nueva transacción y completamos los campos solicitados.

Trans3.JPG
  • Nombre.
  • Descripción.
  • Agente: agente de pandora donde se guardarán los módulos generados por el sistema (histórico).
  • Grupo: para control de la visibilidad y accesos.
  • Intervalo de bucle: tiempo de espera antes de lanzar de nuevo la transacción.

1.3.4 Creación del árbol de fases

Una vez creada la transacción podremos dar forma al árbol de fases accediendo al formulario correspondiente:

Trans4.JPG


En el formulario debemos introducir los datos de cada fase:

Trans5.JPG
  • Índice: identificador único de la fase en la transacción actual.
  • Nombre.
  • Agente: donde se ejecutará el script de control correspondiente.
  • Dependencias: fases anteriores que deben estar completadas antes de iniciar la fase en cuestión. Se indicarán los índices de las fases correspondientes separados por comas.
  • Habilitadores: descendientes, fases que se habilitarán cuando se complete la fase que estamos editando. Se indicarán los índices de las fases separados por comas.
  • Acciones: guardar cambios.

Por defecto tenemos una fase inicial START, esta fase se utiliza únicamente para definir qué fases serán las priemras en ser ejecutadas.

En la siguiente captura vemos cómo que se inserta el ínidice de la primera fase a ejecutar, (1) Recepción de pedido.

Trans6.JPG

Al guardar el cambio vemos que automáticamente se nos marca la fase con estado de error. Esto es debido a que, en nuestra definición, no existe ninguna fase con índice 1. Presionamos “Agregar” para crearla:

Trans7.JPG

Una vez guardados los cambios, creamos la fase, actualizando la previsualización del grafo de transacción y corrigiendo el aviso previo:

Trans8.JPG

Podemos observar que en campo dependencias de la fase 1, se ha establecido '0' para indicar que esta fase iniciará cuando la fase START se haya completado con éxito.

Siguiendo el mismo procedimiento crearemos todas las fases:

Trans9.JPG

La última fase no habilitará nada, significará que la transacción ha terminado.

En la captura también observamos una advertencia en color amarillo, indicándonos que hay algo pendiente de ser configurado, serán los scripts de control.

1.3.5 Configuración de los scripts de control

1.3.6 Control de una transacción

1.4 Configuración

1.4.1 Servidor transaccional

1.4.2 Agente transaccional