इवेंट चर पर सर्वर 2008 ईमेल


13

सर्वर 2008 की नई विशेषताओं में से एक कार्य को लॉग में एक विशेष घटना में संलग्न करने की क्षमता है। उपलब्ध कार्यों में से एक एसएमटीपी सर्वर के माध्यम से एक ईमेल भेजना है।

यह बढ़िया काम कर रहा है, हालांकि यह आदर्श होगा यदि संदेश निकाय में, ईवेंट सामग्री रखी जा सकती है। मैं $ घटना और% घटना रंग% का उपयोग करने की कोशिश की है, लेकिन उन अंधेरे में सिर्फ शॉट्स हैं। Googling की कोई भी राशि कोई परिणाम नहीं देती है।

यदि संभव है तो किस प्रकार, क्या कोई जानता है?

अद्यतन : नीचे स्पार्क्स का सुझाव सही दिशा में एक कदम है, जो मुझे विश्वास है, हालांकि यह विधि सभी मूल्यों के लिए काम नहीं करती है। उदाहरण के लिए, मैं जैसा कि RecordID, Severity और Channel को खींच सकता हूं, लेकिन मैं EventID को पुनः प्राप्त करने के लिए उसी विधि का उपयोग नहीं कर सकता, या सबसे महत्वपूर्ण रूप से वर्णन।

यहाँ एक घटना से कच्चा XML है:

[Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"]
  [System]
    [Provider Name="DFSR" /] 
    [EventID Qualifiers="16384"]4412[/EventID] 
    [Level]4[/Level] 
    [Task]0[/Task] 
    [Keywords]0x80000000000000[/Keywords] 
    [TimeCreated SystemTime="2009-05-14T18:18:09.000Z" /] 
    [EventRecordID]45692[/EventRecordID] 
    [Channel]DFS Replication[/Channel] 
    [Computer]servername.domain.com[/Computer] 
    [Security /] 
    [/System]
  [EventData]
    [Data]9046C3F4-843E-4A53-B941-4B20764072E5[/Data] 
    [Data]D:\departments\Geomatics\Plan Quality\Data Processing\CG3533017 2009-05-13 KT FIXED[/Data] 
    [Data]D:\departments[/Data] 
    [Data]{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data] 
    [Data]Departments[/Data] 
    [Data]domain.ca\files\departments[/Data] 
    [Data]B8242CE2-F5EB-47DA-BA5B-1DD2F7EE3AB9[/Data] 
    [Data]DFAA7A54-66CB-4C31-81A0-0F861382C32C[/Data] 
    [Data]CG3533017 2009-05-13-{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data] 
  [/EventData]
 [/Event]

मैंने EventData के लिए एक ValueQuery का उपयोग करने की कोशिश की है, लेकिन यह कोई डेटा नहीं देता है।


+1 - हम अपने वेब सर्वर से अलर्ट भेजने के लिए इसका उपयोग करते हैं, और मैं एक के लिए ईमेल में अधिक जानकारी चाहता हूं! मैं इस धागे पर नज़र रखूँगा ...
कीथ विलियम्स

जवाबों:


3

मैं इसके बारे में थोड़ा अलग था, लेकिन यह दृष्टिकोण नई घटनाओं पर ईमेल बनाता है जो एक कस्टम फ़िल्टर से मेल खाता है, ईमेल बॉडी में शामिल सभी घटना विवरणों के साथ।

1) अपने वांछित फ़िल्टर के साथ ईवेंट व्यूअर में एक 'कस्टम दृश्य' बनाएं।

2) एक बार जब आपके पास दृश्य हो, तो आपको 'इस कस्टम दृश्य में कार्य संलग्न करें' के लिए एक लिंक देखना चाहिए।

मैंने यहाँ से SendMail.exe का उपयोग करना चुना ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) जो मैंने C: \ sendmail में निकाला। कारण Microsoft की 'ईमेल भेजें' कार्रवाई में SMTP प्रमाणीकरण के साथ समस्याएँ हैं और यह स्पष्ट रूप से सर्वर 2012 में भी मौजूद नहीं है।

