InGRID: Operador Virtual de odo GRID Alberto Lumbreras Francesc Pérez
Objetivo Asistir al operador del nodo GRID en su tarea de control y mantenimiento de la red
3 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
4 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
Componentes de InGRID 5 Monitor Recoge el estado de cada uno de los elementos de la red Decisor Analiza los datos recogidos Programa acciones a llevar a cabo sobre los elementos Agente Ejecuta las acciones programadas Servidor de bases de datos Centraliza los datos Pizarra de comunicación entre componentes de InGRID
Estructura de InGRID 6 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Captura de datos 7 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Almacenamiento de los datos 8 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Sincronización de datos 9 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Formación de conocimiento 0 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Toma de decisiones GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Lectura de decisiones GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Ejecución de decisiones 3 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
Asincronía entre módulos 4 GRID MOITOR agios AGETE SERVIDOR DE BASES DE DATOS B.D InGRID B.D agios Elementos Encargo Encargo. Encargo Reglas Web DECISOR CLIPS Elemento Elemento Regla Regla M
5 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
agios. Monitor de InGRID Sistema de monitorización de equipos y servicios de red 6 Monitorización de servicios Monitorización de recursos Diseño basado en plug-ins Comprobaciones paralelas Manejadores de eventos otificación de incidencias Monitorización distribuida
7 agios. Estructura AGIOS OPERADOR AGIOS Core (Unidad Lógica) Interfaz WEB Plug-in Plug-in nagios MÁQUIA REMOTA SERVIDOR DE BASES DE DATOS Servicio HTTP Capacidad de disco
agios. Configuración agios se configura en base a objetos que definen... Hosts Máquina física en la red Services Servicio o cualquier otro tipo de métrica asociada a una máquina Contacts Destinatario de notificaciones Commands Lista de plug-ins que agios ejecuta: Comprobaciones de servicios y recursos otificaciones Event Handlers Programables por el administrador 8
agios. Proceso de monitorización 9 agios programa todas sus tareas en una cola... Comprobaciones Unidad Lógica...... Resultados Resultados B.D agios Comprobaciones otificaciones Manejadores de eventos...y la Unidad Lógica de agios procesa los resultados y determina las acciones a tomar
agios. Tipos de respuesta a incidencias 0 Manejadores de eventos ( event handlers ) Permiten corregir errores antes de lanzar una notificación Se define uno por cada servicio a comprobar Programables por el usuario o se vuelven a ejecutar si persiste el error otificaciones otifican un suceso al grupo de contactos asociado CRITICAL: servicio caído WARIG: servicio fuera de su margen de operación RECOVERY: recuperación desde un estado de error Programables por el usuario
agios. Tipos de respuesta a incidencias Estado: OK Estado: CRITICAL Estado: CRITICAL normal check interval retry interval Retries: CRITICAL Tiempo Manejador de eventos otificaciones
agios. Agente de InGRID agios también realiza las funciones de Agente. El Agente es el encargado de ejecutar las decisiones Diseño de un nuevo plugin: JobsRun Comprueba la tabla de encargos de InGRID Si la tabla contiene algún encargo devuelve CRITICAL Script de ejecución de encargos: Run-Jobs Programado como una notificación en caso de fallo de JobsRun Lee la tabla de encargos y los ejecuta Los encargos (Shell Scripts) Se programa un script Shell por cada acción Se conecta mediante SSH a la máquina remota Se ejecuta una acción en la máquina remota mediante SUDO
Agente. Plug-in JobsRun 3 JobsRun: OK tabla vacía JobsRun: CRITICAL encargos pendientes JobsRun: JobsRun: CRITICAL OK encargos tabla pendientes vacía normal check interval Tiempo Ejecución de encargos ( Run-Jobs ) Encargo de acciones Manejador de eventos otificaciones
sprintf (query, "SELECT * FROM %s", table); Agente. Plug-in JobsRun if (mysql_real_query(&mysql,query,(unsigned int) strlen(query))){ printf("error executing query: %s\n", query); return STATE_UKOW; } res = mysql_store_result(&mysql); if (mysql_num_rows(res)>0){ printf("state_critical: There are %d JOBS pending to be run\n", mysql_num_rows(res)); return STATE_CRITICAL; } 4 else{ } printf("state_ok: There are no JOBS pending to be run\n"); return STATE_OK;
5 Agente. Run-Jobs Se ejecuta cuando el plug-in JobsRun devuelve CRITICAL Programado como una notificación Objetivo: Ejecutar los encargos pendientes Obtiene de la base de datos la lista de encargos pendientes Para cada encargo se crea un nuevo proceso (fork) que lo ejecute Proceso secuencial: se espera a que finalice un encargo antes de ejecutar el siguiente Para cada proceso se graban los tiempos de ejecución
Agente. Los encargos 6 Para cada acción o encargo, Run-Jobs ejecuta un script Shell Para ejecutar un encargo en una máquina remota necesitamos: SSH: establece comunicación con la máquina remota la conexión debe realizar automáticamente sin login/password SUDO: permisos de ejecución para acciones reservadas al usuario root
7 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
8 El módulo de control necesita ITELIGECIA PROCEDIMETAL SI situación ETOCES acción Programación basada en reglas CLIPS
9 CLIPS. Estructura BASE DE COOCIMIETO REGLAS HECHOS MOTOR DE IFERECIAS AGEDA
ª Aproximación: Formación de conocimiento 30 B.D InGRID Elementos Encargo Encargo. Encargo DECISOR Reglas
ª Aproximación: Gestión del conocimiento 3 DECISOR Hechos Decisiones HECHOS Situación elemento Situación elemento Situación elemento REGLAS Conocimiento sobre elemento Conocimiento sobre elemento Conocimiento sobre elemento COOCIMIETO GEERAL
ª Aproximación: Matching 3 Hechos A C H J L O R W Z 3 5 6 7 8 9 3 6 0 Acción Módulo A A B I A 9 A B Acción Acción Acción Acción Acción Reglas Acción X Y J 3 W 5 U Módulo Z Acción Acción Acción Acción
ª Aproximación: Comunicación de decisiones 33 B.D InGRID Elementos Encargo Encargo. Encargo Acción Acción Acción DECISOR Reglas
ª Aproximación: Formación del conocimiento. 34 B.D InGRID Elementos Encargo Encargo. Encargo Reglas Web DECISOR
ª Aproximación: Gestión del conocimiento 35 DECISOR Hechos Decisiones HECHOS Situación elemento Situación elemento Situación elemento Conocimiento sobre elemento Conocimiento sobre elemento Conocimiento sobre elemento REGLAS COOCIMIETO GEERAL
ª Aproximación: Programación de reglas 36 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje
ª Aproximación: Programación de reglas 37 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje condición = servicio máquina estado monitorizado estado deseado
ª Aproximación: Programación de reglas 38 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior Permite condicionar la regla a la proveniencia de cierto estado
ª Aproximación: Programación de reglas 39 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje tipo Estable Inestable Inestable caído
ª Aproximación: Programación de reglas 40 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje acción ombre del script a ejecutar
ª Aproximación: Programación de reglas 4 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje intentos Máximo número de reintentos de la acción
ª Aproximación: Programación de reglas 4 ELEMETO A estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje estado anterior tipo acción intentos mensaje mensaje Mensaje de notificación en caso de superar el máximo número de reintentos
ª Aproximación: Matching 43 Módulo A A C H J L O R W Z 3 5 6 7 8 9 3 6 0 A B I A 9 J A B Tipo Acción Intentos... Tipo Acción Intentos... Tipo Acción Intentos... Tipo Acción Intentos... Acción Acción Acción Hechos Módulo Z J X Y J 3 W 5 U Tipo Acción Intentos... Tipo Acción Intentos... Tipo Acción Intentos... Tipo Acción Intentos... Reglas c c c c c c Acción
Gestión del conocimiento. Segunda aprox. 44 B.D InGRID Elementos Encargo Encargo. Encargo Reglas Web Acción Acción Acción DECISOR
45 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
Base de datos de InGRID 46 Base de datos MySQL Integrar toda la información que usa InGRID Independiente de la base de datos de agios Recoge: Máquinas y servicios sobre los que InGRID actúa con sus estados: Monitorizados (importados de la base de datos de agios) Deseados (los que el operador decide). Estructura de las reglas de CLIPS Decisiones de CLIPS (encargos)
47 Índice InGRID: Arquitectura Monitorización 3 Control 4 Bases de Datos 5 Interfaces
Interfaz Web de InGRID 48 Desarrollo PHP Lenguaje interpretado, de alto nivel, embebido en HTML Se ejecuta en el servidor Destacable soporte para bases de datos MySQL Características muy útiles para el procesamiento de textos Permitirá: Administrar el sistema: añadir nuevos servicios y/o máquinas Obtener el estado real de los servicios monitorizados Visualizar los encargos que se han programado y ejecutado Programar nuevas reglas al decisor
Interfaz Web de InGRID 49