Instalación y Configuración de Nagios

Introducción

Metas

Notas

Ejercicios

PARTE I

1. Ingrese a su máquina virtual como usuario 'sysadm'.

2. Instalar Nagios Versión 3

$ sudo apt-get install nagios3 nagios3-doc

Durante la instalación se le preguntará por el "Nagios web administration password:" - Este password será para el usuario de Nagios "nagiosadmin". Cuando llegue el momento, escriba el password de su cuenta sysadm.

Nota: Si no lo ha hecho ya, se le pedirá que configure el MTA Postfix (programa de transferencia de correo) durante el proceso de instalación de Nagios. Simplemente acepte el valor por defecto "Internet Site".

3. Observe la configuración inicial de Nagios

Abra un navegador, y vaya a su servidor así:

http://pcN.ws.nsrc.org/nagios3/

En la ventana de login, escriba lo siguiente:

        User Name: nagiosadmin
        Password:  <PASSWORD DE LA CLASE>

Oprima el enlace "Hosts" situado a la izquierda de la página inicial de Nagios para ver lo que se ha configurado por defecto.

4. Añadir Routers, PCs y Switches

Crearemos tres archivos, routers.cfg, switches.cfg y pcs.cfg, y añadiremos entradas para el hardware usado en nuestra clase.

4a. Crear el archivo switches.cfg

$ cd /etc/nagios3/conf.d                (Solo para estar seguro)
$ sudo editor switches.cfg

En este archivo agregue lo siguiente (COPIAR Y PEGAR!):

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

Salve el fichero y salga del editor.

4b. Crear el archivo routers.cfg

Tenemos un total de hasta 10 enrutadores. Estos son rtr1-rtr9 y el gw. Además, tenemos 1 o 2 puntos de acceso inalámbrico (ap1, ap2), definiremos entradas para ellos también. Si alguno de estos dispositivos no existe en la red del taller, no lo incluya. Recuerde: COPIAR Y PEGAR!

$ sudo editor routers.cfg
define host {
    use         generic-host
    host_name   gw
    alias       Classrooom Gateway Router
    address     10.10.0.254
}

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

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

*** Nota: No es necesario añadir las definiciones de todos los routers ahora => siempre puede volver y añadir el resto más tarde! ***

define host {
    use         generic-host
    host_name   ap1
    alias       Wireless Access Point 1
    address     10.10.0.251
}

define host {
    use         generic-host
    host_name   ap2
    alias       Wireless Access Point 2
    address     10.10.0.252
}

Salve el fichero y salga del editor.

4c. Crear el archivo pcs.cfg

Ahora añadiremos algunas máquinas virtuales de nuestra clase. Debajo le damos algunas entradas para comenzar. Debería completar el archivo con tantas PCs como quiera añadir. Le recomendamos que, como mínimo, agregue las 4 PCs de su grupo, así como el NOC del taller y al menos una PC de otro grupo (recuerde COPIAR Y PEGAR!):

$ sudo editor pcs.cfg
define host {
    use         generic-host
    host_name   noc
    alias       Servidor NOC del Taller
    address     10.10.0.250
}

#
# Grupo 1
#

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

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

#
# Otro PC (solo ejemplo!)
#

define host {
    use         generic-host
    host_name   pc20
    alias       pc20
    address     10.10.5.20
}

Puede grabar y salir del editor ahora. Puede añadir más entradas de PCs después.

LOS PASOS 5a - 5c DEBEN REPETIRESE CADA VEZ QUE ACTUALICE SU CONFIGURACIÓN!

5a. Verifique que la sintaxis de sus archivos es correcta

$ sudo nagios3 -v /etc/nagios3/nagios.cfg

Debería ver algunas advertencias como las mostradas debajo. Puede ignorarlas por ahora.

Checking services...
    Checked 7 services.
Checking hosts...
Warning: Host 'gw' has no services associated with it!
Warning: Host 'rtr1' has no services associated with it!
Warning: Host 'rtr2' has no services associated with it!

etc....
...
Total Warnings: N
Total Errors:   0

Todo parece estar bien, no se detectaron problemas serios durante la comprobación. Nagios está diciendo que no es muy normal monitorear un nodo sólo por su existencia en la red, sin monitorear también algún servicio.

5b. Reiniciar Nagios

$ sudo service nagios3 restart

PISTA: Va a estar haciendo esto muchas veces. Si lo hace en una sola línea, como sigue, entonces puede usar la flecha hacia arriba para repetir el comando:

$ sudo nagios3 -v /etc/nagios3/nagios.cfg && sudo service nagios3 restart

El símbolo '&&' es un "AND" lógico y asegura que el reinicio sólo se ejecute si la configuración es válida.

5c. Verificar en la interfaz web

