磁碟空間不足電子郵件警報

磁碟空間不足電子郵件警報

很簡單,我試圖從 Windows 2003 伺服器觸發電子郵件警報,告訴我磁碟空間何時不足。

有人有過這樣設定的經驗嗎?

謝謝。

答案1

您應該考慮設定 Nagios 或類似的項目,而不是只為此建立警報。然後,您可以讓它監控您喜歡的任何內容,並在某些內容超出您的預定義參數時向您發出警報。設定它所需的相對較少的時間將讓您不必手動監視和檢查事物,這將是值得的。

答案2

幾個選項:

a) 安裝監控代理程式(例如 nsclient++)並讓監控系統(例如 Nagios)對其進行監控並在磁碟空間不足時向您發出警報;

b) 建立每分鐘觸發一次的排程任務,讀取適當的 WMI 計數器(例如 \\LogicalDisk(C:)\\Free MB) 並使用 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

答案3

對於 nagios (或像 opsview 這樣的衍生品)和 nsclient++ +1。如果您了解腳本編寫,您可以輕鬆地為您可能需要的任何內容編寫自己的自訂插件。

如果您還沒有監控,請立即開始!

答案4

看這裡:微軟知識庫 324796

我在我們的環境中使用了它並且效果很好。您確實需要 SMTP 伺服器來傳送郵件,但不必是同一個郵件信箱。

我會檢查記憶體不足(每5 分鐘檢查一次,看看可用記憶體是否低於100 MB)、處理器監視器(每30 秒檢查一次,以確保處理器運行速度不超過95%)和磁碟空間不足(每30 分鐘檢查一次)磁碟空間不低於 20%)。它們非常容易添加,而且我沒有遇到任何問題。

這是我的 VBScript 文件,用於發出有關 CPU 使用率過高的警報。如有必要,您可以修改腳本以包含憑證:

' Get command line parameters
Dim ArgObj
Set ArgObj = WScript.Arguments 
Dim strFrom, strTo, strSubject, strBody, strIPAddress
strFrom = "SERVERNA<E <[email protected]>"
strTo = "RECIPIENT <[email protected]>"
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

相關內容