InGRID:
Operador Virtual de Nodo
GRID
Alberto Lumbreras
Francesc Pérez
2
Objetivo
Asistir al operador del nodo GRID en su tarea de control
y mantenimiento de la red
3
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
4
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
5
Componentes de InGRID

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
6
Estructura de InGRID
7
Captura de datos
8
Almacenamiento de los datos
9
Sincronización de datos
10
Formación de conocimiento
11
Toma de decisiones
12
Lectura de decisiones
13
Ejecución de decisiones
14
Asincronía entre módulos
15
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
16
Nagios. Monitor de InGRID
Sistema de monitorización de equipos y servicios de red

Monitorización de servicios

Monitorización de recursos

Diseño basado en “plug-ins”

Comprobaciones paralelas

Manejadores de eventos

Notificación de incidencias

Monitorización distribuida
17
Nagios. Estructura
18
Nagios. Configuración
Nagios se configura en base a objetos que definen...

Hosts


Services


Servicio o cualquier otro tipo de métrica asociada a una máquina
Contacts


Máquina física en la red
Destinatario de notificaciones
Commands

Lista de plug-ins que Nagios ejecuta:




Comprobaciones de servicios y recursos
Notificaciones
Event Handlers
Programables por el administrador
19
Nagios. Proceso de monitorización
Nagios programa todas sus tareas en una cola...
...y la Unidad Lógica de Nagios procesa los resultados y
determina las acciones a tomar
20
Nagios. Tipos de respuesta a incidencias

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
No se vuelven a ejecutar si persiste el error
Notificaciones

Notifican un suceso al grupo de contactos asociado




CRITICAL: servicio caído
WARNING: servicio fuera de su margen de operación
RECOVERY: recuperación desde un estado de error
Programables por el usuario
21
Nagios. Tipos de respuesta a incidencias
22
Nagios. Agente de InGRID
Nagios también realiza las funciones de Agente.
El Agente es el encargado de ejecutar las decisiones

Diseño de un nuevo plugin: “Jobs2Run”



Script de ejecución de encargos: “Run-Jobs”



Comprueba la tabla de encargos de InGRID
Si la tabla contiene algún encargo devuelve “CRITICAL”
Programado como una notificación en caso de fallo de “Jobs2Run”
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
23
Agente. Plug-in “Jobs2Run”
24
Agente. Plug-in “Jobs2Run”
sprintf (query, "SELECT * FROM %s", table);
if (mysql_real_query(&mysql,query,(unsigned int) strlen(query))){
printf("ERROR executing query: %s\n", query);
return STATE_UNKNOWN;
}
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;
}
else{
printf("STATE_OK: There are no JOBS pending to be run\n");
return STATE_OK;
}
25
Agente. “Run-Jobs”

