Monitor de Desempenho do Windows “Intervalo de Amostra” vs. Intervalo de Alerta

1

Desejo receber um alerta por e-mail sempre que a memória disponível ficar abaixo de um determinado limite no meu Windows Server 2012

Para fazer isso, estou usando um Conjunto de Coletores de Dados do Monitor de Desempenho Definido pelo Usuário. Eu configurei um Data Collector com um contador de desempenho e critérios de alerta. Eu configurei a Tarefa de Alerta (e a tarefa está configurada no Agendador de Tarefas). Tudo isso funciona bem, e estou recebendo os alertas por e-mail.

Minha pergunta é sobre o intervalo de amostra do Data Collector. Eu configurei isso em, digamos, 60 segundos, porque eu quero verificar a falta de memória a cada minuto. MAS, eu não quero um alerta a cada 60 segundos (eu prefiro ter um a cada 15 minutos.)

Existe alguma maneira de ter um intervalo de alerta diferente do intervalo de amostragem?

    
por Mark Roy 17.08.2015 / 18:10

1 resposta

1

Eu configuraria a ação da tarefa para "Iniciar um programa" em vez de "Enviar um e-mail". O programa para iniciar seria um script Powershell que faz isso: verifique a hora do último alerta enviado, e se o último alerta foi há mais de 15 minutos, envie um novo alerta usando Send-MailMessage e atualize o último horário de alerta. Você pode armazenar o último horário de alerta em um arquivo auxiliar próximo ao script ou em outro lugar.

Exemplo de script:

$timeFile = "[PATH TO TIME FILE]"
$needNewAlert = true

if (Test-Path $timeFile -PathType Leaf) {
    $starttime = [datetime](Get-Content $timeFile)
    $timespan = New-TimeSpan -Start $starttime -End (Get-Date -Format u)
    if ($timespan.TotalMinutes -lt 15.0) {
        $needNewAlert = false
    }
}

if ($needNewAlert) {
    Send-MailMessage -From [email protected] -To [email protected] -Subject "I'm in too deep!"
    Get-Date -Format u > $timeFile
}

Como um aparte: você pode reduzir ainda mais o número de e-mails de alerta de um determinado sistema usando um script para vários acionadores passando argumentos / sinalizadores para o script para indicar a origem do problema. Você terá que acompanhar o último tempo de alerta em uma base por problema (uma maneira de fazer isso é manter os pares de origem / carimbo de data / hora em uma tabela de dicionário / hash e salvar o objeto em um arquivo usando Export-CliXML e carregue o objeto com Import-CliXML ), então você pode ter o corpo do e-mail como um resumo de todos os problemas atuais relatados desta maneira.

    
por 17.08.2015 / 18:26