Configuración y customización de EMAIL en NMIS


Introducción

En el siguiente aparatado se explica una de las funciones principales con las que cuenta NMIS, las alertas emitidas por correo electrónico. Primeramente, se describe la matriz de escalación y cómo funciona en NMIS, seguido de dar de alta los contactos que se desean para que reciban las notificaciones. Se detalla cómo realizar la configuración de EMAIL en NMIS de forma básica para que en las notificaciones muestren la información de los eventos. Posteriormente se explica una forma más avanzada de la configuración de EMAIL en NMIS, la cual ya es una forma customizada porque se incorporan nuevos atributos para que muestre información más concreta y detallada de como son los eventos al hacer la notificación por correo. Eso se personaliza de acuerdo a como el cliente lo solicite.

Matriz de escalación

La matriz de escalación le permite especificar varios contactos de usuario para ser notificado en caso de problemas críticos. Puede notificar a las personas adecuadas en el momento adecuado sobre alertas críticas independientemente del horario. La matriz de escalación es específica de zona horaria y está disponible 24x7. Las características clave de la matriz escalada son las siguientes.


  • Los niveles se basan en horarios.
  • El servicio está disponible 24x7.
  • Los horarios son específicos de zona horaria.
  • Ahora puede definir múltiples matrices para un cliente o socio determinado.
  • Una matriz se puede definir en múltiples niveles que van desde el socio y el nivel del cliente a una combinación de sitios, grupos de dispositivos y dispositivos.

¿Cómo funciona en NMIS?

  1. NMIS detecta el evento inicial.
  2. La política de escalación relaciona las propiedades:
    • Grupo
    • Rol
    • Tipo
    • Evento
  1.  Se define a quién se envía el evento:
    • Level 0 > Email Operaciones (5 minutos)
    • Level 2 > Email Jefe Op (30 minutos)
    • Level 3 > Email Gerente Op (1 hora)
  1. El Evento continúa hasta que se soluciona el problema.

Crear política de contactos

Ir a System > System Configuration > Contacts, para incorporar el correo de los contactos a los que se desea mandar las notificaciones de NMIS por correo electrónico.


Periodos de escalación NMIS

Ir a System > System Configuration > NMIS Configuration > Escalation


Se almacena su configuración en Config.nmis. Aquí es donde se encuentran los niveles de escalación. Un nivel de escalación vincula una cantidad de tiempo transcurrido a un nombre. Por ejemplo, por defecto escalate0 ocurre inmediatamente (0 segundos) escalate1 sucede después de 300 segundos, y así sucesivamente, los nombres y las horas son configurables.

Editar la política de escalación

Las acciones de escalamiento se configuran en System -> System configuration -> Escalation. Aquí es donde NMIS va a ver qué sucede cuando se desencadena un evento y cómo se trata a lo largo del tiempo. Para ver la tabla de escalación, entramos en Setup -> Emails, Notifications and Escalations, ahí veremos la tabla de escalación por default de NMIS. Las entradas de la Tabla de Escalación definen los detalles de notificación para un evento: a quién notificar, cómo notificarlos y cuándo debe ocurrir esa notificación.


Configuración de Email

Para acceder a la configuración, desde el menú de acceso System > System Configuration > NMIS Configuration > email.



Se muestra un ejemplo de un correo electrónico valido, que fue configurado para recibir alertas de NMIS, donde el campo mail_password es la contraseña del correo electrónico.



Tabla de referencia para la configuración de servicios de email:


Configuración

Descripción

Servidor común SMTP

GMail SMTP Server

Office 365 SMTP Server

mail_combine

Combinar correos para cada destino

true



mail_from

Dirección de correo electrónico que desea utilizar para las notificaciones de NMIS

nmis@domain.com

nmis@domain.com

nmis@domain.com

mail_server

Correo FQDN o la dirección IP

yourmailserver.domain.com

smtp.gmail.com

smtp.office365.com

mail_server_ipproto

Usar IPv4 o IPv6 para conectarnos (sólo IPv6

Funciona si tienes una conectividad IPv6 de extremo a extremo)

ipv4

ipv4

ipv4

mail_server_port

El puerto TCP que se utilizará para la conexión

25

587

587

mail_use_tls

Utilizar el protocolo TLS

false

true

true

mail_use_sasl

