manuales:nagios:capacitacion:mk_livestatus
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente | ||
manuales:nagios:capacitacion:mk_livestatus [2015/09/18 18:07] – creado cayu | manuales:nagios:capacitacion:mk_livestatus [2015/10/16 17:53] – [Ejemplos] cayu | ||
---|---|---|---|
Línea 23: | Línea 23: | ||
Esto es no sólo un enfoque increíblemente simple, si no también muy rápido. Algunas ventajas son: | Esto es no sólo un enfoque increíblemente simple, si no también muy rápido. Algunas ventajas son: | ||
- | * Otro entonces NDO, utilizando | + | * Livestatus no impone una carga mensurable de su CPU para nada. Sólo en el tratamiento de las consultas de una cantidad muy pequeña de la CPU es necesario. Pero eso ni siquiera se bloqueará Nagios. |
* Livestatus produce cero / S de disco cuando quering datos de estado. | * Livestatus produce cero / S de disco cuando quering datos de estado. | ||
* Acceso a los datos es mucho más rápido que analizar status.dat o consultar una base de datos SQL. | * Acceso a los datos es mucho más rápido que analizar status.dat o consultar una base de datos SQL. | ||
Línea 33: | Línea 32: | ||
En el mismo tiempo, ofrece a sus Livestatus propio lenguaje de consulta que es simple de entender, ofrece la mayoría de la flexibilidad de SQL e incluso más en algunos casos. Es un protocolo rápido, ligero y no necesita un cliente binario. Incluso, pueden obtener acceso a los datos sin ningún tipo de software especial de ayuda. | En el mismo tiempo, ofrece a sus Livestatus propio lenguaje de consulta que es simple de entender, ofrece la mayoría de la flexibilidad de SQL e incluso más en algunos casos. Es un protocolo rápido, ligero y no necesita un cliente binario. Incluso, pueden obtener acceso a los datos sin ningún tipo de software especial de ayuda. | ||
- | + | ===== Implementación ===== | |
- | Proceso de compilación | + | ==== Compilación ==== |
< | < | ||
root@linux# wget ' | root@linux# wget ' | ||
Línea 92: | Línea 90: | ||
make[1]: Leaving directory `/ | make[1]: Leaving directory `/ | ||
</ | </ | ||
- | |||
- | |||
Despues tenemos que especificar que Nagios cargue el archivo objeto compilado // | Despues tenemos que especificar que Nagios cargue el archivo objeto compilado // | ||
Línea 102: | Línea 98: | ||
Y dentro del log de Nagios vamos a ver algo similar a esto | Y dentro del log de Nagios vamos a ver algo similar a esto | ||
- | |||
< | < | ||
[1256144866] livestatus: Version 1.1.2 initializing. Socket path: '/ | [1256144866] livestatus: Version 1.1.2 initializing. Socket path: '/ | ||
Línea 116: | Línea 111: | ||
[1256144866] livestatus: Entering main loop, listening on UNIX socket | [1256144866] livestatus: Entering main loop, listening on UNIX socket | ||
</ | </ | ||
- | + | ==== Opciones | |
- | + | ||
- | Opciones del módulo | + | |
^Opción^Valor por default^Que significa^ | ^Opción^Valor por default^Que significa^ | ||
|debug|0|Set this to 1 in order to make Livestatus log each query it executes in nagios.log| | |debug|0|Set this to 1 in order to make Livestatus log each query it executes in nagios.log| | ||
Línea 131: | Línea 123: | ||
Ejemplo de como agregar opciones | Ejemplo de como agregar opciones | ||
- | |||
< | < | ||
broker_module=/ | broker_module=/ | ||
Línea 137: | Línea 128: | ||
Ejemplo de como dejar MK Livestatus escuchando en un socket tcp para consultarlo por red, por ejemplo por un sistema de reportes al estilo Jasper Reports o alguna interfaz alternativa como Thruk. | Ejemplo de como dejar MK Livestatus escuchando en un socket tcp para consultarlo por red, por ejemplo por un sistema de reportes al estilo Jasper Reports o alguna interfaz alternativa como Thruk. | ||
- | |||
< | < | ||
service livestatus | service livestatus | ||
Línea 166: | Línea 156: | ||
} | } | ||
</ | </ | ||
+ | ===== Ejemplos ===== | ||
+ | <code python> | ||
+ | # | ||
+ | import os | ||
+ | import livestatus | ||
+ | try: | ||
+ | socket_path = " | ||
+ | except: | ||
+ | sys.exit(1) | ||
+ | |||
+ | try: | ||
+ | # Make a single connection for each query | ||
+ | print " | ||
+ | for key, value in livestatus.SingleSiteConnection(socket_path).query_row_assoc(" | ||
+ | print " | ||
+ | print " | ||
+ | hosts = livestatus.SingleSiteConnection(socket_path).query_table(" | ||
+ | for name, alias, address in hosts: | ||
+ | print "%-16s %-16s %s" % (name, address, alias) | ||
+ | |||
+ | # Do several queries in one connection | ||
+ | conn = livestatus.SingleSiteConnection(socket_path) | ||
+ | | ||
+ | print " | ||
+ | |||
+ | stats = conn.query_row( | ||
+ | "GET services\n" | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | print " | ||
+ | |||
+ | print "List of commands: %s" % \ | ||
+ | ", " | ||
+ | |||
+ | print "Query error:" | ||
+ | | ||
+ | |||
+ | |||
+ | except Exception, e: # livestatus.MKLivestatusException, | ||
+ | print " | ||
+ | </ |
manuales/nagios/capacitacion/mk_livestatus.txt · Última modificación: 2016/03/21 18:49 por cayu