SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • Products
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • การทดสอบอาหารสัตว์
  • ข่าวสารและกิจกรรม
  • ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์
  • เรื่องราวความสำเร็จ
  • ติดต่อเรา
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

วิธีเรียก Trigger Email Alerts จาก Windows Event โดยใช้ Windows Server 2016

พฤศจิกายน 9, 2018 by Jason Aw Leave a Comment

เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016

ทีละขั้นตอน: วิธีการเรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows ที่มีรายละเอียดของเหตุการณ์โดยใช้ Windows Server 2016

บทนำ

การแจ้งเตือนอีเมลแจ้งเตือนจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 ต้องการเพียงไม่กี่ขั้นตอน ระบุการดำเนินการที่จะเกิดขึ้นเมื่อ Task ถูกเรียกใช้งาน เนื่องจาก Microsoft ได้ตัดสินใจยกเลิกการใช้งาน "ส่งอีเมล" ตัวเลือกเดียวที่เรามีคือ Start a Program ในกรณีของเราโปรแกรมดังกล่าวจะเป็นสคริปต์ Powershell เพื่อรวบรวมข้อมูลบันทึกเหตุการณ์และแยกวิเคราะห์ ด้วยวิธีนี้เราจะสามารถส่งอีเมลที่มีรายละเอียด Log Event ที่สำคัญ งานนี้ได้รับการยืนยันใน Windows Server 2016 แต่ฉันสงสัยว่าควรจะทำงานบน Windows Server 2012 R2 และ Windows Server 2019 เช่นกัน ถ้าคุณใช้งานได้กับแพลตฟอร์มอื่นโปรดแสดงความคิดเห็นและแจ้งให้เราทราบหากคุณต้องเปลี่ยนแปลงอะไร

ขั้นตอนที่ 1- เขียนสคริปต์ Powershell

สิ่งแรกที่ต้องทำคือการเขียนสคริปต์ Powershell ที่เมื่อรันสามารถส่งอีเมลได้ ขณะที่ค้นคว้าข้อมูลนี้ฉันค้นพบวิธีต่างๆมากมายในการทำให้งานนี้สำเร็จดังนั้นสิ่งที่ฉันกำลังจะแสดงให้คุณเห็นเป็นเพียงวิธีหนึ่ง แต่คุณสามารถทดลองและใช้สิ่งที่เหมาะสมกับสภาพแวดล้อมของคุณได้ ในห้องทดลองของฉันฉันไม่ได้ใช้เซิร์ฟเวอร์ SMTP ของตนเองดังนั้นฉันจึงต้องเขียนสคริปต์ที่สามารถใช้ประโยชน์จากบัญชี Gmail ของฉันได้ คุณจะเห็นในสคริปต์ Powershell ของฉันว่ารหัสผ่านไปยังบัญชีอีเมลที่ตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ SMTP อยู่ในรูปแบบข้อความล้วน หากคุณกังวลว่าอาจมีบุคคลอื่นเข้าถึงสคริปต์ของคุณและค้นพบรหัสผ่านของคุณให้เข้ารหัสข้อมูลประจำตัวของคุณ Gmail ต้องการและการเชื่อมต่อ SSL รหัสผ่านของคุณควรปลอดภัยบนสายเช่นเดียวกับโปรแกรมรับส่งอีเมลอื่น ๆ ฉันมีตัวอย่างของสคริปต์ Powershell เมื่อใช้ร่วมกับ Task Scheduler ระบบจะส่งอีเมลแจ้งเตือนโดยอัตโนมัติเมื่อมีการบันทึกเหตุการณ์ใด ๆ ไว้ใน Windows Event Log ในสภาพแวดล้อมของฉันฉันบันทึกสคริปต์นี้ไว้ที่ C: Alerts DataKeeper.ps1

$ EventId = 16,20,23,150,219,220

$ A = Get-WinEvent -MaxEvents 1 -FilterHashTable @ {Logname = "ระบบ"; ID = $ EventId}
$ Message = $ A.Message
$ EventID = $ A.Id
$ MachineName = $ A.MachineName
$ แหล่งที่มา = $ A.ProviderName


$ EmailFrom = "sios@medfordband.com"
$ EmailTo = "sios@medfordband.com"
$ Subject = "การแจ้งเตือนจาก $ MachineName"
$ Body = "EventID: $ EventID`nSource: $ แหล่งที่มา` nMachineName: $ MachineName `nMessage: $ ข้อความ"
$ SMTPServer = "smtp.gmail.com"
$ SMTPClient = New-Object Net.Mail.SmtpClient ($ SmtpServer, 587)
$ SMTPClient.EnableSsl = $ true
$ SMTPClient.Credentials = New-Object System.Net.NetworkCredential
("sios@medfordband.com", "mySMTPP @ 55w0rd");
$ SMTPClient.Send ($ EmailFrom, $ EmailTo, $ หัวเรื่อง, $ Body)

