# Instalación y Configuración de Nagios

# Introducción

## Metas

- Instalar y configurar Nagios

## Notas

- Los comandos precedidos por “$” implican que debe ejecutar el comando como usuario genérico - no como root
- Los comandos precedidos por “#” implican que debería estar trabajando como usuario root.
- Los comandos con inicios de línea más específicos como “rtrX>” o “mysql>” indican que debe ejecutar los comandos en un equipo remoto, o dentro de otro programa.

# Ejercicios

# PARTE I

## Ingrese a su máquina virtual como usuario ‘sysadm’.

## Instalar Nagios Versión 4

_La instalación de Nagios ya está hecha. Asi, algunos pasos son extras__

    $ sudo apt install nagios4

Nagios web administration password: Userid: nagiosadmin

    $ sudo apt install --reinstall iputils-ping

En este momento tendrá un servidor web instalado en su nodo, pero es posible que necesite iniciarlo. Para iniciar su servidor web, haga lo siguiente:

    $ sudo systemctl enable apache2
    $ sudo systemctl start apache2

Verificamos si apache2 esta corriendo como esperado:

    $ sudo systemctl status apache2

Apreta ‘q’ para salir si los datos llena su pagina:

Para que iniciar Nagios ahora, y para que se inicie automáticamente cuando el nodo se inicie, ejecute lo siguiente:

    $ sudo systemctl enable nagios4
    $ sudo systemctl start nagios4

Verificamos que natios3 esta corriendo como esperamos:

    $ sudo systemctl status nagios4

Apreta ‘q’ para salir si los datos llena su pagina:

## Observe la configuración inicial de Nagios

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

    https://oob-hostX-campusY.p.vtp-us.nsrc.org/nagios4/

En la ventana de login, escriba lo siguiente (posible que no hay usuario/clave):

            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.

Oprima el enlace “Services” para ver que servicios locales están siendo monitoreados1.

## Añadir Routers, PCs y Switches

Crearemos tres archivos, routers.cfg, switches.cfg y pcs.cfg y entradas para los dispositivos en su campus. Si lo desea, puede simplemente crear un solo archivo para todos los elementos. Nagios leerá cualquier archivo llamado *.cfg y resolverá los detalles por su cuenta.

### Creando el archivo “routers.cfg”

Si quiere ayuda para comprender cómo se ve la red de su campus, eche un vistazo al diagrama de red detallado para el campus1, cuyo enlace se encuentra en la página principal de su taller.

Cada grupo terminará monitorizando cada elemento en su campus, incluyendo:

Enrutadores

- bdr1-campusY.ws.nsrc.org
- core1-campusY.ws.nsrc.org
- transit1-nren.ws.nsrc.org

Conmutadores

- dist1-b1-campusY.ws.nsrc.org
- dist1-b2-campusY.ws.nsrc.org

Estaciones

- host1-campusY.ws.nsrc.org
- host2-campusY.ws.nsrc.org
- host3-campusY.ws.nsrc.org
- host4-campusY.ws.nsrc.org
- host5-campusY.ws.nsrc.org
- host6-campusY.ws.nsrc.org
- srv1-campusY.ws.nsrc.org

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

’’ ‘NOTA:’ ’’ Y es el número de su campus (1, 2, 3, 4, 5 ó 6)

    define host {
      use           generic-switch
      host_name     transit1-nren
      alias         Transit Router 1
      address       transit1-nren.ws.nsrc.org
    }

    define host {
      use           generic-switch
      host_name     bdr1-campusY
      alias         Campus Y Enrutador Borde
      address       bdr1-campusY.ws.nsrc.org
    }

    define host {
      use           generic-switch
      host_name     core1-campusY
      alias         Campus Y Enrutador Core
      address       core1-campusY.ws.nsrc.org
    }

Grabe el archivo y salga del editor.

Verifiquemos que nuestros cambios están funcionando. En la línea de comandos, haga lo siguiente:

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

Si no encuentra ningún error (las advertencias “warnings” no son críticas), entonces puede reiniciar Nagios con su nueva configuración:

    $ sudo systemctl reload nagios4

Y en un navegador, vea lo siguiente:

    https://oob-hostX-campusY.p.vtp-us.nsrc.org/nagios4/

y oprima “hosts”. Debería poder ver su lista de enrutadores. Es posible que estén todavía por chequear. En su momento, se verán de color verde, cuando Nafios haya corrido el chequeo.

Ahora seguiremos el mismo procedimiento para los conmutadores.

### Crear el archivo switches.cfg

En este archivo, agregue la siguiente entrada (COPIAR y RESTAURAR!):

    $ cd /etc/nagios4/conf.d                (para estar seguros)
    $ sudo editor switches.cfg

