Назад | Перейти на главную страницу

Монитор производительности Windows «Интервал выборки» и интервал предупреждения

Я хочу получать уведомление по электронной почте, когда объем доступной памяти падает ниже определенного порога на моем Windows Server 2012

Для этого я использую набор сборщиков данных монитора производительности, определяемый пользователем. Я настроил сборщик данных со счетчиком производительности и критериями предупреждений. Я настроил задачу оповещения (и задача настроена в планировщике задач). Все это работает нормально, и я получаю оповещения по электронной почте.

Мой вопрос касается интервала выборки сборщика данных. Я установил это, скажем, на 60 секунд, потому что я хочу проверять нехватку памяти каждую минуту. НО, я не хочу получать оповещения каждые 60 секунд (лучше каждые 15 минут).

Есть ли способ установить интервал предупреждения, отличный от интервала выборки?

Я бы настроил действие задачи на «Запустить программу» вместо «Отправить электронное письмо». Программа для запуска будет представлять собой сценарий Powershell, который делает следующее: проверяет время последнего отправленного предупреждения, и, если последнее предупреждение было более 15 минут назад, отправляет новое предупреждение, используя Отправить-MailMessage и обновите время последнего предупреждения. Вы можете сохранить время последнего предупреждения во вспомогательном файле рядом со сценарием или где-нибудь еще.

Пример сценария:

$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 server@example.com -To me@example.com -Subject "I'm in too deep!"
    Get-Date -Format u > $timeFile
}

В качестве отступления: вы можете еще больше уменьшить количество электронных писем с предупреждениями от данной системы, используя один сценарий для нескольких триггеров, передав аргументы / флаги в сценарий, чтобы указать источник проблемы. Вам нужно будет отслеживать время последнего предупреждения для каждой проблемы (один из способов сделать это - сохранить пары источник / временная метка в словаре / хеш-таблице и сохранить объект в файл, используя Экспорт-CliXML и загрузите объект с помощью Импорт-CliXML), то вы можете сделать так, чтобы в теле письма содержалась сводка всех текущих проблем, о которых сообщалось таким образом.