havokx23
Goto Top

Aufgabenplanungs-Ergebnis abfragen

Hallo zusammen,
ich hab mal ein wenig recherchiert und nichts hilfreiches finden können... daher richte ich mich an euch.
Es geht darum, dass wir einen automatisierten Befehl mithilfe der Aufgabenplanung von Windows-Server 2012 eingerichtet haben.
Nun kam es vor, dass irgendetwas nicht ganz sauber durchgelaufen ist. Die "angeblich" verschickten Daten sind nie beim Empfänger eingetroffen.
Daher soll ich nun mit Icinga/Nagios prüfen, welches Ergebnis beim letzten Durchlauf rauskam. Sobald ein anderes "Ergebnis der letzten Ausführung" als '0x0' auftaucht, sollen die Admins alarmiert werden. Ein entsprechendes Skript, welches die Daten an Nagios weiter gibt, kriege ich hin. Allerdings weiß ich absolut nicht, wie ich an diese Daten komme.

Eventuell weiß einer von euch mehr face-smile

Viele Grüße,
Havok

Content-ID: 246128

Url: https://administrator.de/contentid/246128

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

SlainteMhath
SlainteMhath 11.08.2014 um 10:18:46 Uhr
Goto Top
Moin,

Allerdings weiß ich absolut nicht, wie ich an diese Daten komme.
Übers Eventlog. Entweder liest du das per Nagios Plugin direkt aus, oder erstellst dir einen Trigger fürs Eventlog der dann entweder eine SNMP Trap auslöst oder eine Mail versendetet o.Ä.

lg,
Slainte
colinardo
colinardo 11.08.2014 aktualisiert um 11:38:39 Uhr
Goto Top
Zitat von @SlainteMhath:
> Allerdings weiß ich absolut nicht, wie ich an diese Daten komme.
Übers Eventlog. Entweder liest du das per Nagios Plugin direkt aus, oder erstellst dir einen Trigger fürs Eventlog der
dann entweder eine SNMP Trap auslöst oder eine Mail versendetet o.Ä.
genau, und wie erweiterte Eventlogfilter mit XPath solche Eigenschaften abfragen können, kannst du an einem Beispiel hier sehen:

Dazu musst du den Verlauf für die Aufgaben im jeweiligen Aufgabenordner (Kontextmenü des Ordners > Verlauf für alle Aufgaben aktivieren) aktivieren. Folgender XPath XML-Filter checkt z.B. ob ein Task der mit folgendem Namen(inkl. Ordner) abgelegt ist \MyTasksFolder\TaskXYZ, nicht mit dem Ergebnis 0x0 abgeschlossen wurde.

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task="201"] and EventData[Data[@Name="ResultCode"]!=0 and Data[@Name="TaskName"]="\MyTasksFolder\TaskXYZ"]]</Select>
  </Query>
</QueryList>

Grüße Uwe
Havokx23
Havokx23 11.08.2014 um 13:06:19 Uhr
Goto Top
Ahh okay... Danke schonmal face-smile Ich bin jetzt grade dabei einen Filter zu schreiben der nach einem bestimmten Tast schaut. Das sieht im Moment so aus:

<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler%4Operational">
<Select Path="Microsoft-Windows-TaskScheduler%4Operational">
*[EventData[Data[@Name='TaskName'] and (Data='\wpLVS - SAP-Schnittstelle Nagelgroup']]]
and
*[System[(channel='Microsoft-Windows-TaskScheduler/Operational')]]
</Select>
</Query>
</QueryList>

Allerdings kommt jedesmal die Fehlermeldung, dass der angegebene Kanal nicht gefunden werden kann. Irgendwas stimmt nicht :/
colinardo
colinardo 11.08.2014 aktualisiert um 13:18:56 Uhr
Goto Top
<QueryList> 
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational"> 
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task="201"] and EventData[Data[@Name="ResultCode"]!=0 and Data[@Name="TaskName"]="\wpLVS - SAP-Schnittstelle Nagelgroup"]]</Select> 
  </Query> 
</QueryList>
Ansonsten musst du mal ein Event generieren, und dann in der XML-Ansicht des Events den Channel-Namen kopieren. Das hier wurde auf einem Windows 7x64 getestet.

633a591b2f9be06346e9f5997bcc1051
Havokx23
Havokx23 11.08.2014 um 15:13:17 Uhr
Goto Top
Dankeschön face-smile

Soweit so gut. Ich habe jetzt eine "Benutzerdefinierte Ansicht" generiert, welche mir aus dem Task-Scheduller alle Ereignisse heraus filtert, welche mit dem SAP-Plugin zutun haben. Jetzt habe ich aber das Problem. dass ich mir das zwar angucken, aber nicht mit dem NSClient++ abfragen kann :/
Er verlangt eine "file" die ich angeben soll. Wird diese Datei nicht vom System in der Registry gefunden, wird unter "Application" nach entsprechender ID gesucht.

Ich habe also jetzt eine Ansicht und keine neue Log-Datei erstellt, welche von NSClient nicht gefunden wird. Kann ich anhand dieser Anfrage eine eigene Eventlog-Datei erzeugen?
colinardo
colinardo 11.08.2014 aktualisiert um 15:29:45 Uhr
Goto Top
Erstell doch einfach einen Event-Trigger mit der obigen XML-Query und binde ein Script daran. Rechtsklick auf ein Event Aufgabe an dieses Ereignis anfügen, dann bearbeitest du den Trigger indem du obiges XML unter Trigger Bei einem Ereignis > Benutzerdefiniert einfügst.

Oder:

Alle Taskscheduler-Events finden sich in diesem Log:
Anwendungs und Dienstprotokolle --> Microsoft --> Windows -->TaskScheduler --> Betriebsbereit

Das Log heißt: Microsoft-Windows-TaskScheduler/Betriebsbereit und liegt unter:
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TaskScheduler%4Operational.evtx