Agregue las siguientes entradas en el archivo. Si quiere, puede COPIAR y RESTAURAR, pero asegurese de actualizar “Y” con el número de su campus:

    define host {
        use         generic-switch
        host_name   dist1-b1-campusY
        alias       Switch de distribucion 1, Edificio 1, Campus Y
        address     dist1-b1-campusY.ws.nsrc.org
    }

    define host {
        use         generic-switch
        host_name   dist1-b2-campusY
        alias       Switch de distribucion 1, Edificio 2, Campus Y
        address     dist1-b2-campusY.ws.nsrc.org
    }

Grabe el archivo y salga del editor.

### Crear el archivo pcs.cfg

Ahora crearemos entradas para las 6 máquinas virtuales individuales (nodos 1 al 6) y el servidor compartido de nuestro campus (srv1)

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

Para cada campus, introduzca lo siguiente al inicio del archivo pcs.cfg (reemplace la letra “Y” con el número de su campus):

    define host {
        use         linux-server
        host_name   srv1-campusY
        alias       Servidor 1, Campus Y
        address     srv1-campusY.ws.nsrc.org
    }

Este es un ejemplo de la entrada para nodo 1:

    define host {
        use         linux-server
        host_name   host1-campusY
        alias       Host 1, Campus Y
        address     host1-campusY.ws.nsrc.org
    }

Repita estos pasos para cada uno de los nodos restantes. Al final deberá tener un archivo pcs.cfg con una entrada srv1-campusY definida, y sus otros 6 nodos, para un total de 7 entradas.

** REPITA LOS SIGUIENTES PASOS CADA VEZ QUE HAGA CAMBIOS EN SU CONFIGURACIÓN **

### Verifique que sus archivos de configuración están correctos:

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

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

    Checking objects...
            Checked 8 services.
            Checked 13 hosts.
            Checked 1 host groups.
            Checked 0 service groups.
            Checked 1 contacts.
            Checked 1 contact groups.
            Checked 212 commands.
            Checked 5 time periods.
            Checked 0 host escalations.
            Checked 0 service escalations.
    Checking for circular paths...
            Checked 13 hosts
            Checked 0 service dependencies
            Checked 0 host dependencies
            Checked 5 timeperiods
    Checking global event handlers...
    Checking obsessive compulsive processor commands...
    Checking misc settings...

    Total Warnings: 0
    Total Errors:   0

    Things look okay - No serious problems were detected during the pre-flight check

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

### Reiniciar Nagios

    $ sudo systemctl restart nagios4

SUGERENCIA: 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 nagios4 -v /etc/nagios4/nagios.cfg && sudo systemctl restart nagios4

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

### Verificar en la interfaz web

Vaya a la interfaz web (http://hostX-campusY.ws.nsrc.org/nagios4) 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.

## Ver el mapa de estado

https://oob-hostX-campusY.p.vtp-us.nsrc.org/nagios4/

Oprima el enlace “Map” en el menú de la izquierda. Debería ver todos sus nodos con el proceso de Nagios en el medio. El “(Legacy)” no va a funcionar en este caso.

# PARTE II - Configure un chequeo de servicio para el servidor SRV del taller

## Configuración

Ahora que ya hemos agregado los nodos, podemos comenzar diciéndole a Nagios qué servicios monitorear sobre los nodos configurados, cómo agrupar los nodos de manera útil, cómo agrupar servicios, etc.

## Agregar una chequeo de servicio para el SRV del taller

En este parte vamos a crear una definición de tipo de servicio y una definición de grupos (hostgroups) en que Nagios hace un chequeo de servicio por los hosts que son miembros.

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

Ahora, creamos una definición del servicio ssh:

En el archivo services.cfg agrega:

    define service {
            hostgroup_name                  ssh-servers
            service_description             SSH
            check_command                   check_ssh
            use                             generic-service
            # ssh occasionally flaps. Let's be sure it's down.
            retry_interval                  2
            max_check_attempts              10
            notification_interval           0 ; set > 0 if you want to be renotified
    }

Guardar y exitar el archivo.

Y, ahora, vamos a hacer un grupo de maquinas (hosts) que corren ssh:

    $ sudo editor hostgroups.cfg

Y, empezamos con algo simple. Definamos que el localhost y el host srv1-campusY corren ssh:

En el archivo agrega:

    define hostgroup
      hostgroup_name  ssh-servers
      alias           SSH Servers
      members         localhost,srv1-campusY
    }

Y, ahora, para asegurar que todo esta bien:

    $ sudo nagios4 -v /etc/nagios4/nagios.cfg && sudo systemctl restart nagios4

Para verificar que esta corriendo bien abre tu pagina web de Nagios:

https://oob-hostX-campusY.p.vtp-us.nsrc.org/nagios4/

Y, apreta a la izquierda de la pantalla “Services” para ver si los hosts “localhost” y “srv1-campusY” estan.

