매우 간단하게 디스크 공간이 부족할 때 Windows 2003 서버에서 이메일 경고를 보내려고 합니다.
누구든지 이것을 설정한 경험이 있습니까?
감사합니다.
답변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 서버가 필요하지만 동일한 상자일 필요는 없습니다.
메모리 부족(사용 가능한 메모리가 100MB보다 낮은지 확인하기 위해 5분마다 확인), 프로세서 모니터(프로세서가 95% 이상 실행되지 않는지 확인하기 위해 30초마다 확인) 및 디스크 공간 부족(30분마다 확인)을 확인합니다. 해당 디스크 공간은 20% 미만이 아닙니다). 추가하기가 매우 쉽고 아무런 문제도 없었습니다.
다음은 높은 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