Instalación y Configuración de Nagios

Introducción

Metas

Notas

Ejercicios

PARTE IV - Relaciones de dependencia (padre-hijo)

Cada elemento es hijo de un switch o un router en la red del taller, EXCEPTO su enrutador (rtrX) y los otros miembros de su grupo. Ahora vamos a agregar una directiva "parents" para cada dispositivo que hayamos configurado.

Si no está seguro de la relación padre-hijo, puede mirar el diagrama de la clase. Recuerde, la relación depende del punto de vista de la instanacia de Nagios en su PC.

1. Configurar padres en switches.cfg

$ cd /etc/nagios3/conf.d
$ sudo editor switches.cfg

Actualice la entrada:

define host {
    use         generic-host
    host_name   sw
    alias       Backbone Switch
    address     10.10.0.253
}

de forma que quede como:

define host {
    use         generic-host
    host_name   sw
    alias       Backbone Switch
    address     10.10.0.253
    parents rtrX
}

Donde "rtrX" es el enrutador de su grupo. Ej. el grupo 1 usará "rtr1", el grupo 2 "rtr2", etc.

Grabe y salga del editor.

2. Configurar padres en routers.cfg

$ sudo editor routers.cfg

Para cada entrada agregaremos la línea "parents". O sea, que la definición de gw al comienzo del archivo, debería verse así:

define host {
    use         generic-host
    host_name   gw
    alias       Classroom Gateway Router
    address     10.10.0.254
    parents     sw
}

Para todas las entradas rtrX restantes, excepto para tu grupo, debería, también, agregar una línea que diga:

    parents sw

NO DEBE HABER UNA ENTRADA PARENTS para tu grupo. Si tiene una entrada para "ap1" (punto de acceso inalámbrico de la clase), entonces su padre es también "sw", igual que los enrutadores.

De manera que, si está en el grupo 2, las entradas correspondientes a los grupos 1, 2 y 3 serían:

define host {
    use         generic-host
    host_name   rtr1
    alias       Group 1 Router
    address     10.10.1.254
    parents     sw
}

define host {
    use         generic-host
    host_name   rtr2
    alias       Group 2 Router
    address     10.10.2.254
}

define host {
    use         generic-host
    host_name   rtr3
    alias       Group 3 Router
    address     10.10.3.254
    parents     sw
}

Actualice el resto del archivo correctamente, y luego grabe y salga del editor.

3. Configurar padres en pcs.cfg

Para todas las entradas de PCs debes añadir una línea "parents" con el enrutador del grupo del PC, EXCEPTO PARA TU GRUPO. No debe haber entrada "parents" para los PCs en tu grupo.

Para el NOC so padre el el switch de core o "sw".

#
# Classroom NOC
#

define host {
    use         generic-host
    host_name   noc
    alias       Servidor NOC del taller
    address     10.10.0.250
    parents     sw
}


Para las PCs del grupo 1, debería ser:


#
# Group 1
#

define host {
    use         generic-host
    host_name   pc1
    alias       pc1
    address     10.10.1.1
    parents     rtr1
}

define host {
    use         generic-host
    host_name   pc2
    alias       pc2
    address     10.10.1.2
    parents     rtr1
}

etc

Haga esto con todas las PCs de los grupos restantes. Por ejemplo, pc5 en el grupo 2 tendrá:

     parents    rtr2

Solamente recuerde NO AÑADIR un línea "parents" para las PCs de tu grupo.

Guarde y salga del fichero.

4. Reinicie Nagios y vea el mapa de estado actualizado

$ sudo service nagios3 restart

Si tiene errores, corríjalos y trate de reiniciar de nuevo.

Con el navegador, vaya a http://pcN.ws.nsrc.org/nagios3 y vaya al enlace "Map" de la izquierda. Su mapa debería verse bastante diferente. Debería ver un mapa que representa la red desde el punto de vista de Nagios.

PARTE V - Crear Más Grupos de Nodos

0. Preparación

En la interfaz web, vaya a los enlaces "Hostgroup Overview", "Hostgroup Summary", "Hostgroup Grid". Esto muestra una forma conveniente de agrupar nodos relacionados (ej. si están en la misma ubicación, o si son para el mismo propósito).

1. Actualice /etc/nagios3/conf.d/hostgroups_nagios2.cfg

