Blog
Benachrichtigung über inaktive geplante Windows-Aufgaben in Google Cloud

Kürzlich meldete ein Kunde mehrere Vorfälle mit einer Datenpipeline, woraufhin sich das Unternehmen über die mangelnde Transparenz der Datentransferprozesse beschwerte. Leider erstreckten sich die Prozesse über mehrere Systeme und Lieferanten, so dass es schwierig war, einen einzigen Überblick zu erhalten. Um hier Abhilfe zu schaffen, wurden die Schritte in der Datenpipeline mit Checks und Balances versehen, um den Engpass zu identifizieren und eine einheitliche Sichtweise zu ermöglichen.
Eine dieser Prüfungen besteht darin, sicherzustellen, dass die geplante Aufgabe ausgeführt wird. Die Implementierung dieser Prüfung wird in diesem Blog vorgestellt.
Sind Sie neugierig auf die Überwachung der Ergebnisse von geplanten Aufgaben? Lesen Sie diesen Blog.
Überwachung geplanter Aufgaben
Die nächsten Schritte sind erforderlich, um Ihre geplanten Aufgaben zu überwachen:
- Protokollierung des Task-Planers aktivieren
- Windows-Ereignisprotokolle an Cloud Logging weiterleiten
- Überwachen Sie inaktive Aufgaben mit Cloud Monitoring
Probieren Sie es selbst aus, indem Sie die Referenzimplementierung auf GitHub verwenden.
Protokollierung geplanter Aufgaben
"Der Dienst Task Scheduler ermöglicht es Ihnen, automatisierte Aufgaben auszuführen. Mit diesem Dienst können Sie jedes Programm so planen, dass es zu einem für Sie günstigen Zeitpunkt oder bei Eintreten eines bestimmten Ereignisses ausgeführt wird. Der Taskplaner überwacht die von Ihnen gewählten Zeit- oder Ereigniskriterien und führt die Aufgabe dann aus, wenn diese Kriterien erfüllt sind." - Über den Taskplaner.
Details zur Ausführung des Task-Planers werden im Windows-Ereignisprotokoll protokolliert, wenn Sie den Verlauf aller Aufgaben aktivieren. Diese Protokolle zeigen an, dass eine Aufgabe und die zugehörigen Aktionen gestartet und abgeschlossen wurden, z.B. "Taskplaner hat die Aufgabe 'IhreAufgabe' , Instanz '{72efc060-52b3-4a0a-a656-c7527c912082}' , Aktion 'C:Program FilesPowerShell7pwsh.exe' mit Rückgabewert 0 erfolgreich abgeschlossen.". Sie haben diese Protokolle mit dem folgenden Befehl aktiviert:
wevtutil set-log Microsoft-Windows-TaskScheduler/Operational /enabled:true
Weiterleitung von Windows-Ereignisprotokollen
Das Windows-Ereignisprotokoll wird vom Ops Agent an Cloud Logging weitergeleitet. Genauer gesagt, wird das Taskplaner-Ereignisprotokoll mit der folgenden Konfiguration weitergeleitet:
logging:
receivers:
windows_event_log:
type: windows_event_log
channels: [System, Application, Security, "Microsoft-Windows-TaskScheduler/Operational"]
receiver_version: 2
Überwachung inaktiver Aufgaben
Eine protokollbasierte Metrik verfolgt die Taskaktivität, indem sie die letzten Läufe auf der Grundlage der geplanten Taskprotokolle zählt. Wenn in den letzten 10 Minuten keine relevanten Protokolle gefunden werden, wird ein Alarm über das Fehlen einer Metrik ausgelöst:
resource "google_logging_metric" "failuretask_not_running" {
project = var.project_id
name = "task-runner/failuretask_run_count"
filter = <<EOT
resource.type="gce_instance"
jsonPayload.Channel="Microsoft-Windows-TaskScheduler/Operational"
jsonPayload.EventID="201"
jsonPayload.StringInserts="\FailureTask"
EOT
metric_descriptor {
metric_kind = "DELTA"
value_type = "INT64"
}
}
resource "google_monitoring_alert_policy" "failuretask_not_running" {
project = var.project_id
display_name = "FailureTask not running"
combiner = "OR"
conditions {
display_name = "FailureTask not running"
condition_absent {
filter = <<EOT
resource.type = "gce_instance" AND metric.type = "logging.googleapis.com/user/${google_logging_metric.failuretask_not_running.name}"
EOT
aggregations {
group_by_fields = [
"metadata.system_labels.name",
]
alignment_period = "300s"
per_series_aligner = "ALIGN_SUM"
cross_series_reducer = "REDUCE_COUNT"
}
duration = "600s"
trigger {
count = 1
}
}
}
}
Diskussion
Sie könnten in Erwägung ziehen, einen Windows-Agenten für die Benachrichtigung bei inaktiven Aufgaben zu verwenden. Diese Methode könnte zwar schnellere Ergebnisse liefern, aber Sie müssen sicherstellen, dass der Windows-Agent aktiv ist und läuft. Damit sind Sie gezwungen, eine andere Methode zur Überwachung von Prozessen außerhalb der virtuellen Maschine zu verwenden.
Darüber hinaus können Sie auch andere Mittel zur Ausführung der geplanten Aufgabe in Betracht ziehen, z. B. Cloud Scheduler oder Cloud Workflows. Diese Mittel bieten zusätzlichen Einblick in den Verlauf der Aufgabenausführung und ermöglichen eine Automatisierung, um die Pipeline bei Fehlern erneut auszulösen.
Fazit
Mit den auf Anwendungsprotokollen basierenden Warnrichtlinien für die Abwesenheit von Metriken ist es einfach, auf inaktive geplante Aufgaben aufmerksam zu machen. Darüber hinaus dient die Metrik als Kontrolle und Ausgleich in der Kundendaten-Pipeline, so dass andere Systeme mit der Metrik verknüpft werden können, um Probleme und Engpässe zu erkennen.
Bild von vined mind von Pixabay
Verfasst von
Laurens Knoll
As a cloud consultant I enjoy improving what your company does best. I enable your business using cloud technology and enable your engineers by applying software engineering practices to your infrastructure domain.
Unsere Ideen
Weitere Blogs
Contact



