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

Уведомление о нехватке места на диске по электронной почте

Очень просто: я пытаюсь вызвать уведомление по электронной почте от сервера Windows 2003, чтобы сообщить мне, когда на диске мало места.

У кого-нибудь был опыт настройки этого?

Спасибо.

Вместо того, чтобы создавать предупреждение только для этого одного элемента, вам следует подумать о настройке Nagios или аналогичного. Затем вы можете заставить его отслеживать все, что вам нравится, и предупреждать вас, когда что-то выходит за рамки ваших предопределенных параметров. Относительно небольшое количество времени, необходимое для его настройки, с лихвой окупится, освободив вас от необходимости вручную контролировать и проверять вещи.

Пара вариантов:

a) Установите агент мониторинга (например, nsclient ++) и пусть система мониторинга (например, Nagios) будет отслеживать его и предупреждать вас, когда на диске мало места;

б) Создайте запланированную задачу, которая запускается каждую минуту, считывает соответствующий счетчик WMI (например, \\ LogicalDisk (C:) \\ Free Megabytes) и отправляет почту, используя объект CDO.Message WScript (пример здесь: http://blogs.technet.com/heyscriptingguy/archive/2004/11/29/how-can-i-attach-a-file-to-an-email-sent-using-cdo.aspx)

+1 для nagios (или производных вроде opsview) и nsclient ++. Если вы знаете, как писать сценарии, вы легко можете написать свои собственные плагины для всего, что вам может понадобиться.

Если вы еще не ведете мониторинг, начните делать это сейчас!

Посмотреть здесь: Microsoft KB 324796

Я использую это в нашей среде, и он отлично работает. Для отправки сообщения вам нужен SMTP-сервер, но это не обязательно должно быть то же поле.

Я проверяю нехватку памяти (проверяет каждые 5 минут, чтобы убедиться, что объем свободной памяти меньше 100 МБ), монитор процессора (проверяет каждые 30 секунд, чтобы убедиться, что процессор не загружен более 95%) и мало места на диске (проверяет каждые 30 минут что дисковое пространство не ниже 20%). Их очень легко добавить, и у меня не было проблем.

Вот файл VBScript, который у меня есть для предупреждения о высокой загрузке процессора. При необходимости вы можете изменить сценарий, включив в него учетные данные:

' Get command line parameters
Dim ArgObj
Set ArgObj = WScript.Arguments 
Dim strFrom, strTo, strSubject, strBody, strIPAddress
strFrom = "SERVERNA<E <mail@companyemail.com>"
strTo = "RECIPIENT <person@companyemail.com>"
strSubject = "Automated CPU Alert from SERVERNAME"
strIPAddress = "IPADDRESS"

' get the body from the command line
If ArgObj.Count > 0 Then
strBody = ArgObj( 0 )

' if the subject is specified as an argument then add it
If ArgObj.Count > 1 Then
strSubject = ArgObj( 1 )
End If
Else
strBody = "Default alert message body" 
End if

Call SendEmail( strFrom, strTo, strSubject, strBody )

' release memory
Set ArgObj = Nothing

' Sub-routing to send an e-mail using the CDO component
Sub SendEmail(sFromEmail, sToEmail, sSubject, sText )

Dim objMail
Set objMail = CreateObject( "CDO.Message" )
objMail.From = sFromEmail
objMail.To = sToEmail
objMail.Subject = sSubject

' Send using an SMTP server
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ) = 2

' Name or IP of remote SMTP server
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ) = strIPAddress

' Server port
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ) = 25 

objMail.Configuration.Fields.Update
objMail.TextBody = sText
objMail.Send

Set objMail = nothing

End Sub