Vaya a la interfaz web (http://pcN.ws.nsrc.org/nagios3) y compruebe que los nodos que acaba de agregar aparecen en la interfaz. Oprima "Hosts" a la izquierda de la pantalla para verlos. Puede que vea el estado "PENDING" hasta que el chequeo se realice.

6. Ver el mapa de estado

Vaya a http://pcN.ws.nsrc.org/nagios3

Oprima el enlace "Map" en el menú de la izquierda. Debería ver todos sus nodos con el proceso de Nagios en el medio. Los símbolos "?" significan que no hemos indicado a Nagios qué tipo de nodo es cada uno (enrutador, switch, AP, PC corriendo Linux, etc.).

PARTE II - Configure una comprobación de servicio para el servidor NOC del taller

0. Configuración

Ahora que ya hemos agregado los nodos, podemos comenzar diciendole a Nagios qué servicios monitorear sobre el hardware configurado, como agrupar los nodos de manera útil, como agrupar servicios, etc.

1. Agregar una comprobación de servicio para el NOC del taller

$ sudo editor hostgroups_nagios2.cfg
members         localhost

a

members         localhost,noc

Grabe el fichero editado y salga.

Verifique que los cambios están bien:

$ sudo nagios3 -v /etc/nagios3/nagios.cfg

Reinicie Nagios para ver el nuevo servicio asociado a nuestro nodo:

$ sudo service nagios3 restart

En la interfaz web de Nagios encuentre el enlace "Services" (en el menu de la izquierda) y presionelo. Debería poder encontrar los cambios recientes:

noc  SSH      PENDING ...

PARTE III - Definir servicios para todos los PCs

Nota: El "normal_check_interval" por defecto es 5 (minutos) para verificar los servicios. Esto esta definido en "generic-service_nagios2.cfg". Quizá quiera cambiar esto a 1 (1 minuto) para acelerar la detección de problemas en los servicios, al menos para este taller.

1. Determine qué servicios definir para cada nodo

Esto es esencial en el uso de Nagios y herramientas de monitoreo en general. Hasta el momento sólo hemos usado "ping" para saber que el nodo tiene conectividad de red, y hemos configurado un chequeo para un solo nodo (su PC). El siguiente paso es decidir qué servicios (servidor web, SSH, etc.) se quiere monitorear para cada host del taller.

En esta clase en particular tenemos:

Entonces vamos a configurar Nagios para chequear estos servicios en estos dispositivos.

2. Verificar SSH en las PCs y los enrutadores

En el archivo "services_nagios2.cfg" hay ya una entrada para comprobar el servicio SSH, así que no tiene que crearla en este paso. En su lugar, simplemente tiene que redefinir la entrada "ssh-servers" en el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg. Acabamos de modificar este fichero, añadiendo el host 'noc', de forma que se queda como:

# A list of your ssh-accessible servers
define hostgroup {
        hostgroup_name  ssh-servers
                alias           SSH servers
                members         localhost,noc
        }

¿Qué le parece que debería cambiar? Correcto, la línea "members". Debe agregar entradas para cada PC, enrutador y switch de la clase que tenga SSH. Con esta información y con el diagrama de la red debería ser capaz de completar esta entrada.

La entrada debe verse algo así como:

define hostgroup {
        hostgroup_name  ssh-servers
                alias           SSH servers
                members         localhost,noc,pc1,pc2,...,ap1,rtr1,rtr2,...,gw
        }

Nota: no elimine "localhost". Este es su PC y representa el punto de vista de Nagios. Así que, por ejemplo, si usted está en "pc3", no incluya "pc3" en la lista ya que este esta representado por la entrada localhost.

La entrada "members" será una larga línea y probablemente no cabrá en la pantalla. Si prefiere, puede agregar entradas en líneas adicionales usando el carácter "\" para indicar que la línea continúa, así:

Recuerde que debe incluir todos los PCs y los routers que se han definido en los archivos "pcs.cfg", "switches.cfg" y "routers.cfg". Sólo añadir entradas a partir de estos archivos (es decir: no añada "PC8" en su lista de hostgroup si "PC8" no está definido en "pcs.cfg" también).

Una vez que haya terminado, ejecute el chequeo pre-flight y reinicie Nagios:

$ sudo nagios3 -v /etc/nagios3/nagios.cfg && sudo service nagios3 restart

... y vea sus cambios en la interfaz web.

Para continuar con los hostgroups puede agregar grupos adicionales para usar más tarde, por ejemplo, los enrutadores virtuales. Edite el archivo hostgroups_nagios2.cfg de nuevo:

$ sudo editor hostgroups_nagios2.cfg

y añada lo siguiente al final del archivo (COPIAR Y PEGAR):

# Una lista de enrutadores virtuales

define hostgroup {
        hostgroup_name  routers
                alias           Cisco 7200 Routers
                members         rtr1,rtr2,...
        }

Sólo listar los routers que ha definido en el "routers.cfg".

Guarde y salga del archivo. Verifique que todo está bien:

$ sudo nagios3 -v /etc/nagios3/nagios.cfg

Si todo está bien, entonces reinicie Nagios

$ sudo service nagios3 restart

3. Comprobar HTTP en todos los PCs

Este paso es prácticamente idéntico al anterior. Simplemente cambie el servicio HTTP para agregar cada PC (no enrutadores ni switches). Recuerde, no es necesario agregar su máquina ya que ésta está definida como "localhost". Busque este hostgroup en el archivo hostgroups_nagios3.cfg y actualice la línea "members" de manera correspondiente.

Si tiene preguntas o está confundido, por favor no dude en preguntar a un instructor.