Archivos Mensuales: octubre 2011

Nagios – servicegroups y hostgroups

Con el único fin de agrupar máquinas y servicios para tener una visibilidad más clara desde el interfaz web, podemos definir unos grupos de hosts y servicios.

Para ello, vamos a crear un fichero nuevo al que llamaremos gruops.cfg, y lo incluiremos en el fichero principal de configuracion:

Añadimos la última linea:


# Ficheros de configuracion
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
<span style="color: #ff0000;"> cfg_file=/usr/local/nagios/etc/objects/groups.cfg</span>

y creamos el fichero groups.cfg con este contenido:


define hostgroup{
        hostgroup_name  servidoresLinux
        alias           Servidores Linux
        members         servidor, servidor2
        }

define servicegroup{
        servicegroup_name chequeos http
        alias   Servicios http
        members servidor,HTTP,  servidor2,HTTP
}

de esta forma, creamos unos grupos de hosts y servicios que podremos gestionar desde el interfaz web.

Nagios – Alta de nuevos servicios

Vamos a añadir el chequeo de dos servicios sencillos asociados a nuestro host “servidor”, que añadimos en el capítulo anterior.

Editamos el fichero servidor.cfg y añadimos:


define service{
        use                             generic-service
        host_name                       servidor
        service_description             HTTP
        check_command                   check_http
        }

Esto establece un chequeo http, ligado a servidor, heredando las opciones de la plantilla generic-service.

Vamos a pasarle al check_command algún parametro extra. Para ello, vamos a fijarnos en la definición del comando en commands.cfg:


# 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
        }

Vemos que al lamar al comamdo, se le envía los datos de la máquina usando la macro $HOSTADDRESS$, y un parametro extra llamado $ARG1$.

Si ejecutamos el comando desde la linea de comandos, veremos que arguemntos podemos pasarle:


# /usr/local/nagios/libexec/check_http
Usage:
 check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
       [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-a auth]
       [-b proxy_auth] [-f <ok|warning|critcal|follow|sticky|stickyport>]
       [-e <expect>] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]
       [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>]
       [-A string] [-k string] [-S] [--sni] [-C <age>] [-T <content-type>]
       [-j method]

En este caso, nos interesa hacer el chequeo http, pero al puerto 8083, que es donde tendremos escuchando nuestro servidor web.


# /usr/local/nagios/libexec/check_http -p 8083 xxx.xxx.xxx.xxx
HTTP OK: HTTP/1.1 200 OK - 453 bytes in 0,015 second response time |time=0,014957s;;;0,000000 size=453B;;;0

Para adaptar esta llamada al chequeo de nuestro servicio, editamos servidor.cfg y fijamos el chequeo así:


       check_command                   check_http!-p 8083

de esta forma, llama al binario definido en el comando check_http, pasandole además como $ARG1$, ‘-p 8083′.