Herramientas de usuario

Herramientas del sitio


manuales:nagios:capacitacion:mk_livestatus

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
manuales:nagios:capacitacion:mk_livestatus [2015/10/16 15:09] cayumanuales:nagios:capacitacion:mk_livestatus [2016/03/21 18:48] – [Compilación] cayu
Línea 39: 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# ./configure --with-nagios4
 checking for a BSD-compatible install... /usr/bin/install -c checking for a BSD-compatible install... /usr/bin/install -c
 checking whether build environment is sane... yes checking whether build environment is sane... yes
Línea 156: Línea 156:
 } }
 </code> </code>
 +===== Ejemplos =====
 +==== Python ====
 +=== livestatus ===
 +<code python>
 +#!/usr/bin/python
 +import os
 +import livestatus
  
 +try:
 +    socket_path = "unix:/usr/local/nagios/var/rw/live"
 +except:
 +    sys.exit(1)
 +
 +try:
 +   # Make a single connection for each query
 +   print "\nPerformance:"
 +   for key, value in livestatus.SingleSiteConnection(socket_path).query_row_assoc("GET status").items():
 +      print "%-30s: %s" % (key, value)
 +   print "\nHosts:"
 +   hosts = livestatus.SingleSiteConnection(socket_path).query_table("GET hosts\nColumns: name alias address")
 +   for name, alias, address in hosts:
 +      print "%-16s %-16s %s" % (name, address, alias)
 +
 +   # Do several queries in one connection
 +   conn = livestatus.SingleSiteConnection(socket_path)
 +   num_up = conn.query_value("GET hosts\nStats: hard_state = 0")
 +   print "\nHosts up: %d" % num_up
 +
 +   stats = conn.query_row(
 + "GET services\n"
 + "Stats: state = 0\n"
 + "Stats: state = 1\n"
 + "Stats: state = 2\n"
 + "Stats: state = 3\n")
 +   print "Service stats: %d/%d/%d/%d" % tuple(stats)
 +
 +   print "List of commands: %s" % \
 +      ", ".join(conn.query_column("GET commands\nColumns: name"))
 +
 +   print "Query error:"
 +   conn.query_value("GET hosts\nColumns: hirni")
 +
 +
 +except Exception, e: # livestatus.MKLivestatusException, e:
 +   print "Livestatus error: %s" % str(e)
 +</code>
 +=== Monitoring::Livestatus ===
 +API de Perl para acceder a datos Nagios e Icinga por medio de check_mk livestatus
 +<code perl>
 +use Monitoring::Livestatus;
 +    my $ml = Monitoring::Livestatus->new(
 +      socket => '/var/lib/livestatus/livestatus.sock'
 +    );
 +    my $hosts = $ml->selectall_arrayref("GET hosts");
 +</code>
 +== new ([ARGS]) ==
 +Creates an Monitoring::Livestatus object. new takes at least the socketpath. Arguments are in key-value pairs.
 +Crea el objeto Monitoring::Livestatus. Toma la ruta del socket.
 +^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 ':' va a ser usado servidor sino socket|
 +^name|Nombre para la conexión, default dirección socket/server|
 +^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/service, default 124 (pipe)|
 +^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->selectcol_arrayref(
 +       "GET hosts\nColumns: name contacts",
 +       { Limit => "10,20" }
 +    );
 +</code>
 +==== Perl ====
 +=== Monitoring::Livestatus ===
 +<code perl>
 +#!/usr/bin/perl
 +use Monitoring::Livestatus;
 +
 +$filtergrp = 'NAGIOS_ARGENTINA';
 +
 +$ml = Monitoring::Livestatus->new(
 + socket => '/usr/local/nagios/var/rw/live'
 +);
 +
 +my $up = $ml->selectscalar_value("GET hosts\nFilter: host_groups >= $filtergrp\nStats: state = 0");
 +my $down = $ml->selectscalar_value("GET hosts\nFilter: host_groups >= $filtergrp\nStats: state = 1");
 +my $unknown = $ml->selectscalar_value("GET hosts\nFilter: host_groups >= $filtergrp\nStats: state = 2");
 +my $total = $up + $down + $unknown;
 +
 +print "$down\/$total \n";
 +</code>
manuales/nagios/capacitacion/mk_livestatus.txt · Última modificación: 2016/03/21 18:49 por cayu