Я хочу получать уведомление по электронной почте, когда объем доступной памяти падает ниже определенного порога на моем 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), то вы можете сделать так, чтобы в теле письма содержалась сводка всех текущих проблем, о которых сообщалось таким образом.