Se ejecuta cuando el plug-in “Jobs2Run” 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
26
Agente. Los encargos

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”
27
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
28
El módulo de control necesita INTELIGENCIA
PROCEDIMENTAL
“SI situación ENTONCES acción”
Programación basada en reglas
CLIPS
29
CLIPS. Estructura
BASE DE
C O N O C IM IE N T O
R EG LAS
HECHOS
M OTOR DE
IN F E R E N C IA S
AGENDA
30
1ª Aproximación: Formación de conocimiento
B .D
In G R ID
E n ca rg o 1
E n ca rg o 2
E le m e n to s
…….
E n ca rg o N
D E C IS O R
R e g la s
31
1ª Aproximación: Gestión del conocimiento
H echos
D e c is io n e s
D E C IS O R
HECHOS
S itu a c ió n
e le m e n to
1
S itu a c ió n
e le m e n to
2
S itu a c ió n
e le m e n to
N
REG LAS
C o n o c im ie n to
s o b re
e le m e n to 1
C o n o c im ie n to
s o b re
e le m e n to 2
C o n o c im ie n to
s o b re
e le m e n to N
C O N O C IM IE N T O G E N E R A L
32
1ª Aproximación: Matching
A
C
H
J
L
O
R
R
W
W
Z
Z
3
5
6
7
8
9
1
13
3
1166
2200
H echos
A B I
A
9
A
A B
B
A c c ió n
A c c ió n
A c c ió n
A
Acccció
iónn
M ó d u lo A
A cció n
A cció n
A cció n
R e g la s
X Y
J
3 W 5
U
U
A c c ió n
A c c ió n
A c c ió n
A
Acccció
iónn
M
Mó
ód
du
u lo
lo Z
Z
33
1ª Aproximación: Comunicación de decisiones
B .D
In G R ID
E n ca rg o 1
E n ca rg o 2
E le m e n to s
…….
E n ca rg o N
A cció n
A cció n
A cció n
D E C IS O R
R e g la s
34
2ª Aproximación: Formación del conocimiento.
B .D
In G R ID
E n ca rg o 1
E n ca rg o 2
E le m e n to s
…….
E n ca rg o N
D E C IS O R
R e g la s
W eb
35
2ª Aproximación: Gestión del conocimiento
D e c is io n e s
H echos
D E C IS O R
HECHOS
S itu a c ió n
e le m e n to
1
S itu a c ió n
e le m e n to
2
S itu a c ió n
e le m e n to
N
C o n o c im ie n to
s o b re
e le m e n to 1
C o n o c im ie n to
s o b re
e le m e n to 2
C o n o c im ie n to
s o b re
e le m e n to N
REG LAS
C O N O C IM IE N T O G E N E R A L
36
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
37
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
se rvicio
co n d ició n
=
m á q u in a
e sta d o m o n ito riza d o
e sta d o d e se a d o
38
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
e s ta d o
a n te rio r
P e rm ite c o n d ic io n a r la
re g la a la p ro v e n ie n c ia
d e c ie rto e s ta d o
39
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
E s ta b le
tip o
In e s ta b le
In e s ta b le c a íd o
40
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
a cció n
N o m b re d e l scrip t a
e je cu ta r
41
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
in te n to s
M á xim o n ú m e ro d e re in te n to s d e
la a cció n
42
2ª Aproximación: Programación de reglas
ELEM ENTO A
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
C o n d ic ió n
1
C o n d ic ió n
2
C o n d ic ió n
N
e s ta d o
a n te rio r
tip o
a c c ió n
in te n to s m e n s a je
m ensaje
M ensaje de notificación en caso
de superar el m áxim o núm ero de reintentos
43
2ª Aproximación: Matching
M ó d u lo A
A
C
H
J
L
O
R
W
Z
A c c ió n
3
5
6
7
8
9
13
16
20
A c c ió n
A B I
A
9JJ
A B
T ip o
T ip o
T ip o
T ip o
A c c ió n
A c c ió n
A c c ió n
A c c ió n
In te n to s
In te n to s
In te n to s
In te n to s
...
...
...
...
X Y
J
JJ
3 W
5
U
T ip o
T ip o
T ip o
T ip o
A c c ió n
A c c ió n
A c c ió n
A c c ió n
In te n to s
In te n to s
In te n to s
In te n to s
...
...
...
...
H echos
M ó d u lo Z
c1
c2
cN
R e g la s
A c c ió n
c1
c2
cN
A c c ió n
44
Gestión del conocimiento. Segunda aprox.
B .D
In G R ID
E n ca rg o 1
E n ca rg o 2
E le m e n to s
…….
R e g la s
W eb
E n ca rg o N
A cció n
A cció n
A cció n
D E C IS O R
45
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
46
Base de datos de InGRID

Base de datos MySQL

Integrar toda la información que usa InGRID

Independiente de la base de datos de Nagios

Recoge:

Máquinas y servicios sobre los que InGRID actúa con sus estados:




Monitorizados (importados de la base de datos de Nagios)
Deseados (los que el operador decide).
Estructura de las reglas de CLIPS
Decisiones de CLIPS (encargos)
47
Índice
1
InGRID: Arquitectura
2
Monitorización
3
Control
4
Bases de Datos
5
Interfaces
48
Interfaz Web de InGRID

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
49
Interfaz Web de InGRID
Descargar

InGRID: Operador Virtual de Nodo GRID