manuales:nagios:capacitacion:mk_livestatus
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previaÚltima revisiónAmbos lados, revisión siguiente | ||
manuales:nagios:capacitacion:mk_livestatus [2015/09/18 18:07] – creado cayu | manuales:nagios:capacitacion:mk_livestatus [2016/03/21 18:48] – [Compilación] 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 41: | Línea 39: | ||
root@linux# cd mk-livestatus-1.1.2 | root@linux# cd mk-livestatus-1.1.2 | ||
root@linux# | root@linux# | ||
- | root@linux# ./configure | + | root@linux# ./ |
checking for a BSD-compatible install... / | checking for a BSD-compatible install... / | ||
checking whether build environment is sane... yes | checking whether build environment is sane... yes | ||
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 ===== | ||
+ | ==== Python ==== | ||
+ | === livestatus === | ||
+ | <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 " | ||
+ | </ | ||
+ | === Monitoring:: | ||
+ | API de Perl para acceder a datos Nagios e Icinga por medio de check_mk livestatus | ||
+ | <code perl> | ||
+ | use Monitoring:: | ||
+ | my $ml = Monitoring:: | ||
+ | socket => '/ | ||
+ | ); | ||
+ | my $hosts = $ml-> | ||
+ | </ | ||
+ | == new ([ARGS]) == | ||
+ | Creates an Monitoring:: | ||
+ | Crea el objeto Monitoring:: | ||
+ | ^Argumentos^^ | ||
+ | ^socket|Ruta al socket UNIX de check_mk livestatus| | ||
+ | ^server|Usar este servidor para una conexión TCP| | ||
+ | ^peer|Camino alternativo al socket o servidor, si se usa el valor ':' | ||
+ | ^name|Nombre para la conexión, default dirección socket/ | ||
+ | ^verbose|Modo verbose| | ||
+ | ^line_seperator|Código ascii separador de líneas default 10, (newline)| | ||
+ | ^column_seperator|Código ascii separador de columnas, defaults 0 (null byte)| | ||
+ | ^list_seperator|Código ascii separador de listas, default 44 (comma)| | ||
+ | ^host_service_seperator|Código ascii separador host/ | ||
+ | ^keepalive|keepalive. Default off| | ||
+ | ^errors_are_fatal|Errores con mensaje de caída. Default: on| | ||
+ | ^warnings|muestran advertencias en las consultas sin Columnas| | ||
+ | ^timeout|Tiempo de espera general. Usado para conexión y consultas| | ||
+ | ^query_timeout|set a query timeout. Used for retrieving querys, Default 60sec| | ||
+ | ^connect_timeout|Tiempo de espera de conexión inicial. Por defecto 5 s| | ||
+ | == Limit == | ||
+ | <code perl> | ||
+ | my $array_ref = $ml-> | ||
+ | " | ||
+ | { Limit => " | ||
+ | ); | ||
+ | </ | ||
+ | ==== Perl ==== | ||
+ | === Monitoring:: | ||
+ | <code perl> | ||
+ | # | ||
+ | use Monitoring:: | ||
+ | |||
+ | $filtergrp = ' | ||
+ | |||
+ | $ml = Monitoring:: | ||
+ | socket => '/ | ||
+ | ); | ||
+ | |||
+ | my $up = $ml-> | ||
+ | my $down = $ml-> | ||
+ | my $unknown = $ml-> | ||
+ | my $total = $up + $down + $unknown; | ||
+ | |||
+ | print " | ||
+ | </ |
manuales/nagios/capacitacion/mk_livestatus.txt · Última modificación: 2016/03/21 18:49 por cayu