## Metas

- Aprende a configurar Nagios para subir tickets en RT

## Notas:

- Los comandos precedidos por el signo de pesos “$”, deben ser ejecutados como un usuario general - y no como superusuario (root).
- Los comandos precedidos por el signo de número “#”, deben ser ejecutados por el superusuario (root).
- Si la línea de comandos termina con una barra invertida “", quiere decir que el comando continua en la próxima línea y todas líneas deben ser tratadas como un comando de sola línea.

## Ejercicios:

Para configurar RT y Nagios de manera que las alarmas de Nagios automáticamente creen tickets (incidencias) en RT, es necesario seguir los siguientes pasos:

- Crear un contacto en Nagios /etc/nagios4/objects/contacts.cfg
- Actualizar /etc/nagios4/conf.d/services.cfg o la de un nodo en particular para usar el nuevo grupo de contactos.

Los siguientes dos pasos ya deberían estar hechos si ha terminado los ejercicios de RT.

- Instalar el programa rt-mailgate y configurarlo apropiadamente en su archivo /erc/aliases para que su programa de correo lo pueda usar.
- Configurar las colas (queues) en RT de manera correspondiente para recibir e-mails que lleguen de Nagios a través de rt-mailgate.
- Ingrese en su máquina virtual con ssh, como usuario sysadm

# Configurar el contacto en Nagios

Inicie sesión en su máquina virtual (hostX-campusY) como el usuario “sysadm”.

Conviértase en root:

    $ sudo -s

Edite el archivo de contactos /etc/nagios4/objects/contacts.cfg

    # editor /etc/nagios4/objects/contacts.cfg

En este archivo vamos a añadir un contacto NUEVO que va debajo el contacto por nagiosadmin.

ATENCIÓN: No elmine el contacto de nagiosadmin!

El nuevo contacto debería verse similar a (DEBAJO DEL CONTACTO nagiosadmin):

    define contact {
            contact_name                    net
            alias                           RT Alert Queue
            service_notification_period     24x7
            host_notification_period        24x7
            service_notification_options    c
            host_notification_options       d
            service_notification_commands   notify-service-by-email
            host_notification_commands      notify-host-by-email
            email                           net@srv1-campusY.ws.nsrc.org
    }

Asegúrese de reemplazar “campusY” con el número de su grupo. Entonces, si está en el grupo 1, entonces usaría “net@srv1-campus1.ws.nsrc.org”.

Ahora, al final del archivo, agregue también: (Nota: No borre o edite ninguna otra definición existente.)

** HAGA ESTO AL FINAL DEL ARCHIVO **

    define contactgroup {
            contactgroup_name       tickets
            alias                   email to ticket system for RT
            members                 net
    }

Grabe y salga del archivo.

## Notas

- La opción “c” de service_notification significa que sólo se ha de enviar una alarma cuando el servicio esté en estado “crítico” en Nagios (ej. down). La opción “d” significa “down”. Si se seleccionan sólo “c” y “d”, no se enviarán alarmas para otros estados.
- Fíjese en la dirección de correo usada “net@srv1-campusY.ws.nsrc.org” - esto es importante ya que esta cuenta se definió anteriormente en los ejercicios de RT.

# Elija un servicio a monitorear que pueda crear tickets en RT

Para que se generen tickets en RT si se cae el servicio SSH en una máquina, debemos editar el chequeo de servicio de SSH:

    # editor /etc/nagios4/conf.d/services.cfg

Busque el servicio con el hostgroup_name de “ssh-servers” y agregue la línea “contact_groups”. Cuando termine de editar la definición del servicio, será algo como lo siguiente. Y, cambia “max_check_attempts” de numero “10” a “4”:

    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              4
            notification_interval           0 ; set > 0 if you want to be renotified
            contact_groups                  tickets,admins
    }

Cambiamos max_check_attempts a “4” para que Nagios manda un correo a RT mucho mas rapido. Si dejamos max_check_attempts en “10” el proceso es mas lento.

Grabe el archivo y salga del editor.

## Notas

- Fíjese en el elemento adicional que tenemos ahora, “contact_groups”. Usted Podría hacer esto con otras definiciones si así lo desea.
- También notará que incluimos el grupo de contacto por defecto “admins”. Usted Podría no incluirlo si quiere.

# Incluir noc como miembros de ssh-server

    # editor /etc/nagios4/conf.d/hostgroups.cfg

Encuentre el grupo con el nombre de grupo de host de “ssh-servers” y el noc en la entrada “miembros” al final de la definición. Cuando termines, tu definición debería verse así

    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, \
                      noc
    }

Ahora guarde y salga del archivo.

Para crear una “entrada NOC, agregue esto al archivo pcs.cfg al final del archivo:

    define host {
        use         linux-server
        host_name   noc
        alias       Main NOC server for NMM Workshop
        address     noc.ws.nsrc.org
    }

Guarde y salga del archivo.

Ahora verifique que su configuración de Nagios se vea bien:

    #  nagios4 -v /etc/nagios4/nagios.cfg

Si no hay errores, reinicie su instancia de nagios:

    # systemctl restart nagios4

# Servicio SSH bajando en NOC o otro servidor (EXTRA)

En general los profesores hacen todo esto. Pero puede trabajar en grupo con los servidores en su campus y cambios a los servidores de ssh para generar tickets en RT.

En este momento esta monitoreando el noc.ws.nsrc.org por el servicio de ssh. Puede pedir a un profesor que bajen el servicio. Tambien, en cualquier otro servidor puede hacer lo siguiente si quiere:

O, en cualquier servidor que esta bajo monitoreo de su servicio de nagios, por ejemplo el host1-campusY hace lo siguiente:

    $ ssh sysadm@hostX-campusY.ws.nsrc.org
    $ sudo vi /etc/ssh/sshd_config

Cambia la linea:

    #Port 22

así:

    #Port 22
    Port 2222

Y, ahora, reinicie el servidor ssh:

    $ sudo systemctl restart ssh

Ahora si sales del servidor puede re-entra a traves ssh haciendo:

    $ ssh -p 2222 sysadm@hostX-campus.Y.ws.nsrc.org

y, puede removar la linea:

    Port 2222

del archivo /etc/ssh/sshd_config y hacer:

    $ sudo systemctl restart ssh

Si esta usando el interfaz de web del taller es posible reconectar con hostX-campusY usando la selección de “Consola” al servidor corriendo ssh en puerto 2222 en vez de 22.

# Ver los tickets de nagios en RT

- Nagios tardará un rato (hasta 5 minutos) para reportar que el servicio SSH está crítico. Luego ha de esperar un total de 4 chequeos para que el servicio se considere como “down hard”. En este momento, Nagios enviará una notificación al e-mail net@srv1-campusY.ws.nsrc.org y se creará un ticket en RT.
- Recuerde ir a http://oob-srv1-campus6.p.vtp-us.nsrc.org/rt/ y entrar como “sysadm-campusY”. El nuevo ticket debería aparecer en la lista “10 newest unowned tickets” de la página principal de RT.