단계별 : Windows Server 2016을 사용하여 이벤트 세부 정보가 포함 된 Windows 이벤트에서 전자 메일 경고를 트리거하는 방법
소개
Windows 이벤트에서 전자 메일 경고 트리거 Windows Server 2010을 사용하면 2016 단계 만 수행하면됩니다. 해당 작업이 트리거 될 때 발생할 작업을 지정하십시오. Microsoft는 "전자 메일 보내기"옵션을 사용하지 않기로 결정 했으므로 프로그램을 시작하기 만하면됩니다. 이 경우 이벤트 로그 정보를 수집하고 구문 분석하는 Powershell 스크립트입니다. 이렇게하면 중요한 로그 이벤트 세부 정보가 포함 된 이메일을 보낼 수 있습니다. 이 작업은 Windows Server 2016에서 확인되었습니다. 그러나 Windows Server 2012 R2 및 Windows Server 2019에서도 작동해야합니다. 다른 플랫폼에서 작동하게하는 경우 의견을 보내주십시오. 변경해야하는 경우 저희에게 알려주십시오.
1 단계 – Powershell 스크립트 작성
가장 먼저 할 일은 Powershell 스크립트를 작성하여 실행할 때 전자 메일을 보낼 수있게하는 것입니다. 이것을 연구하는 동안이 작업을 수행하는 여러 가지 방법을 발견 했으므로 내가 보여줄 내용은 단지 한 가지 방법 일 뿐이지 만 환경에 맞는 것을 실험하고 자유롭게 사용할 수 있습니다. 내 실험실에서는 자체 SMTP 서버를 실행하지 않으므로 Gmail 계정을 활용할 수있는 스크립트를 작성해야했습니다. 내 Powershell 스크립트에서 SMTP 서버에 인증하는 전자 메일 계정의 암호가 일반 텍스트임을 알 수 있습니다. 다른 사람이 스크립트에 액세스하여 암호를 알아 내지 못하도록 염려되는 경우 자격 증명을 암호화하십시오. Gmail과 SSL 연결이 필요합니다. 비밀번호는 다른 이메일 클라이언트와 마찬가지로 전선에서 안전해야합니다. 나는 Powershell 스크립트 예제를 가지고있다. 작업 스케줄러와 함께 사용하면 지정된 이벤트가 Windows 이벤트 로그에 기록 될 때 자동으로 전자 메일 경고를 보냅니다. 제 환경에서는이 스크립트를 C : Alerts DataKeeper.ps1에 저장했습니다.
$ EventId = 16,20,23,150,219,220
$ A = Get-WinEvent -MaxEvents 1 -FilterHashTable @ {Logname = "System"; ID = $ EventId}
$ Message = $ A.Message
$ EventID = $ A.Id
$ MachineName = $ A.MachineName
$ Source = $ A.ProviderName
$ EmailFrom = "sios@medfordband.com"
$ EmailTo = "sios@medfordband.com"
$ Subject = "Alert from $ MachineName"
$ Body` "EventID : $ EventID`nSource : $ 소스`nMachineName : $ MachineName`nMessage : $ Message"
$ SMTPServer = "smtp.gmail.com"
$ SMTPClient = 새 개체 Net.Mail.SmtpClient ($ SmtpServer, 587)
$ SMTPClient.EnableSsl = $ true
$ SMTPClient.Credentials = New-Object System.Net.NetworkCredential
( "sios@medfordband.com", "mySMTPP @ 55w0rd");
$ SMTPClient.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)
Powershell 스크립트에서 생성 된 전자 메일의 예는 다음과 같습니다.
이 Powershell 스크립트는 Get-WinEvent cmdlet을 사용하여 지정된 LogName, Source 및 eventID에 따라 최신 이벤트 로그 항목을 가져 오는 것을 확인했습니다. 그런 다음 이벤트를 구문 분석하고 전자 메일을 작성하는 데 사용할 변수에 EventID, Source, MachineName 및 Message를 할당합니다. 지정한 LogName, Source 및 eventID가 2 단계에서 예약 된 작업을 설정할 때 지정하는 것과 동일하다는 것을 알 수 있습니다.
2 단계 – 예약 된 작업 설정
작업 스케줄러에서 다음 그림과 같이 작업을 만듭니다.
- 작업 만들기
사용자가 로그온했는지 여부에 관계없이 작업이 실행되도록 설정되어 있는지 확인하십시오. 
- 트리거 탭에서 새로 만들기를 선택하여 "이벤트 발생"작업을 시작할 트리거를 만듭니다. 필자의 예에서는 DataKeeper (extmirr)가 중요한 이벤트를 시스템 로그에 기록 할 때마다 트리거하는 이벤트를 생성합니다.
아래 그림과 같이 사용자 지정 이벤트 및 새 이벤트 필터를 만듭니다 … 내
트리거의 경우 일반적으로 모니터링되는 SIOS DataKeeper (ExtMirr) EventIDs 16, 20, 23,150,219,220을 트리거합니다. 모니터하려는 특정 이벤트에서 트리거하도록 이벤트를 설정해야합니다. 다른 로그 또는 소스에서 온 이벤트에 대한 통지를 받으려면 동일한 태스크에 여러 개의 트리거를 넣을 수 있습니다.