इसलिए मेरे मामले में मैंने कस्टम व्यू को कार्य संलग्न करते हुए 'स्टार्ट ए प्रोग्राम' चुना। लेकिन हम इसे XML के रूप में संपादित करने जा रहे हैं ताकि GUI के माध्यम से इसे भरने के बारे में चिंता न करें।

3) नए टास्क को एक्सएमएल में एक्सपोर्ट करें, हम इसे बाद में एडिट करेंगे।

4) निम्नलिखित 3 पंक्तियों के साथ C: \ sendmail फ़ोल्डर के तहत एक 'mail-event.bat' फ़ाइल बनाएँ:

C:\Windows\system32\wevtutil.exe qe Application /f:text /q:"<QueryList><Query Id='0' Path='Application'><Select Path='Application'>*[System[(EventRecordID=%1)]]</Select></Query></QueryList>" > C:\sendmail\%1.log
C:\sendmail\sendEmail.exe -s <smtp_server> -f <from> -xu <user> -xp <pass> -t <to> -u "<subject>" -o message-file=c:\sendmail\%1.log
del C:\sendmail\%1.log

जाहिर है, वांछित मूल्यों के साथ 'smtp_server', 'from', 'user', 'pass', 'to', 'subject' बदलें।

यह C: \ sendmail के अंतर्गत '$ (EventRecordID) .log' फ़ाइल बनाएगा, जो उस ईवेंट के सभी विवरणों के साथ भेजेगा, उसे मेल करेगा और फिर उसे हटा देगा।

यदि आप इवेंट फ़ाइल देखने, अपने एप्लिकेशन लॉग में कोई ईवेंट खोलने, विवरण टैब पर स्विच करने, 'XML दृश्य' का चयन करने और फिर EventRecordID की तलाश में बैच फ़ाइल काम कर सकते हैं। उस पूर्णांक की प्रतिलिपि बनाएँ, और फिर कमांड लाइन से चलाएँ:

C: \ sendmail> log-event.bat 53522

बेशक, EventRecordID नोड से मान के साथ 53522 की जगह। यदि आप ईमेल प्राप्त करते हैं, तो अपने खुश स्थान पर जाएं।

ध्यान दें: आपने देखा होगा कि स्ट्रिंग 'एप्लीकेशन' wevtutil.exe के लिए कमांड लाइन में कुछ समय दिखाती है - ऐसा इसलिए है क्योंकि मैं इसे कस्टम व्यू पर सीधे इंगित करके काम करने के लिए प्रतीत नहीं कर सकता, और मेरा कस्टम दृश्य उन घटनाओं का एक उप-समुच्चय हुआ जो अनुप्रयोग लॉग के अंदर हैं। उदाहरण के लिए, यदि आप सिस्टम लॉग से घटनाओं को मेल करने की कोशिश कर रहे हैं, तो आपको इसे समायोजित करना होगा।

5) आपके द्वारा निर्यात किए गए XML को संपादित करें, हम दो बदलाव करने जा रहे हैं:

सबसे पहले, 'EventTrigger' नोड के तहत XML में निम्न 'ValueQueries' नोड जोड़ें:

<EventTrigger>
  <Enabled>true</Enabled>
  <Subscription>...snip...</Subscription>
  <ValueQueries>
    <Value name="EventRecordID">Event/System/EventRecordID</Value>
  </ValueQueries>  
</EventTrigger>

नोट: उपरोक्त में, मैंने 'सदस्यता' जानकारी को छीन लिया है जो आपके द्वारा बनाए गए कस्टम दृश्य के आधार पर भरी गई होगी। अपने XML में मेरी 'सदस्यता' की नकल न करें!

दूसरा, निम्न के साथ क्रियाएँ नोड बदलें:

<Actions Context="Author">
   <Exec>
     <Command>C:\sendmail\mail_event.bat</Command>
     <Arguments>$(EventRecordID)</Arguments>
   </Exec>
</Actions>

अब, अपने कस्टम दृश्य में एक नई घटना को प्रकट करने के लिए कारण है, और आप स्वचालित रूप से ईमेल अधिसूचना प्राप्त करना चाहिए! वू हू!


1

मैं कोशिश करने के लिए एक सर्वर 2008 या Vista मशीन के लिए पहुँच नहीं है इस अपने आप को और आप के लिए चर मिलता लेकिन इस लेख उपयोग की होना चाहिए।

