很簡單,我試圖從 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