ตัวอย่างอีเมลที่สร้างขึ้นจากสคริปต์ Powershell นั้นมีลักษณะดังนี้ เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 คุณอาจสังเกตเห็นว่าสคริปต์ Powershell นี้ใช้ cmdlet Get-WinEvent เพื่อคว้ารายการบันทึกเหตุการณ์ล่าสุดจาก LogName, Source และ eventIDs ที่ระบุไว้ จากนั้นจะแยกวิเคราะห์เหตุการณ์และกำหนด EventID, Source, MachineName และ Message ให้เป็นตัวแปรที่จะใช้ในการเขียนอีเมล คุณจะเห็นว่า LogName, Source และ eventIDs ที่ระบุจะเหมือนกับที่คุณจะระบุเมื่อคุณตั้งค่า Scheduled Task ในขั้นตอนที่ 2

ขั้นตอนที่ 2 – ตั้งค่างานที่กำหนดเวลาไว้

ใน Task Scheduler สร้างงานตามที่แสดงในภาพหน้าจอต่อไปนี้

  1. สร้างงานตเรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016รวจสอบว่างานถูกตั้งค่าเป็นเรียกใช้ว่าผู้ใช้ล็อกอินหรือไม่ เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016
  2.  ในแท็บทริกเกอร์เลือกสร้างใหม่เพื่อสร้าง Trigger ซึ่งจะเริ่มงาน "On a Event" ในตัวอย่างของฉันฉันจะสร้างเหตุการณ์ที่เรียกใช้เวลาใด ๆ DataKeeper (extmirr) บันทึกเหตุการณ์ที่สำคัญเข้าสู่บันทึกของระบบ เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 สร้างเหตุการณ์แบบกำหนดเองและตัวกรองกิจกรรมใหม่ดังที่แสดงด้านล่เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016าง … สำหรับทริกเกอร์ของฉันฉันเรียกใช้งานการตรวจสอบโดยปกติของ SIOS DataKeeper (ExtMirr) EventIDs 16, 20, 23,150,219,220 คุณจะต้องตั้งค่ากิจกรรมเพื่อเรียกใช้กิจกรรมเฉพาะที่คุณต้องการตรวจสอบ คุณสามารถใส่ทริกเกอร์หลายรายการในงานเดียวกันได้หากต้องการรับการแจ้งเตือนเกี่ยวกับเหตุการณ์ที่มาจากบันทึกหรือแหล่งที่มาต่างๆ
    เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016
    สร้างตัวกรองกิจกรรมใหม่

     

  3. เมื่อมีการกำหนดค่าทริกเกอร์เหตุการณ์คุณจะต้องกำหนดค่าแอ็คชันที่เกิดขึ้นเมื่อมีการเรียกใช้งานเหตุการณ์ ในกรณีของเราเราจะเรียกใช้สคริปต์ Powershell ที่เราสร้างขึ้นในขั้นตอนที่ 1เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016
  4. พารามิเตอร์สภาวะดีฟอลต์ควรมีค่าเพียงพอ เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016
  5. และสุดท้ายบนแท็บการตั้งค่าให้แน่ใจว่าคุณอนุญาตให้งานสามารถเรียกใช้ตามต้องการและ "คิวใหม่อินสแตนซ์" ถ้างานกำลังทำงานอยู่

    เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016

ขั้นที่ 3 (ถ้าจำเป็น) – แก้ไขรหัสเหตุการณ์ของ Microsoft Windows DistributedCOM: 10016

ในทางทฤษฎีถ้าคุณทำทุกอย่างถูกต้องคุณควรสามารถเรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 อย่างไรก็ตามฉันได้รับสิทธิ์ในการอนุญาตแปลก ๆ จากเซิร์ฟเวอร์ของฉัน นี่คือการแก้ไขปัญหาของฉัน หวังว่ามันจะช่วยคุณได้เช่นกัน ในกรณีของฉันเมื่อฉันเรียกใช้เหตุการณ์ด้วยตนเองหรือถ้าฉันเรียกใช้สคริปต์ Powershell โดยตรงทุกอย่างทำงานตามที่คาดไว้และฉันจะได้รับอีเมล แต่ถ้าหนึ่ง EventIDs ถูกตรวจสอบเข้าสู่บันทึกเหตุการณ์จะไม่ส่งผลให้มีการส่งอีเมล เงื่อนงำเดียวที่ฉันมีคือรหัสเหตุการณ์: 10016 ถูกบันทึกไว้ในล็อกเหตุการณ์ระบบของฉันทุกครั้งที่ฉันคาด Task Trigger ตรวจพบเหตุการณ์ที่บันทึกไว้