# PARTE III - Definir servicios para todos los PCs

## Determine qué servicios definir para cada nodo

Para empezar, simplemente estamos usando ping para verificar que nuestros servidores y dispositivos de red responden o estan “Arriba”. Hasta ahora solo estamos monitoreando ssh en el servidor en su campus.

Ahora agreguemos monitoreo de servicios para los otros servidores y dispositivos de red:

En este taller en particular tenemos:

- routers: corriendo ssh y ntp
- switches: corriendo ssh y ntp
- pcs: todas las PCs, incluyendo srv1, corren ssh y http y deberían tambien tener snmp.

El NOC del taller está actualmente ejecutando un servicio SNMP que podemos monitorear, si lo desea.

## Verificar que SSH está corriendo en las PCs y los enrutadores

Como acabamos de hacer, tenemos el service ssh configurado, asi solamente necesita agregar mas maquinas en el archivo /etc/nagios4/conf.d/hostgroups.cfg. Como tenemos ahora:

    define hostgroup
      hostgroup_name  ssh-servers
      alias           SSH Servers
      members         localhost,srv1-campusY
    }

Ahora actualice con el resto de los dispositivos del campus, así como también con el enrutador de tránsito.

La entrada debe lucir como sigue:

    define hostgroup {
      hostgroup_name  ssh-servers
      alias           SSH Servers
      members         srv1-campusY, host1-campusY, host2-campusY, host3-campusY, \
                      host4-campusY, host5-campusY, host6-campusY, transit1-nren, \
                      bdr1-campusY, core1-campusY, dist1-b1-campusY, dist1-b2-campusY
    }

NOTA:

Hemos eliminado a “localhost” (nodo local) de la lista anterior. Haremos lo mismo para los “hostgroups” restantes.

La entrada “members” será una línea larga 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í:

Solo incluya entradas que haya definido previamente. Por lo tanto, incluya todos los servidores, enrutadores y conmutadores que haya configurado previamente.

Una vez que haya terminado, ejecute el chequeo de la configuración y reinicie Nagios:

    $ sudo nagios4 -v /etc/nagios4/nagios.cfg && sudo systemctl restart nagios4

… y vea sus cambios en la interfaz web en “Services” en la izquierda de la pantalla.

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

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

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

    # Una Lista de nuestros enrutadores
    define hostgroup {
            hostgroup_name  routers
            alias           Cisco Routers and Switches for CampusY
            members         bdr1-campusY,core1-campusY,transit1-nren
    }

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

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

Si todo está bien, entonces recarga Nagios

    $ sudo systemctl reload nagios4

## Comprobar HTTP en todos los PCs

De manera similar al grupo “ssh-servers”, crearemos un chequeo para HTTP en todos los dispositivos corriendo un servidor web en su campus. Esto incluirá:

Hosts

- host1-campusY.ws.nsrc.org
- host2-campusY.ws.nsrc.org
- host3-campusY.ws.nsrc.org
- host4-campusY.ws.nsrc.org
- host5-campusY.ws.nsrc.org
- host6-campusY.ws.nsrc.org
- srv1-campusY.ws.nsrc.org

Edite el archivo hostgroups.cfg:

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

Y agregue la siguiente entrada:

    # A list of your web servers
    define hostgroup {
            hostgroup_name  http-servers
            alias           HTTP servers
            members         host1-campusY, host2-campusY, host3-campusY, \
                            host4-campusY, host5-campusY, host6-campusY, srv1-campusY
    }

En el archivo services.cfg agrega:

    define service {
            hostgroup_name                  http-servers
            service_description             HTTP
            check_command                   check_http
            use                             generic-service
            max_check_attempts              10
            notification_interval           0 ; set > 0 if you want to be renotified
    }

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

Cuando termine con sus cambios, grabe su archivoy verifique la configuración:

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

Si todo está bien, recarga Nagios:

    $ sudo systemctl reload nagios4

Ahora, diríjase a la interfaz web de Nagios y oprima la opción “Services” en el menú de la izquierda y, después, la opción “Host Groups” y vea que hay en esta pagīna.

Ya está listo para continuar con el próximo grupo de ejercicios.

1. Si vé el error “DISK CRITICAL - /sys/kernel/debug/tracing is not accessible: Permission denied” indica que ha encontrado un minor bug.

   It is safe to ignore this, but if you want to fix it you would edit `/etc/nagios-plugins/config/disk.cfg` and change the `command_line` of the `check_all_disks` command definition like this:

       # 'check_all_disks' command definition
       define command{
               command_name    check_all_disks
               command_line    /usr/lib/nagios/plugins/check_disk -w '$ARG1$' -c '$ARG2$' -e -X tracefs -X cgroup -X tmpfs
               }

   ↩︎