ディスク容量不足のメールアラート

ディスク容量不足のメールアラート

簡単に言うと、ディスク容量が少なくなったときに通知する電子メールアラートを Windows 2003 サーバーからトリガーしようとしています。

これを設定した経験のある人はいますか?

ありがとう。

答え1

この 1 つの項目だけに対してアラートを作成するのではなく、Nagios などの設定を検討してください。そうすれば、ほぼすべての項目を監視し、事前に定義したパラメータから外れたときにアラートを出すことができます。設定に必要な時間は比較的短いですが、手動で監視して確認する必要がなくなるため、十分に報われます。

答え2

いくつかのオプション:

a) 監視エージェント (例: nsclient++) をインストールし、監視システム (例: Nagios) で監視し、ディスク容量が少なくなると警告を発するようにします。

b) 1 分ごとにトリガーされ、適切な 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

答え3

nagios (または opsview のような派生製品) と nsclient++ に +1。スクリプトの知識があれば、必要なものに対して独自のカスタム プラグインを簡単に作成できます。

まだ監視していない場合は、今すぐ開始してください。

答え4

こちらをご覧ください:マイクロソフト KB 324796

私はこれを私たちの環境で使用していますが、うまく機能しています。メッセージを送信するには SMTP サーバーが必要ですが、同じボックスである必要はありません。

私は、メモリ不足のチェック (空きメモリが 100 MB 未満かどうかを 5 分ごとにチェック)、プロセッサ モニター (プロセッサが 95% 以上で動作していないことを 30 秒ごとにチェック)、およびディスク容量不足のチェック (ディスク容量が 20% 未満でないことを 30 分ごとにチェック) を実行しています。これらは追加が非常に簡単で、問題も発生していません。

以下は、CPU 使用率が高い場合に警告するための VBScript ファイルです。必要に応じて、資格情報を含めるようにスクリプトを変更できます。

' 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

関連情報