ชื่อการเข้าสู่ระบบ: ระบบ
แหล่งที่มา: Microsoft-Windows-DistributedCOM
วันที่: 10/27/2018 5:59:47 PM
รหัสเหตุการณ์: 10016
ประเภทงาน: ไม่มี
ระดับ: ข้อผิดพลาด
คำสำคัญ: คลาสสิก
ผู้ใช้: DATAKEEPER  dave
คอมพิวเตอร์: sql1.datakeeper.local
รายละเอียด:
การตั้งค่าสิทธิ์เฉพาะแอปพลิเคชันไม่ได้ให้สิทธิ์การเปิดใช้งาน Local Activation 
สำหรับแอ็พพลิเคชันเซิร์ฟเวอร์ COM ที่มี CLSID 
{D63B10C5-BB46-4990-A94F-E40B9D520160}
และ APPID 
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
ให้กับผู้ใช้ DATAKEEPER  dave SID (S-1-5-21-25339xxxxx-208xxx580-6xxx06984-500) 
จากที่อยู่ LocalHost 
(ใช้ LRPC) ทำงานในคอนเทนเนอร์ของแอ็พพลิเคชัน SID (Unavailable) 
สิทธิ์การรักษาความปลอดภัยนี้สามารถแก้ไขได้โดยใช้เครื่องมือการจัดการบริการคอมโพเนนต์

ผลการค้นหา Google จำนวนมากสำหรับข้อผิดพลาดดังกล่าวบ่งชี้ว่าข้อผิดพลาดนั้นไม่เป็นพิษเป็นภัย รวมถึงคำแนะนำในการปราบปรามข้อผิดพลาดแทนที่จะแก้ไข อย่างไรก็ตามผมค่อนข้างแน่ใจว่าข้อผิดพลาดนี้เป็นสาเหตุของความล้มเหลวในปัจจุบันของฉัน ถ้าฉันไม่สามารถแก้ไขได้ถูกต้องจะเป็นการยากที่จะเรียกใช้การแจ้งเตือนทางอีเมลจาก Windows โดยใช้ Windows Server 2016 หลังจากการค้นหามากฉันสะดุดเมื่ออภิปรายกลุ่มข่าวนี้  คำตอบจาก Marc Whittlesey ชี้ไปในทิศทางที่ถูกต้อง นี่คือสิ่งที่เขาเขียน …

มีคีย์รีจิสทรี 2 ชุดที่คุณต้องตั้งค่าสิทธิ์ก่อนที่คุณจะไปที่การกำหนดค่า DCOM ในบริการคอมโพเนนต์: คีย์ CLSID และปุ่ม APPID

ผมขอแนะนำให้ทำตามขั้นตอนต่างๆเพื่อแก้ไขปัญหา:

