Visitantes

Script para monitoramento de Eventos em Servidores Windows




Script para monitoramento de Eventos em Servidores Windows

A ideia desse script é verificar nos Logs do Servidor a ocorrência de um evento especifico e caso tenha ocorrido ele enviará um e-mail informando, podemos também incluir a execução de algumas ações no script.

Campos que podem ser pesquisados:
$_.EntryType | $_.Message | $_.Source |$_.Time | $_.Index |$_.InstanceID
---------------------------------------------------------------------------------------------

O Comando abaixo executa um Seach nos logs do servidor verificando se ocorreu o evento no dia atual utilizando o parâmetro “(Get-Date).AddDays(-1)” (Esse parâmetro pode ser incrementado para pegar de outros dias);

Nesse caso estamos filtrando por uma parte da Mensagem e também pelo Source do evento,podemos também fazer outras pesquisas usando os campos citados acima ;

Inicio do SCRIPT - Copie e cole em um arquivo e o Salve como .ps1

#-----------------------------------------------------------------------------------------------------------

$Result=Get-EventLog application -After (Get-Date).AddDays(-1) | where { $_.Message -match "Processing completed*" -and $_.Source -match "XXXXX Service"} # "XXXX Service" = Nome do Serviço

# Faz uma contagem de quantos eventos foram encontrados com a busca
$result=$result.count

Se o resultado acima for 0 ou “ ” então será enviada a mensagem de que está tudo bem, caso contrario enviará a MSG que houve problema ou podemos aqui se necessario executar algum script ou comando.

If ($result -gt 0)
  {

   $emailbody = 'Verificação XXXXX -  Executada com sucesso!'

  }

Else
  { 

  $emailbody = 'ATENCAO!!! Verifique o sistema XXXXX no Servidor XXXXXXXX!!'

  }


###################### Envio de email #######################

    $SMTPserver = "seu.sevidordeSMTP"
    $from = "suporte@dominio"
    $to = "suporte@dominio"
    $subject = "Monitoramento do Serviço XXX "
    $mailer = new-object Net.Mail.SMTPclient($SMTPserver)
    $msg = new-object Net.Mail.MailMessage($from, $to, $subject, $emailbody)
    $mailer.send($msg)
#-----------------------------------------------------------------------------------------------------------


########################################################
# Operadores  
########################################################
#-eq  -> equals
#
#-ne  -> not equal
#
#-gt  -> greater than
#
#-ge  -> greater than or equal to
#
#-lt  -> less than
#
#-le  -> less than or equal to
#
#-like -> wildcard comparison
#
#-notlike -> wildcard comparison
#
#-match  -> regular expression comparison
#
#-notmatch -> regular expression comparison
########################################################
#     EVENTS
########################################################
#Application
#Security
#setup


#System

Espero ter ajudado e até a próxima....Qualquer duvida é só perguntar que tentarei ajudar.
Reações:

0 comentários:

Postar um comentário