SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 제작품
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 뉴스 및 이벤트
  • 서버 클러스터 단순화
  • 성공 사례
  • 저희에 게 연락
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 경고 트리거

11월 18, 2018 by Jason Aw Leave a Comment

특정 Windows 서비스가 시작되거나 Windows Server 2016에서 중지 될 때 전자 메일 경고를 트리거하는 방법

단계별 : 특정 Windows 서비스가 시작되거나 Windows Server 2016에서 중지 될 때 전자 메일 경고를 트리거하는 방법

이전 Windows 이벤트 로그에 기록 된 특정 Windows 이벤트 ID를 기반으로 전자 메일 경고를 보내는 방법을 보여준 이전 게시물과는 달리 이번에는 특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 경고를 트리거하는 방법을 공유합니다. 대부분의 이벤트에 잘 작동합니다. 특정 Windows 서비스가 시작되거나 중지 될 때 알림을 받고 싶다면 이상적이지 않습니다. Windows 서비스가 시작되거나 중지되면 Source "Service Control Manager"의 EventID 7036이 Windows 시스템 로그에 기록됩니다. 이제는 이전 게시물에 설명 된대로 EventID가 기록 될 때마다 이메일을 보내도록 트리거를 설정할 수 있습니다. 그러나 모든 Windows 서비스가 시작되거나 중지 될 때 전자 메일을 수신하지 않을 수도 있습니다. 좀 더 구체적으로 설명하기 위해 트리거를 설정할 때 Windows 이벤트 필터와 관련된 XML 데이터를 편집해야합니다. 이것은 이벤트 속성을 약간 더 자세히보고 Windows 이벤트의 세부 정보 탭에서 XML보기를 볼 때만 표시되는 EventData에 필터링합니다. 이 작업은 Windows Server 2016에서 확인되었지만 Windows Server 2012 R2 및 Windows Server 2011에서도 작동해야합니다. 다른 플랫폼에서 작동하게되면 다른 플랫폼으로 의견을 말하고 알려주십시오.

1 단계 – Powershell 스크립트 작성

당신이해야 할 첫 번째 일은 이메일을 보낼 수있는 Powershell 스크립트를 작성하는 것입니다. 특정 Windows 서비스가 시작 또는 중지 될 때 전자 메일 경고를 트리거하려면 해당 전자 메일이 필요합니다. 이 작업을 수행하는 방법은 여러 가지가 있습니다. 나는 당신이 한 가지 방법 일뿐만 아니라 실험하고 환경에 맞는 것을 자유롭게 사용한다는 것을 보여주고 있습니다. 내 실험실에서는 자체 SMTP 서버를 실행하지 않으므로 Gmail 계정을 활용할 수있는 스크립트를 작성해야했습니다. 내 Powershell 스크립트에서 SMTP 서버를 인증하는 전자 메일 계정의 암호가 일반 텍스트로 표시됩니다. 누군가가 귀하의 스크립트에 액세스하여 귀하의 암호를 발견 할 우려가 있다면 자격 증명을 암호화하고 싶을 것입니다. Gmail은 다른 모든 이메일 클라이언트와 마찬가지로 비밀번호가 유선에서 안전해야하므로 SSL 연결을 요구합니다. 다음은 Windows 이벤트 로그에 지정된 이벤트가 기록 될 때 전자 메일 경고를 자동으로 보내는 작업 스케줄러와 함께 사용되는 Powershell 스크립트의 예제입니다. 내 환경에서이 스크립트를 C : Alerts ServiceAlert.ps1에 저장했습니다.