Utilizar el protocolo SALS

false

false

false

mail_user

El nombre de usuario para iniciar sesión, dejar en blanco para no hacer nada


youruser@gmail.com

youruser@office365.com

mail_password

La contraseña para iniciar sesión, dejar en blanco para no hacer nada


yourpassword

yourpassword

mail_domain

Dominio a utilizar para SMTP

domain.com

gmail.com

office365

Prueba de conexión del servidor de correo electrónico

Una vez que haya configurado su servidor de correo electrónico, es mejor probarlo, inicie sesión en su servidor NMIS y ejecute el comando /usr/local/nmis8/admin/testemail.pl, esto enviará un correo electrónico al contacto configurado como contacto1. Si tiene un problema, puede ejecutar /usr/local/nmis8/admin/testemail.pl debug = true que proporcionará un resultado muy detallado para el problema.



Para NMIS9 la ruta es la siguiente /usr/local/nmis9/admin ejecuta ./tests.pl act=email 



Si tiene problemas con el correo electrónico en su bandeja de entrada, active el acceso para las aplicaciones menos seguras, en el enlace  https://myaccount.google.com/lesssecureapps


Resultados de la configuración de EMAIL.

Se muestra un correo electrónico de ejemplo, mostrando cómo está recibiendo las notificaciones de NMIS en su bandeja de entrada.



En la GUI de NMIS se observa que el nodo import_test10 está en estado down, por lo que esa alerta fue emitida al correo electrónico que se configuro para recibir las notificaciones de NMIS.



Al dirigirse al correo electrónico se puede ver que la alerta de NMIS se recibió correctamente, donde se pueden ver algunos detalles del evento. (esos detalles pueden ser customizados, pero en este ejemplo solo se muestra la configuración por defecto de NMIS).


Customización de EMAIL

Validación de Contactos

Es necesario tener contactos registrados para realizar las pruebas y así poder ver reflejados el contenido de los campos que se requieren mostrar en el contenido del correo. Para agregar o editar los contactos es necesario ir al siguiente apartado que se muestra en la siguiente imagen.


En la ventana que se mostrará se pueden agregar contactos, lo cual tenemos que dar clic en add correspondientes



Una vez agregado los contactos se espera ver la tabla con datos de las personas que se desea notificar.


Validación de Matriz de Notificaciones

La matriz de notificaciones se tiene que tener configurada con el tipo de eventos y ligado con los nodos o grupos de nodos, además de determinar el nivel de alerta, para realizar dicha configuración se tiene que acceder en el apartado que se muestra en la siguiente imagen.


Al dar clic en Email, Notifications and Escalations nos mostrara la siguiente ventana.



Para realizar el llenado de esta matriz en necesario determinar el evento que se quiere alertar de que equipos, a que personas se desea notificar de los eventos y el tiempo que ha durado la aleta o el evento, para esto se tiene que dar clic en Add para agregar una regla de eventos proporcionar los datos que corresponden.

Ejemplo: se genera una regla de alertamiento en la que se indica el grupo del nodo que se desea alertar, el Rol al que pertenece dicho grupo de nodos, el tipo de nodo en este caso se alertaran los Routers, el evento de esta notificación será emitida cuando detecte que un router no responde a la petición de SNMP, por lo tanto emitirá la alerta al instante, si el SNMP continua sin responder a los 5 minutos emitirá otra alerta notificando a los contactos que se muestran en los niveles correspondientes.

Edición del archivo nmis.pl para la customización

Respaldo del archivo nmis.pl

El archivo que se modificara es nmis.pl que se encuentra en la ruta /usr/local/nmis8/bin primero creamos un respaldo del archivo antes de empezar a modificar, mediante el siguiente comando cp nmis.pl nmis_BKP_13Jun.pl



Abrir el archivo nmis.pl con un editor de su preferencia, en este caso lo que se realizo fue descargar el archivo del servidor para así poder manipularlo fácilmente.

Modificar el texto titular del correo electrónico al recibir una alerta.

Buscar el texto NMIS Escalation en el archivo, por lo que nos arrojara 2 resultados:

Nota: en ambas ediciones se agregará, donde "OPMANTEK Alerta de Monitoreo en la red de despacho" es es texto que se desea incorporar para el asunto del correo.

