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.
$ 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.
$ 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.
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.
$ 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.
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).
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.
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.
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.
"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).
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.