$ filter = "* [System [EventID = 7036] 및 EventData [Data = 'SIOS DataKeeper']]"
$ A = Get-WinEvent -LogName 시스템 -MaxEvents 1 -FilterXPath $ filter
$ 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`n $ 메시지"
$ 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, EventID 및 EventDataspecified에 따라 가장 최근 이벤트 로그 항목을 가져 오는 것으로 나타났습니다. 그런 다음 해당 이벤트를 구문 분석하고 전자 메일을 작성하는 데 사용할 변수에 EventID, Source, MachineName 및 Message를 할당합니다. 지정한 LogName, EventID 및 EventData가 2 단계에서 예약 된 작업을 설정할 때 지정하는 것과 동일하다는 것을 알 수 있습니다. EventID, LogName은 익숙 할 수 있지만 EventData는 익숙하지 않을 수 있습니다. 이벤트 뷰어에서 이벤트를 열어야하는 특정 이벤트와 관련된 EventData를 보려면 세부 정보 탭을보고 XML보기를 선택하십시오. XML보기에서 이벤트에 포함 된 모든 데이터를 볼 수 있습니다. XML의 맨 아래에 <EventData>라는 데이터 배열이 표시됩니다. 거기에는 추가 이벤트 데이터가 매개 변수로 저장되어 있습니다. 아래에서 볼 수 있듯이 "param1"에는 중지되었거나 시작된 Service의 이름이 있습니다. 이벤트 데이터

2 단계 – 일정 작업 설정

작업 스케줄러에서 다음 그림과 같이 작업을 만듭니다.

  1. 작업 만들기 작업 만들기사용자가 로그온했는지 여부에 관계없이 작업이 실행되도록 설정되어 있는지 확인하십시오. 서비스 - 일반
  2.  트리거 탭에서 새로 만들기를 선택하여 "이벤트 발생"작업을 시작할 트리거를 만듭니다. 필자는 DataKeeper (extmirr)가 중요한 이벤트를 시스템 로그에 기록 할 때마다 트리거하는 이벤트를 작성합니다. 작업 만들기 3 아래 그림과 같이 사용자 정의 이벤트 및 새 이벤트 필터를작업 생성 - 트리거 만듭니다 … 내 트리거의 경우 이전 기사에서 설명한대로 7036을 모니터링하는 트리거를 설정할 수 있습니다. 그러나 필터 GUI 인터페이스를 사용하면 앞서 설명한대로 EventData의 Param1에 저장된 서비스 이름을 지정할 수 없습니다. 관심있는 특정 서비스를 모니터링하기 위해 아래와 같이 XML을 직접 편집해야합니다.서비스 - XML 추적을 바로 건너 뛰는 경우 아래 XML을 복사하고 'SIOS DataKeeper'를 모니터링 할 이벤트의 param1에 저장된 이벤트 데이터로 바꿉니다.
    <QueryList>
    <Query Id = "0"Path = "System">
    <Select Path = "System"> * [System [(Level = 4 또는 Level = 0) 및 (EventID = 7036)]] 
    및 * [EventData [Data [1] = 'SIOS DataKeeper']] </ Select>
    </ Query>
    </ QueryList>
  3. 이벤트 트리거가 구성되면 이벤트가 실행될 때 발생하는 작업을 구성해야합니다. 이 경우에는 1 단계에서 만든 Powershell 스크립트를 실행합니다.작업 - 2서비스 - 작업
  4. 기본 조건 매개 변수로 충분해야합니다. 조건 - 1
  5. 마지막으로 설정 탭에서 작업이 이미 실행중인 경우 필요시 실행되도록하고 "새 인스턴스 대기"로 설정하십시오.

    2018-10-28_00-17-27

3 단계 (필요한 경우) – Microsoft – Windows – Distributedcom 수정 이벤트 ID : 10016 오류

이론적으로 모든 것을 올바르게 수행했다면 모니터링중인 이벤트 중 하나가 이벤트 로그에 기록 될 때마다 이메일 수신을 시작해야합니다.  그러나 모든 서버가 작동하기 전에 해결해야하는 서버 중 하나에서 이상한 사용 권한 문제가 발생했습니다. 당신이이 문제를 다룰 지 확신 할 수 없지만, 여기에 수정 사항이있는 경우를 대비해서. 필자의 경우 수동으로 이벤트를 트리거하거나 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) 
address LocalHost (LRPC 사용) 
응용 프로그램 컨테이너에서 실행 중입니다. 사용할 수없는 SID (사용할 수 없음). 
이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 수정할 수 있습니다.

해당 오류에 대한 Google 검색 결과의 대부분은 오류가 발생하지 않았 음을 나타내며 오류를 수정하는 대신 오류를 억제하는 방법에 대한 지침을 포함합니다. 그러나이 오류가 현재 모니터링 된 이벤트 로그 항목에서 트리거 된 예약 된 이벤트에서 전자 메일 경고를 보낼 수없는 현재 오류의 원인이라고 확신했습니다. 나는 그것을 고칠 필요가 있었다. 많은 검색을 한 후에, 나는이 뉴스 그룹 토론을 발견했습니다.  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에 모든 권한을 부여했습니다. 하지만 그건 문제를 해결하지 못했습니다. 결국 세 가지 권한 모두에서 "기본값 사용"을 선택하고 문제가 해결되었습니다. RuntimeBroker 어떻게 또는 왜 이런 일이 일어 났는지는 잘 모르겠지만, 문제가 생길 경우를 대비해서 다시 쓰는 것이 더 낫다고 생각했습니다.

4 단계 – 배포 자동화

여러 시스템에서 동일한 경고를 활성화해야하는 경우 작업을 XML 파일로 내보내고 다른 시스템에서 가져올 수 있습니다. [캡션 ID = "첨부 파일 _2345"정렬 = "alignnone특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 알림"너비 = "369"] 내보내기 [/ 캡션] [캡션 ID = "첨부 파일 _2346"정특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 알림렬 = "alignnone"너비 = "391"] 가져 오기 [/ 캡션] 다음 예제와 같이 파일 공유에서 XML 파일을 사용할 수있게 한 다음 Powershell 스크립트를 통해 빌드 프로세스의 일부로 가져 오기를 자동화하십시오.

PS C : > Register-ScheduledTask -Xml (get-content '\ myfileshare  tasks  DataKeeperAlerts.xml' 
| out-string) -TaskName "DataKeeper 서비스 경고"- 사용자 datakeeper  dave 
- 암호 MyDomainP @ 55W0rd - 포스

마지막으로 특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 알림

다행히도 내가 제공 한 서비스는 밤에 Windows 서비스를 계속 사용하는 경우 경고 알림 전자 메일을 받기 위해 필요한 모든 것을 제공합니다. 이것으로 전자 메일 경고 구성에 관한 본 시리즈를 마칩니다. 이 시리즈에서는 성능 카운터, 이벤트 로그 항목 및이 기사의 Windows 서비스 시작 및 중지 이벤트를 기반으로 구성된 경고 구성에 대해 다뤘습니다. 물론이 기사에서 설명하는 Powershell 스크립트를 확장하여 전자 메일을 보내는 것 이상의 기능을 수행 할 수 있습니다. 많은 경고 또는 예상치 못한 서비스 중지에는 일반적으로 약간의 수정이 필요합니다. 왜 복구 단계를 스크립트 아웃하지 않고 트리거 된 작업을 통해 문제를 해결할 수 있습니까? 개인적으로 SCOM, SolarWinds 또는 다른 엔터프라이즈 관리 시스템에 투자하는 것이 좋지만, 근무지의 카드에 없으면이 기사가 도움이 될 수 있습니다. 특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 경고에 대한 추가 팁을 보려면 Microsoft에 문의하십시오. Clusteringformeremortals.com의 허가를 받아 복제했습니다.

Filed Under: 서버 클러스터 단순화 Tagged With: Windows Server 2016, 특정 Windows 서비스가 시작되거나 중지 될 때 전자 메일 알림

최근 게시물

  • 용어집 : 애플리케이션 모니터링
  • 클라우드 가용성 : 2021 년의 가장 큰 함정
  • 고 가용성을 개선하는 50 가지 방법
  • 오픈 소스 고 가용성을 사용하는 경우 팀에 필요한 7 가지 기술
  • 고 가용성을위한 클라우드 마이그레이션 모범 사례

가장 인기있는 게시물

Maximise replication performance for Linux Clustering with Fusion-io
Failover Clustering with VMware High Availability
create A 2-Node MySQL Cluster Without Shared Storage
create A 2-Node MySQL Cluster Without Shared Storage
SAP for High Availability Solutions For Linux
Bandwidth To Support Real-Time Replication
The Availability Equation – High Availability Solutions.jpg
Choosing Platforms To Replicate Data - Host-Based Or Storage-Based?
Guide To Connect To An iSCSI Target Using Open-iSCSI Initiator Software
Best Practices to Eliminate SPoF In Cluster Architecture
Step-By-Step How To Configure A Linux Failover Cluster In Microsoft Azure IaaS Without Shared Storage azure sanless
Take Action Before SQL Server 20082008 R2 Support Expires
How To Cluster MaxDB On Windows In The Cloud

우리의 메일 링리스트에 가입하세요

Copyright © 2021 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in