यदि आप एक मूल कार्य बनाते हैं और फिर उस कार्य के XML को देखते हैं जिसे आपको उपलब्ध सभी मानों को देखना चाहिए।

http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx


1

स्पार्क्स द्वारा उपलब्ध कराए गए लिंक में प्रलेखन का उपयोग करते हुए, अपने इवेंट टेक्स्ट को प्राप्त करने के लिए टास्क शेड्यूलर से एक्सएमएल को निर्यात की गई इस अतिरिक्त लाइन को जोड़ें:

<Value name="eventData">Event/EventData/Data</Value>

यह भी दिलचस्प (और उम्मीद है कि आत्म-व्याख्यात्मक):

<Value name="eventTimeCreated">Event/System/TimeCreated/@SystemTime</Value>

मुझे यह Googling "इवेंट / सिस्टम / EventRecordID" मिला

फिर आप अपने कार्य में $ (EventData) और $ (eventTimeCreated) चर का संदर्भ ले सकते हैं।

ऐसा लगता है कि मान XML XML पदानुक्रम के माध्यम से कदम द्वारा निर्दिष्ट किए गए हैं। मैं आपसे उम्मीद करूंगा कि स्लैश सीमांकित अभिव्यक्ति बनाने के लिए कच्चे XML डंप को हटाकर आप घटना के किसी भी हिस्से को निर्दिष्ट करने में सक्षम हों।

ऐसा लगता है कि '/ @' इस वाक्य रचना में एक अंतरिक्ष चरित्र के लिए आशुलिपि है।


बस इसे मेरी घटनाओं में जोड़ दिया, हम देखेंगे कि क्या यह अगली बार काम करता है जब कोई DFSR संघर्ष होता है। उत्तर के लिए धन्यवाद, मैं आपको पोस्ट करता रहूंगा।
जेफ मील्स

1

क्या आप इवेंट डेटा के बाद हैं?

जब भी कोई आईआईएस एप्लीकेशन पूल बेकार समय के कारण बंद हो जाता है तो मुझे एक ईमेल भेजने की आवश्यकता होती है। मैं उस ऐप पूल का नाम चाहता था जिसे ईमेल संदेश में प्रदर्शित होने के लिए बंद किया जा रहा था।

यह मेरे लिए काम किया:

<Value name = "appPoolId"> Event / EventData / Data [@ नाम = 'AppPoolID'] </ value>


1

मैंने इसे काम करने के लिए कभी समाप्त नहीं किया, और ऐसा लगता है कि सर्वर 2012 के लिए यह ईमेल कार्यक्षमता पूरी तरह से हटा दी गई है। दुर्भाग्य से एक मृत अंत।


0

मुझे लगता है कि मैंने आपके विचारों को विकसित करना समाप्त कर दिया है

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-02-07T17:30:20.8644895</Date>
    <Author>QA\TimT</Author>
  </RegistrationInfo>
  <Triggers>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="ForwardedEvents"&gt;&lt;Select Path="ForwardedEvents"&gt;*&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
      <ValueQueries>
        <Value name="EventChannel">Event/System/Channel</Value>
        <Value name="EventComputer">Event/System/Computer</Value>
        <Value name="EventData">Event/EventData/Data</Value>
        <Value name="EventID">Event/System/EventID</Value>
        <Value name="EventRecordID">Event/System/EventRecordID</Value>
        <Value name="EventSeverity">Event/System/Level</Value>
        <Value name="Message">Event/RenderingInfo/Message</Value>
      </ValueQueries>
    </EventTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>QA\Administrator</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <SendEmail>
      <Server>mail.nowhere.com</Server>
      <Subject>$(EventComputer) reports event $(EventID) in $(EventChannel), record $(EventRecordID), severety $(EventSeverity)</Subject>
      <To>admin@nowhere.com</To>
      <From>reporter@nowhere.com</From>
      <Body>$(EventData)
$(Message)</Body>
      <HeaderFields />
      <Attachments />
    </SendEmail>
  </Actions>
</Task>

कृपया, केवल कुछ कोड डंप (तीन साल पुराने प्रश्न पर) को न छोड़ें, लेकिन समझाएं कि आपने क्या किया।
स्वेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.