새 이벤트 필터 만들기 - 이벤트 트리거가 구성되면 이벤트가 실행될 때 발생하는 작업을 구성해야합니다. 이 경우에는 1 단계에서 만든 Powershell 스크립트를 실행합니다.


- 기본 조건 매개 변수로 충분해야합니다.

- 마지막으로 설정 탭에서 작업이 이미 실행중인 경우 필요시 실행되도록하고 "새 인스턴스 대기"로 설정하십시오.

3 단계 (필요한 경우) – Microsoft Windows DistributedCOM 수정 이벤트 ID : 10016 오류
이론 상으로는 모든 것을 올바르게 수행했다면 Windows Server 2016을 사용하여 Windows 이벤트에서 전자 메일 경고를 트리거 할 수 있어야합니다. 그러나 내 서버 중 하나에서 이상한 사용 권한 문제가 발생했습니다. 여기 내 문제가 해결되었습니다. 희망도 그것은 당신을 도울 것입니다. 필자가 수동으로 이벤트를 트리거 한 경우 또는 PowerShell 스크립트를 직접 실행 한 경우 모든 것이 예상대로 작동하고 전자 메일을 받게됩니다. 그러나 모니터링중인 EventID 중 하나가 이벤트 로그에 기록되면 전자 메일이 전송되지 않습니다. 내가 가진 유일한 단서는 이벤트 ID : 10016입니다. 작업 트리거가 기록 된 이벤트를 감지 할 것으로 예상 할 때마다 내 시스템 이벤트 로그에 기록되었습니다.
로그 이름 : 시스템
출처 : Microsoft-Windows-DistributedCOM
날짜 : 10/27/2018 5:59:47 PM
이벤트 ID : 10016
작업 범주 : 없음
수준 : 오류
키워드 : 클래식
사용자 : DATAKEEPER dave
컴퓨터 : sql1.datakeeper.local
기술:
응용 프로그램 별 권한 설정은 로컬 활성화 권한을 부여하지 않습니다.
CLSID 사용하여 COM 서버 응용 프로그램에 대한
{D63B10C5-BB46-4990-A94F-E40B9D520160}
및 APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
사용자에게 DATAKEEPER dave SID (S-1-5-21-25339xxxxx-208xxx580-6xxx06984-500)
보낸 사람 주소 LocalHost
(LRPC 사용) 응용 프로그램 컨테이너에서 실행 Unavailable SID (Unavailable).
이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 수정할 수 있습니다.
해당 오류에 대한 Google 검색 결과의 대부분은 오류가 양호 함을 나타냅니다. 여기에는 오류를 수정하는 대신 오류를 억제하는 방법에 대한 지침이 포함되어 있습니다. 그러나, 나는이 오류가 현재의 실패의 원인이라고 확신했다. 필자가 올바르게 수정하지 않으면 Windows Server 2016을 사용하여 Windows 이벤트에서 전자 메일 경고 트리거하기가 어려울 것입니다. 많은 검색을 한 후에, 나는이 뉴스 그룹 토론을 발견했습니다. Marc Whittlesey의 답변은 올바른 방향으로 나를 지적했습니다. 이것은 그가 쓴 것입니다 …
구성 요소 서비스의 DCOM 구성 (CLSID 키 및 APPID 키)에 가기 전에 사용 권한을 설정해야하는 두 가지 레지스트리 키가 있습니다.
문제를 해결하기위한 몇 가지 단계를 따르는 것이 좋습니다.
1. Windows + R 키를 누르고 regedit를 입력하고 Enter 키를 누릅니다. 2. HKEY_Classes_Root CLSID * CLSID *로 이동하십시오. 삼. 그것을 마우스 오른쪽 단추로 클릭 한 다음 권한을 선택하십시오. 4. 고급을 클릭하고 소유자를 관리자로 변경하십시오. 소유자 줄 아래에 표시되는 상자를 클릭하십시오. 5. 완전한 제어를 적용하십시오. 6. 탭을 닫은 다음 HKEY_LocalMachine Software Classes AppID * APPID *로 이동하십시오. 7. 그것을 마우스 오른쪽 단추로 클릭 한 다음 권한을 선택하십시오. 8. 고급을 클릭하고 소유자를 관리자로 변경하십시오. 9. 소유자 선 아래에 표시 될 상자를 클릭하십시오. 10. 적용을 클릭하고 관리자에게 모든 권한을 부여하십시오. 11. 모든 탭을 닫고 관리 도구로 이동하십시오. 12. 구성 요소 서비스를 엽니 다. 13. 컴퓨터, 내 컴퓨터를 차례로 클릭 한 다음 DCOM을 클릭하십시오. 14. 오류 표시기에 나타나는 해당 서비스를 찾으십시오. 15. 마우스 오른쪽 버튼으로 클릭 한 다음 속성을 클릭하십시오. 16. 보안 탭을 클릭 한 다음 사용자 추가, 시스템 추가, 적용을 클릭하십시오. 17. 로컬 활성화 상자를 선택하십시오. 따라서 여기에서 관련 키를 사용하면 DCOM Config를 통해 회색 영역에 액세스 할 수 있습니다. CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
나는 1-15 단계를 거의 그대로 따라갈 수 있었다. 그러나, 제가 16 단계에 도착했을 때, 저는 그가 내가 원하는 것을 정확하게 말할 수 없었습니다. 처음에 DataKEEPER dave 사용자 계정에 RuntimeBroker에 모든 권한을 부여했으나 문제가 해결되지 않았습니다. 결국 세 가지 권한 모두에서 "기본값 사용"을 선택하고 문제가 해결되었습니다.
어떻게 또는 왜 이런 일이 일어 났는지 확신 할 수 없습니다. 나는 그것을 알아내는 데 다소 시간이 걸렸기 때문에 다시 일어날 경우에 대비하여 모든 것을 적어 두는 것이 더 낫다고 생각했습니다.
4 단계 – 배포 자동화
여러 시스템에서 동일한 경고를 활성화해야하는 경우 작업을 XML 파일로 내 보낸 다음 다른 시스템에서 가져옵니다. 
또는 더 나은 아직. 다음 예제와 같이 파일 공유에서 XML 파일을 사용할 수있게 한 후 Powershell 스크립트를 통해 빌드 프로세스의 일부로 가져 오기를 자동화하십시오.
PS C : > Register-ScheduledTask -Xml (get-content '\ myfileshare tasks DataKeeperAlerts.xml'| 아웃 - 스트링) -TaskName "DataKeeperAlerts"- 사용자 datakeeper dave - 암호 MyDomainP @ 55W0rd - 포스
Windows Server 2016을 사용하여 Windows 이벤트에서 전자 메일 경고 트리거
다음 글에서는 지정한 서비스가 시작되거나 중지 될 때 알림을받는 방법을 알려 드리겠습니다. 물론 Service Control Monitor에서 EventID 7036을 모니터링 할 수 있습니다. 하지만 서비스가 시작되거나 중지 될 때마다 알림이 표시됩니다. 우리가 관심을 갖는 서비스가 시작되거나 중단 될 때에 만 알림을받을 수 있도록 좀 더 자세히 조사해야합니다. Windows 이벤트에서 전자 메일 경고 트리거와 같은 방법 기사에 관심이 있으시면 Windows Server 2010을 사용하여 여기를 클릭하십시오. Clusteringformeremortals.com에서 재현 한



