Eventos

CNM puede recibir notificaciones por diferentes medios (traps snmp, syslog, o email) que almacena en BBDD. La revisión periódica de esta información proporciona datos importantes sobre el comportamiento y el estado de los equipos monitorizados.

A partir de dichos eventos, el usuario puede definir sus propias alertas remotas

Vamos a centrarnos en los eventos producidos por traps SNMP o por email. Los eventos de tipo syslog se detallan en el apartado de monitorización de logs.

RECEPCIÓN DE TRAPS SNMP

CNM incluye el servidor snmptrapd que permite recibir traps SNMP. Para ello basta con enviar desde un equipo remoto dicho trap a la IP del CNM por el puerto estándar (162/udp).

Un ejemplo de envío de trap en V1 sería:

snmptrap  -c public  -v 1 CNM_IP  TRAP-TEST-MIB::demotraps localhost 6 17 '' SNMPv2-MIB::sysLocation.0 s "TRAP V1"

Un ejemplo de envío de trap en V2 sería:

snmptrap -v 2c -c public CNM_IP '' NOTIFICATION-TEST-MIB::demo-notif SNMPv2-MIB::sysLocation.0 s "TRAP V2"

RECEPCIÓN DE EVENTOS POR EMAIL

CNM incluye una MTA interna basada en exim para recibir correos por SMTP que no está configurada para enrutar correo hacia otras MTAs.

Para que un correo recibido se convierta en un evento debe cumplir lo siguiente:

    • El orígen del correo (From) debe ser una dirección cuyo dominio se resuelva por DNS y el nombre de usuario se interpreta como el nombre del equipo al que se asigna el evento. De este modo un orígen como: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. genera un evento asociado al equipo router-wan si es un equipo ya definido en CNM. Esto obliga a que el equipo esté dado de alta en CNM con un nombre sin espacios.
    • El destino del correo (To) debe ser Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo..

 

El evento procesa el asunto (v1) y el cuerpo del mensaje (v2). No se procesan los adjuntos por lo que no se recomienda su utilización.

Una forma sencilla de validar la recepción de correos como eventos desde un equipo con Windows es mediante el script que se adjunta. Basta pasar como parámetro la IP del CNM que actúa como servidor SMTP y el nombre del host al que se quiere asociar el evento. Hay que ejecutarlo desde la ventana de comandos de un equipo con Windows XP o superior.

D:\DEVEL\scripts>cscript send_mail.vbs

 

Microsoft (R) Windows Script Host versión 5.8 Copyright (C) Microsoft Corporation 1996-2006. Reservados todos los derechos.

 

Uso: cscript send_mail.vbs ip_smtp_server source_host

 

D:\DEVEL\scripts>cscript send_mail.vbs 192.168.1.1 router-wan

 

Microsoft (R) Windows Script Host versión 5.8 Copyright (C) Microsoft Corporation 1996-2006. Reservados todos los derechos.

 

D:\DEVEL\scripts>

Si no aparece ningún error, debe aparecer una entrada en la tabla de eventos con los datos del correo recibido. El script se puede descargar aquí y su código es:

Dim objMail

If Wscript.Arguments.Count < 2 Then
Wscript.Echo "Uso: cscript send_mail.vbs ip_smtp_server source_host"
Wscript.Quit smtpserver="localhost"
Else
smtpserver=Wscript.Arguments(0)
host=Wscript.Arguments(1)

End If

Set objMail = CreateObject("CDO.Message")
objMail.From = "Source Host <"+host+"@domain.com>"
objMail.To = "CNM-MailEvents < Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>"
objMail.Subject = "Correo de Test"
objMail.Textbody = "Correo para validar la recepcion de eventos por mail de CNM"
'objMail.AddAttachment "C:\el_fichero_con_el_adjunto.ext"

' Use an SMTP server 
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
' Name or IP of Remote SMTP Server 
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver
' Server port (typically 25) 
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'Your UserID on the SMTP server 
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "yourusername"
'Your password on the SMTP server 
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpwd"

objMail.Configuration.Fields.Update
objMail.Send

Set objMail=Nothing
Wscript.Quit