OPMANTEK Alerta de Monitoreo en la red de despacho:

Resultado 1

Hace referencia a los correos emitidos cuando un nodo se normaliza (NODE UP).


Resultado 2

Hace referencia cuando un nodo tiene problemas, se degrada o se cae (NODE DOWN).



En ambos resultados remplazaremos el texto por el mensaje que deseamos mostrar en asunto del correo que enviara la herramienta, en este caso quedo de la siguiente manera.

Resultado 1


Resultado 2


Con esto ya hemos cambiado el asunto del Email de NMIS.

Incorporación de atributos

Agregaremos los atributos en el contenido del correo, se agregará el grupo al que pertenece el nodo, el rol al que está integrado (En este ejemplo los roles se reconocen como repetidor o ramal), la IP del nodo y un apartado para mostrar los correos y teléfonos de las personas que fueron notificadas.

Agregamos una variable para poder relacionar los contactos a quienes le llega la notificación, este dato se agrega en el siguiente segmento de código, podemos realizar una búsqueda del texto: @x = split /:/ , lc $field; el cual tomaremos de referencia y así poder agregar la variable tal cual se muestra en la imagen.

# ABR ===

my $contactData = "\nNotificados: \n";


Nota:
solo se agregará el siguiente código.


Posteriormente agregamos el siguiente segmento de código $contactData .= sprintf("%-40s \tMobile: %-25s \tPhone: %-25s\n", $CT->{$contact}{Email}, $CT->{$contact}{Mobile}, $CT->{$contact}{Phone}); este código hace referencia a la estructura que tendrá el listado de los contactos a quienes se notificó así como también mostrará el correo, phone y mobile de la persona, para agregarlo tomaremos como referencia if ( exists $CT->{$contact} ) lo cual se encuentra aproximadamente en la línea 7591, de tal manera que se vea igual que la imagen.



Por último, agregamos el siguiente segmento de código lo cual hace posible mostrar el grupo, rol, IP y los contactos notificados, el código se tiene que incorporar antes de mensaje con el salto de línea ($message .= "\n";), se encuentra en la línea 7699, una vez agregado guardamos cambios, el código debe estar tal cual se muestra en la imagen.


Nota: el código a agregar es el siguiente.

# ABR ===

$message .= "Grupo:\t" . uc($NI->{system}{group}) . "\n";

$message .= "Repetidor/Ramal:\t" . uc($NI->{system}{roleType}) . "\n";

$message .= "IP del Nodo:\t" . $NI->{system}{host} . "\n";

$message .= $contactData;


Verificación de sintaxis y reinicio del servicio de nmis

Guardar y subir el archivo al servidor en la ruta /usr/local/nmis8/bin ,tener en cuenta que el archivo tenga los permisos correspondientes esto para evitar errores en el sistema de monitoreo. Para comprobar que la sintaxis este correcta ejecutamos el comando perl -c nmis.pl si es correcto mostrará el siguiente mensaje:

[root@opmantek bin]# perl -c nmis.pl

nmis.pl syntax OK

[root@opmantek bin]#

De lo contrario se tendrá que revisar minuciosamente el código incorporado, para culminar con la edición es necesario reiniciar el servicio de nmisd esto con la finalidad de validar los cambios y poder verlos reflejados, con esto obtendremos los cambios antes vistos.


[root@opmantek ~]# service nmisd restart

Restarting nmisd daemon nmisd                              [  OK  ]

[root@opmantek ~]#


Resultados de la customización

Con la finalidad de incorporar más valores al contenido de los correos que emite NMIS, se muestra un correo antes de la modificación.



El resultado obtenido después de la modificación es el siguiente



Como se puede visualizar se ha modificado el Asunto del correo, además de la incorporación de nuevos elementos, lo primero que realizó fue modificar el Asunto y después el cuerpo del correo.

Anexo

https://docs.community.firstwave.com/wiki/display/NMIS/Configuring+Email+Server+for+NMIS+Notifications+including+Gmail+server

https://docs.community.firstwave.com/wiki/display/opEvents/Event+Actions+and+Escalation

https://docs.community.firstwave.com/wiki/display/NMIS/NMIS8+Escalations

https://docs.community.firstwave.com/wiki/display/NMIS/Manage+Current+Events+-+acknowledge+events+to+stop+escalation+and+notification