none
Monitoração de Event Viewer RRS feed

  • Pergunta

  • Pessoal, boa tarde.

     

    Preciso de uma ajuda, alguem sabe como monitorar o event viewer de um servidor para quando ele der uma mensagem de erro ou aviso envie um net send para determinada máquina?

     

    obrigado.

     

    Peron

    segunda-feira, 18 de junho de 2007 15:31

Respostas

  • Veja esses:

    Esse eu achei aqui no forum mesmo:

    Merito do AJGomes

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1567104&SiteID=29

     

    Esse eu achei no script center e no The Portable Script Center

     

    Code Snippet

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colLoggedEvents = objWMIService.ExecQuery _
        ("Select * from Win32_NTLogEvent Where Logfile = 'Application'")

    For Each objEvent in colLoggedEvents
        Wscript.Echo "Category: " & objEvent.Category
        Wscript.Echo "Computer Name: " & objEvent.ComputerName
        Wscript.Echo "Event Code: " & objEvent.EventCode
        Wscript.Echo "Message: " & objEvent.Message
        Wscript.Echo "Record Number: " & objEvent.RecordNumber
        Wscript.Echo "Source Name: " & objEvent.SourceName
        Wscript.Echo "Time Written: " & objEvent.TimeWritten
        Wscript.Echo "Event Type: " & objEvent.Type
        Wscript.Echo "User: " & objEvent.User
    Next

     

    Se vc usar colocar um if Event Code = "XXXX" then

                                              envie um email ou um net send

                                            end if.

     

    Neste post vc encontra o script para envio de email.

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1737102&SiteID=29

    a partir destes scripts você vai conseguir N maneiras de receber alerta.

    Boa sorte.

    Abraço.

    Romeu.

     

     

     

    terça-feira, 19 de junho de 2007 15:33
  • Pessoal....

    Estou passando algo feito e C# que é um pouco melhor.... 

    estou passando o codigo para quem quiser usar....

    Ele analisa por ID e Nome do Evento.... se vc quiser pode mudar....  

    ele envia email....

    Duvidas

    wagnerperon@yahoo.com.br

    using

    System;

    using

    System.Collections.Generic;

    using

    System.ComponentModel;

    using

    System.Data;

    using

    System.Drawing;

    using

    System.Text;

    using

    System.Windows.Forms;

    using

    System.Threading;

    using

    System.Diagnostics;

    using

    System.Web.Mail;

    namespace

    {

    WindowsApplication4public partial class Form1 : Form

    {

    // Wagner Peron

    //public string Evento = "";

    //private static string strLog = "System";

    //private static string origem = "";

    {

    InitializeComponent();

    }

    {

    cmdParar.Enabled =

    }

    {

    log.Start();

    fim =

    cmdParar.Enabled =

    }

    {

    private Thread log = new Thread(new ThreadStart(monitorar));private static DateTime dataHora = DateTime.Now;private static DateTime dataHora2 = DateTime.Now;private static bool fim = false; public Form1()private void Form1_Load(object sender, EventArgs e)false; private void button1_Click(object sender, EventArgs e)false; true; private void cmdParar_Click(object sender, EventArgs e)try

    {

    fim =

    log.Abort();

    button1.Enabled =

    }

    true; true; catch

    {

    }

    }

    {

    {

    even =

    {

    ((entrada.EventID == 7034 ||

    entrada.EventID == 7035 ||

    entrada.EventID == 7036 ||

    entrada.EventID == 6008) && entrada.TimeGenerated > dataHora)

    {

    dataHora = entrada.TimeGenerated;

    public static void monitorar()EventLog even;while (!fim)new EventLog("System", ".");foreach (EventLogEntry entrada in even.Entries)if // coloca no corpo do email

    enviarEmail(

    }

    }

    even =

    {

    " - Nome da Máquina: " + entrada.MachineName + Environment.NewLine +" - Numero do Evento: " + entrada.EventID.ToString() + Environment.NewLine +" - Id da Instancia: " + entrada.InstanceId.ToString() + Environment.NewLine +" - Event Source: " + entrada.Source + Environment.NewLine +" - Usuário: " + entrada.UserName + Environment.NewLine +" - Tipo de Entrada: " + entrada.EntryType + Environment.NewLine +" - Categoria: " + entrada.Category + Environment.NewLine +" - Mensagem do Evento: " + entrada.Message);new EventLog("Application", ".");foreach (EventLogEntry entrada in even.Entries)if ((entrada.EventID == 0) && entrada.EntryType == EventLogEntryType.Error && entrada.TimeGenerated > dataHora2)

    {

    dataHora2 = entrada.TimeGenerated;

    // coloca no corpo do email

    enviarEmail(

    }

    }

    " - Nome da Máquina: " + entrada.MachineName + Environment.NewLine +" - Numero do Evento: " + entrada.EventID.ToString() + Environment.NewLine +" - Id da Instancia: " + entrada.InstanceId.ToString() + Environment.NewLine +" - Event Source: " + entrada.Source + Environment.NewLine +" - Usuário: " + entrada.UserName + Environment.NewLine +" - Tipo de Entrada: " + entrada.EntryType + Environment.NewLine +" - Categoria: " + entrada.Category + Environment.NewLine +" - Mensagem do Evento: " + entrada.Message);//Thread.Sleep(new TimeSpan(0, 5, 0));

    }

    }

    {

    mail.To =

    mail.Cc =

    mail.From =

    mail.Subject =

    mail.Body = problema;

    mail.BodyFormat =

    }

    {

    }

    }

    }

    Thread.Sleep(300000Que);public static void enviarEmail(string problema)MailMessage mail = new MailMessage();"wagner.peron@xxxx.com";"";"wagner.peron@xxxxx.com";"Servidor - Erro no Event Viewer de Produção";MailFormat.Text;SmtpMail.SmtpServer = "Coloque o endereço do servidor exchange";SmtpMail.Send(mail);private void label1_Click(object sender, EventArgs e)


    // wagnerperon@hotmail.com
    • Editado Wagner Peron quinta-feira, 2 de agosto de 2012 20:40
    sexta-feira, 4 de julho de 2008 16:41