1 กดปุ่ม Windows + R และพิมพ์ regedit แล้วกด Enter 2 ไปที่ HKEY_Classes_Root CLSID * CLSID * 3 คลิกขวาที่ไฟล์แล้วเลือกสิทธิ์ 4 คลิกล่วงหน้าและเปลี่ยนเจ้าของเป็นผู้ดูแลระบบ คลิกกล่องที่จะปรากฏใต้บรรทัดเจ้าของ 5 ใช้การควบคุมแบบเต็มรูปแบบ 6 ปิดแท็บจากนั้นไปที่ APPID * HKEY_LocalMachine Software Classes AppID * 7 คลิกขวาที่ไฟล์แล้วเลือกสิทธิ์ 8 คลิกล่วงหน้าและเปลี่ยนเจ้าของให้ผู้ดูแลระบบ 9 คลิกช่องที่จะปรากฏใต้บรรทัดเจ้าของ 10 คลิกใช้และให้สิทธิ์การควบคุมแบบเต็มรูปแบบแก่ผู้ดูแลระบบ 11 ปิดแท็บทั้งหมดและไปที่เครื่องมือการดูแลระบบ 12 เปิดบริการส่วนประกอบ 13 คลิกคอมพิวเตอร์คลิกคอมพิวเตอร์ของฉันแล้วคลิก DCOM 14 ค้นหาบริการที่เกี่ยวข้องซึ่งปรากฏในโปรแกรมดูข้อผิดพลาด 15 คลิกขวาที่คุณสมบัติแล้วคลิกคุณสมบัติ 16 คลิกแท็บความปลอดภัยแล้วคลิก Add User, Add System จากนั้นใช้ 17 ทำเครื่องหมายที่ช่อง Enable local ดังนั้นใช้คีย์ที่เกี่ยวข้องที่นี่และ DCOM Config จะทำให้คุณสามารถเข้าถึงพื้นที่ที่เป็นสีเทาได้: CLSID {DATBLE {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} {D63B10C5-BB46-4990-A94F-E40B9D520160}

ฉันสามารถทำตามขั้นตอน 1-15 คำทุกคำสวย ๆ อย่างไรก็ตามเมื่อฉันไปถึงขั้นตอนที่ 16 ฉันไม่สามารถบอกได้อย่างแท้จริงว่าเขาต้องการให้ฉันทำอะไร ตอนแรกฉันได้รับ DATAKEEPER dave บัญชีผู้ใช้ Full Control ไปยัง RuntimeBroker แต่ไม่สามารถแก้ไขปัญหาได้ สุดท้ายฉันเลือก "ใช้ค่าเริ่มต้น" กับทั้งสามสิทธิ์และแก้ไขปัญหา เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 ฉันไม่แน่ใจว่าเหตุใดจึงเกิดขึ้น ฉันคิดว่าฉันดีกว่าเขียนมันทั้งหมดลงในกรณีที่เกิดขึ้นอีกครั้งเพราะเอาฉันในขณะที่จะคิดออก

ขั้นตอนที่ 4 – ใช้การปรับใช้อัตโนมัติ

ถ้าคุณต้องการเปิดใช้งานการแจ้งเตือนเดียวกันในหลายระบบให้ส่งออกงานของคุณไปยังไฟล์ XML และนำเข้าในระบบอื่น ๆ ของคุณ เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 หรือดียิ่งกว่านี้ ทำให้การนำเข้าเป็นส่วนหนึ่งของกระบวนการสร้างของคุณโดยใช้สคริปต์ Powershell หลังจากทำไฟล์ XML ของคุณพร้อมกับแชร์ไฟล์ดังที่แสดงในตัวอย่างต่อไปนี้

PS C: > ลงทะเบียน-ScheduledTask-Xml (รับเนื้อหา 
'\ myfileshare  tasks  DataKeeperAlerts.xml' | ออกสตริง) 
-TaskName "DataKeeperAlerts" - ผู้ใช้ datakeeper  dave 
-Password MyDomainP @ 55W0rd -Force

เรียกใช้การแจ้งเตือนทางอีเมลจากเหตุการณ์ Windows โดยใช้ Windows Server 2016

ในโพสต์ต่อไปของฉันฉันจะแสดงวิธีรับการแจ้งเตือนเมื่อบริการที่ระบุเริ่มหรือหยุด แน่นอนคุณสามารถตรวจสอบ EventID 7036 จาก Service Control Monitor ได้ แต่จะแจ้งให้คุณทราบเมื่อใดก็ตามที่บริการใด ๆ เริ่มหรือหยุดลง เราจำเป็นต้องขุดลึกขึ้นเล็กน้อยเพื่อให้แน่ใจว่าเราได้รับแจ้งเฉพาะเมื่อบริการที่เราสนใจเกี่ยวกับการเริ่มต้นหรือหยุดเท่านั้น หากคุณสนใจในบทความเกี่ยวกับวิธีใช้ของเราเช่นการแจ้งเตือนอีเมลแจ้งเตือนจากเหตุการณ์ Windows โดยใช้ Windows Server 2016 ให้คลิกที่นี่ ทำซ้ำจาก Clusteringformeremortals.com

Filed Under: ทำให้เข้าใจง่ายเซิร์ฟเวอร์คลัสเตอร์ Tagged With: Windows Server 2016, เรียกเตือนอีเมลจาก Windows Performance Monitor

โพสต์ล่าสุด

  • วิธีการแก้ไขโดยไม่ต้องหยุดชะงัก: เวลาหยุดทำงานที่แทบจะเป็นศูนย์ด้วย HA
  • การสาธิต SIOS LifeKeeper: การอัปเดตแบบต่อเนื่องและการสำรองข้อมูลช่วยปกป้อง PostgreSQL ใน AWS ได้อย่างไร
  • วิธีการประเมินว่าการ์ดเครือข่ายของฉันจำเป็นต้องเปลี่ยนหรือไม่
  • SIOS Technology จะสาธิตซอฟต์แวร์คลัสเตอร์ความพร้อมใช้งานสูงสำหรับแอปพลิเคชันที่สำคัญต่อภารกิจในงาน Red Hat Summit, Milestone Technology Day และ XPerience Day และ SQLBits 2025
  • ปัญญาประดิษฐ์ในแอปพลิเคชันที่เกี่ยวข้องกับความพร้อมใช้งานสูง

กระทู้ยอดนิยม

เข้าร่วมรายชื่อผู้รับจดหมายของเรา

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