manuales:nagios:capacitacion:mk_livestatus
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
manuales:nagios:capacitacion:mk_livestatus [2015/09/18 18:07] – creado cayu | manuales:nagios:capacitacion:mk_livestatus [2016/03/21 18:49] (actual) – [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 ' |
- | root@linux# tar xzf mk-livestatus-1.1.2.tar.gz | + | root@linux# tar xzf mk-livestatus-1.2.6p16.tar.gz |
- | root@linux# cd mk-livestatus-1.1.2 | + | root@linux# cd mk-livestatus-1.2.6p16 |
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 73: | Línea 71: | ||
root@linux# make install | root@linux# make install | ||
Making install in src | Making install in src | ||
- | make[1]: Entering directory `/ | + | make[1]: Entering directory `/ |
- | make[2]: Entering directory `/ | + | make[2]: Entering directory `/ |
test -z "/ | test -z "/ | ||
/ | / | ||
Línea 80: | Línea 78: | ||
/ | / | ||
| | ||
- | /bin/sh / | + | /bin/sh / |
/ | / | ||
rm -f / | rm -f / | ||
- | make[2]: Leaving directory `/ | + | make[2]: Leaving directory `/ |
- | make[1]: Leaving directory `/ | + | make[1]: Leaving directory `/ |
- | make[1]: Entering directory `/ | + | make[1]: Entering directory `/ |
- | make[2]: Entering directory `/ | + | make[2]: Entering directory `/ |
make[2]: Nothing to be done for `install-exec-am' | make[2]: Nothing to be done for `install-exec-am' | ||
make[2]: Nothing to be done for `install-data-am' | make[2]: Nothing to be done for `install-data-am' | ||
- | make[2]: Leaving directory `/ | + | make[2]: Leaving directory `/ |
- | 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 | + | [1256144866] livestatus: Version 1.2.6p16 initializing. Socket path: '/ |
/ | / | ||
[1256144866] livestatus: Created UNIX control socket at / | [1256144866] livestatus: Created UNIX control socket at / | ||
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.1442599675.txt.gz · Última modificación: 2015/09/18 18:07 por cayu