Todas as Respostas

  • Veja esses:

    Esse eu achei aqui no forum mesmo:

    Merito do AJGomes

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1567104&SiteID=29

     

    Esse eu achei no script center e no The Portable Script Center

     

    Code Snippet

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colLoggedEvents = objWMIService.ExecQuery _
        ("Select * from Win32_NTLogEvent Where Logfile = 'Application'")

    For Each objEvent in colLoggedEvents
        Wscript.Echo "Category: " & objEvent.Category
        Wscript.Echo "Computer Name: " & objEvent.ComputerName
        Wscript.Echo "Event Code: " & objEvent.EventCode
        Wscript.Echo "Message: " & objEvent.Message
        Wscript.Echo "Record Number: " & objEvent.RecordNumber
        Wscript.Echo "Source Name: " & objEvent.SourceName
        Wscript.Echo "Time Written: " & objEvent.TimeWritten
        Wscript.Echo "Event Type: " & objEvent.Type
        Wscript.Echo "User: " & objEvent.User
    Next

     

    Se vc usar colocar um if Event Code = "XXXX" then

                                              envie um email ou um net send

                                            end if.

     

    Neste post vc encontra o script para envio de email.

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1737102&SiteID=29

    a partir destes scripts você vai conseguir N maneiras de receber alerta.

    Boa sorte.

    Abraço.

    Romeu.

     

     

     

    terça-feira, 19 de junho de 2007 15:33
  • Pessoal....

    Estou passando algo feito e C# que é um pouco melhor.... 

    estou passando o codigo para quem quiser usar....

    Ele analisa por ID e Nome do Evento.... se vc quiser pode mudar....  

    ele envia email....

    Duvidas

    wagnerperon@yahoo.com.br

    using

    System;

    using

    System.Collections.Generic;

    using

    System.ComponentModel;

    using

    System.Data;

    using

    System.Drawing;

    using

    System.Text;

    using

    System.Windows.Forms;

    using

    System.Threading;

    using

    System.Diagnostics;

    using

    System.Web.Mail;

    namespace

    {

    WindowsApplication4public partial class Form1 : Form

    {

    // Wagner Peron

    //public string Evento = "";

    //private static string strLog = "System";

    //private static string origem = "";

    {

    InitializeComponent();

    }

    {

    cmdParar.Enabled =

    }

    {

    log.Start();

    fim =

    cmdParar.Enabled =

    }

    {

    private Thread log = new Thread(new ThreadStart(monitorar));private static DateTime dataHora = DateTime.Now;private static DateTime dataHora2 = DateTime.Now;private static bool fim = false; public Form1()private void Form1_Load(object sender, EventArgs e)false; private void button1_Click(object sender, EventArgs e)false; true; private void cmdParar_Click(object sender, EventArgs e)try

    {

    fim =

    log.Abort();

    button1.Enabled =

    }

    true; true; catch

    {

    }

    }

    {

    {

    even =

    {

    ((entrada.EventID == 7034 ||

    entrada.EventID == 7035 ||

    entrada.EventID == 7036 ||

    entrada.EventID == 6008) && entrada.TimeGenerated > dataHora)

    {

    dataHora = entrada.TimeGenerated;

    public static void monitorar()EventLog even;while (!fim)new EventLog("System", ".");foreach (EventLogEntry entrada in even.Entries)if // coloca no corpo do email

    enviarEmail(

    }

    }

    even =

    {

    " - Nome da Máquina: " + entrada.MachineName + Environment.NewLine +" - Numero do Evento: " + entrada.EventID.ToString() + Environment.NewLine +" - Id da Instancia: " + entrada.InstanceId.ToString() + Environment.NewLine +" - Event Source: " + entrada.Source + Environment.NewLine +" - Usuário: " + entrada.UserName + Environment.NewLine +" - Tipo de Entrada: " + entrada.EntryType + Environment.NewLine +" - Categoria: " + entrada.Category + Environment.NewLine +" - Mensagem do Evento: " + entrada.Message);new EventLog("Application", ".");foreach (EventLogEntry entrada in even.Entries)if ((entrada.EventID == 0) && entrada.EntryType == EventLogEntryType.Error && entrada.TimeGenerated > dataHora2)

    {

    dataHora2 = entrada.TimeGenerated;

    // coloca no corpo do email

    enviarEmail(

    }

    }

    " - Nome da Máquina: " + entrada.MachineName + Environment.NewLine +" - Numero do Evento: " + entrada.EventID.ToString() + Environment.NewLine +" - Id da Instancia: " + entrada.InstanceId.ToString() + Environment.NewLine +" - Event Source: " + entrada.Source + Environment.NewLine +" - Usuário: " + entrada.UserName + Environment.NewLine +" - Tipo de Entrada: " + entrada.EntryType + Environment.NewLine +" - Categoria: " + entrada.Category + Environment.NewLine +" - Mensagem do Evento: " + entrada.Message);//Thread.Sleep(new TimeSpan(0, 5, 0));

    }

    }

    {

    mail.To =

    mail.Cc =

    mail.From =

    mail.Subject =

    mail.Body = problema;

    mail.BodyFormat =

    }

    {

    }

    }

    }

    Thread.Sleep(300000Que);public static void enviarEmail(string problema)MailMessage mail = new MailMessage();"wagner.peron@xxxx.com";"";"wagner.peron@xxxxx.com";"Servidor - Erro no Event Viewer de Produção";MailFormat.Text;SmtpMail.SmtpServer = "Coloque o endereço do servidor exchange";SmtpMail.Send(mail);private void label1_Click(object sender, EventArgs e)


    // wagnerperon@hotmail.com
    • Editado Wagner Peron quinta-feira, 2 de agosto de 2012 20:40
    sexta-feira, 4 de julho de 2008 16:41