가장 극단적 인 경우를 제외하고 가용성 영역에서 데이터를 복제하면 데이터 보호에 충분해야합니다. SQL Server와 같은 일부 응용 프로그램에는 복제 기술이 내장되어 있습니다. 그러나 광범위한 응용 프로그램, 운영 체제 및 데이터 유형의 경우 블록 레벨 복제 SANless 클러스터 솔루션을 조사하십시오. SANless 클러스터 솔루션은 전통적으로 멀티 사이트 클러스터에 사용되었습니다. 그러나 동일한 기술을 가용성 영역 및 재해 복구를 위해 가용성 영역, 지역 또는 하이브리드 클라우드에서 클라우드에서도 사용할 수 있습니다. Azure, AW




) 클러스터링 기능과 두 클러스터 노드의 파일 서버를 모두 활성화합니다. [/ caption] 해당 역할과 해당 기능을 사용하도록 설정 한 후 클러스터 생성 후 DataKeeper 설치 [/ caption] 설치 중에 모든 기본 옵션을 사용할 수 있습니다. 사용하는 서비스 계정은 도메인 계정이어야하며 클러스터의 각 노드에있는 로컬 관리자 그룹에 있어야합니다.
서비스 계정은 각 노드의 로컬 관리자 그룹에있는 도메인 계정이어야합니다. 각 노드에 DataKeeper를 설치하고 라이센스를 부여한 후에는 서버를 다시 부팅해야합니다.
DataKeeper 볼륨 리소스를 생성하려면 DataKeeper UI를 시작하고 두 서버에 모두 연결해야합니다. SQL1에 연결 SQL2에 연결 [/ caption] 각 서버에 연결되면 DataKeeper 볼륨을 만들 준비가 된 것입니다. 작업을 마우스 오른쪽 단추로 클릭하고 "작업 작성"을
선택하십시오. 작업 이름과 설명을 입력하십시오.
원본 서버, IP 및 볼륨을 선택하십시오. IP 주소는 복제 트래픽이 이동할지 여부입니다.
대상 서버를 선택하십시오.
옵션을 선택하십시오. 두 VM이 동일한 지리적 영역에있는 우리의 목적을 위해 우리는 동기식 복제를 선택할 것입니다. 장거리 복제의 경우 비동기를 사용하고 일부 압축을 사용하고자 할 것입니다.
마지막 팝업에서 예를 클릭하면 장애 조치 클러스터링에서 사용 가능한 저장소에 새로운 DataKeeper 볼륨 리소스가 등록됩니다.
사용 가능한 저장소에 새 DataKeeper 볼륨 리소스가 표시됩니다. 
내부 부하 분산 장치 (ILB)를 만든 후에는 편집해야합니다. 우리가 할 첫 번째 일은 백엔드 풀을 추가하는 것입니다. 이 과정을 통해 두 개의 클러스터 노드를 선택하게됩니다.
다음으로 할 일은 프로브를 추가하는 것입니다. 우리가 추가 한 프로브는 포트 59999를 프로브합니다. 이 프로브는 클러스터에서 어떤 노드가 활성 상태인지 확인합니다.
마지막으로 SMB 트래픽 (TCP 포트 445)을 리디렉션하는로드 균형 조정 규칙이 필요합니다. 아래 스크린 샷에서 주목할 점은 Direct Server Return is Enabled입니다. 당신이 그 변화를 만들 었는지 확인하십시오. 