簡単に言うと、ディスク容量が少なくなったときに通知する電子メールアラートを 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