Para los siguientes ejercicios será útil si actualizamos o creamos los siguientes grupos de nodos:

      debian-servers
      routers
      switches

Si edita el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg, verá una sección debian-servers que sólo contiene a localhost. Actualice esta entrada para añadir todas las PCs del taller, incluyendo el NOC(asumiendo que ha creado una entrada "noc" en su pcs.cfg). Recuerde saltar la entrada de su PC, ya que está representada por localhost.

$ sudo editor /etc/nagios3/conf.d/hostgroups_nagios2.cfg

Actualice la entrada que dice:

# A list of your Debian GNU/Linux servers
define hostgroup {
        hostgroup_name  debian-servers
                alias           Debian GNU/Linux Servers
                members         localhost
        }

Para que el parámetro "members" contenga algo como lo que sigue. Use el diagrama de red de su clase para confirmar el número exacto de máquinas y nombres en su taller.

  members    localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12, \
             pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20,pc21,pc22,pc23,pc24,pc25,\
             pc26,pc27,pc28,pc29,pc30,pc31,pc32,pc33,pc34,pc35,pc36

Asegúrese de poner una "" al final de cada línea. De lo contrario obtendrá un error cuando reinicie Nagios. Recuerde que su propia PC es "localhost", así que debe saltar esa entrada.

Una vez hecho esto, agregue un grupo de nodos más para el/los switch(es) del taller. Si hay más de un switch (sw.ws.nsrc.org), incluya esto en la línea "members" de más abajo, de lo contrario la entrada en hostgroups_nagios3.cfg debería ser como sigue (COPIAR Y PEGAR):

# A list of our switches
define hostgroup {
        hostgroup_name  switches
                alias           Classroom Switches
                members         sw
        }

Cuando termine no olvide verificar y reiniciar Nagios.

2. Vuelva al navegador y compruebe que están presentes sus nuevos Host Groups.

PARTE VI - Información de Nodo Extendida ("hacer los gráficos más bonitos")

1. Actualice extinfo_nagios2.cfg

Si quiere usar los iconos correspondientes para cada nodo definido en Nagios éste es el sitio para hacerlo. Tenemos tres tipos de dispositivos:

Hay un repositorio bastante grande con imágenes para iconos disponible aquí:

/usr/share/nagios/htdocs/images/logos/

Estos iconos se instalan por defecto como paquetes dependientes del nagios3 en Ubuntu. En algunos casos encontrará iconos específicos al modelo de su hardware, pero para hacer las cosas más simples usaremos los siguientes iconos para nuestro hardware:

/usr/share/nagios/htodcs/images/logos/base/debian.*
/usr/share/nagios/htdocs/images/logos/cook/router.*
/usr/share/nagios/htdocs/images/logos/cook/switch.*

El próximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg e indicar a Nagios cuál imagen debe usar para representar sus dispositivos.

$ sudo editor /etc/nagios3/conf.d/extinfo_nagios2.cfg

Así es como se vería una entrada de enrutador (ya existe una entrada para debian-servers que funciona tal cual). Note que el modelo de enrutador (3600) no es tan importante. La imagen representa un enrutador en general.

define hostextinfo {
        hostgroup_name   routers
        icon_image       cook/router.png
        icon_image_alt   Cisco Routers (7200)
        vrml_image       router.png
        statusmap_image  cook/router.gd2
}

Note que podemos simplemente usar "hostgroup_name routers", ya que éste ya ha sido definido en el archivo hostgroups_nagios2.cfg. Esto hace que configurar múltiples elementos semejantes sea más fácil.

Ahora agregue una entrada para sus switches. Cuando termine, revise sus cambios y reinicie Nagios. Eche un vistazo al mapa de estado (Status Map) en la interfaz web. Debería verse mucho más bonito, con iconos en vez de símbolos de interrogación para la mayoría de los elementos.

PARTE VII - Crear Grupos de Servicio

1. Cree grupos de servicio para SSH y HTTP para cada grupo de PCs.

La idea aquí es crear tres grupos de servicios. Cada grupo de servicio será para una cuarta parte del taller. Queremos ver estas PCs agrupadas e incluir el estado de sus servicios SSH y HTTP. Para ello, cree y edite este archivo:

$ cd /etc/nagios3/conf.d            (por si acaso)
$ sudo editor servicegroups.cfg

He aquí un ejemplo del grupo de servicios para el grupo 1:

define servicegroup {
    servicegroup_name   group1-services
    alias           group 1 services
    members  pc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP
        }

Fíjese que si la línea de miembros es muy larga, puede usar "" al final para continuar en la línea de abajo.

Note que "SSH" y "HTTP" necesitan estar en mayúsculas, ya que así es como están definidas en el service_description del archivo /etc/nagios3/conf.d/services_nagios2.cfg

Añada una entrada para otros grupos de servidores también.

CRITICO: Cuando cree una entrada para su grupo, recuerde usar "localhost" en lugar del nombre de su PC "pcN", ya que sólo ha definido su PC como "localhost" en el archivo hostgroups_nagios2.cfg.

Guarde y verifique sus cambios y reinicie Nagios. Ahora, si oprime el enlace de Service Groups en el menú de la interfaz web, debería ver esta información agrupada.

PARTE VIII - Configure acceso para invitados (guest) en la interfaz web de Nagios

1. Vamos a editar el archivo /etc/nagios3/cgi.cfg para dar acceso read-only al usuario

"guest" en la interfaz web de Nagios

Nagios por defecto está configurado para dar acceso completo (r/w) a travás de la interfaz web al usuario "nagiosadmin". Puede cambiar el nombre de este usuario, agregar otros usuarios, cambiar cómo se autentifican los usuarios, qué usuarios tienen acceso a qué recursos y mucho más, por medio del archivo cgi.cfg.

Primero, vamos a crear el usuario "guest" y un password en el archivo httpasswd.users.

$ sudo htpasswd /etc/nagios3/htpasswd.users guest

You can use any password you want (or none). A password of "guest" is not a bad choice.

Puede usar cualquier password que quiera (o ninguno). Por ejemplo, el password "guest" sería una buena opción.

Siguiente, edite el archivo /etc/nagios3/cgi.cfg y busque qué tipo de acceso se le ha asignado al usuario nagiosadmin. Por defecto, verá las siguientes directivas (note que hay comentarios entre cada directiva):

authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin

Ahora digámosle a Nagios que permita al usuario "guest" tener algo de acceso a la información a través de la interfaz web. Puede elegir lo que desee, pero lo que sería más típico es:

authorized_for_system_information=nagiosadmin,guest
authorized_for_configuration_information=nagiosadmin,guest
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin,guest
authorized_for_all_hosts=nagiosadmin,guest
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin

Note que no damos al usuario guest acceso a los comandos de sistema, comandos de servicio ni comandos de host.

Al terminar los cambios, grabe el archivo cgi.cfg, verifique y reinicie Nagios.

Para ver si puede ingresar como "guest", deberá eliminar sus "cookies" del navegador, o abrir un navegador alternativo si lo tiene. No notará ninguna diferencia en la interfaz web. La diferencia está en que algunas de las opciones disponibles en el menú no funcionarán (por ejemplo, forzar un chequeo de nodo o servicio, programación de chequeos, comentarios, etc).

2. Habilitar comandos externos en nagios.cfg

Este cambio es necesario a fin de permitir a los usuarios "Confirmar" problemas con los hosts y servicios en la interfaz Web. Los permisos de archivo predeterminados se configuran de una forma segura para evitar que se pueda actualizar Nagios desde la interfaz web, por lo que es necesario configurar estos permisos de forma un poco más permisiva.

En primer lugar, editar el fichero "/etc/nagios3/nagios.cfg", y cambiar la línea:

    check_external_commands=0

a

    check_external_commands=1

Guarde el archivo y salga.

A continuación, ejecute los siguientes comandos para cambiar permisos de directorio y para hacer permanentes los cambios:

$ sudo /etc/init.d/nagios3 stop
$ sudo dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
$ sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
$ sudo /etc/init.d/nagios3 start

Una vez hecho esto, vaya a "problemas" > "Servicios (no controlado)" y busque un servicio en el estado rojo (crítico) o amarillo (advertencia). Haga clic en el nombre del servicio. A continuación, en "Comandos de servicio", haga clic en "Confirmar este problema de servicio".

El problema debe desaparecer de la lista de problemas no controlados.