EM Agent Logging Engine

Daniel White
2026-01-06T12:12:17Z

Konfiguration

Aktuell lassen sich die Einstellungen für das Log des Agentenprofils nicht in der EM-Webkonsole konfigurieren, einzig die Anzahl der normalen Logfiles lassen sich über die EM-Webkonsole steuern. (alter Eintrag "Maximale Anzahl von Logeinträgen", Standardwert liegt bei 100)

Die explizite Konfiguration findet in der Datei selbst unter "%ProgramData%\Matrix42\Enterprise Manager Agent\Settings\EmProfile.json" statt. Im Abschnitt "Em_Properties" können folgende Einstellungen vorgenommen werden:

Name | Standard | Beschreibung
MaxLogFileSizeInKb | 1024 | Maximale Größe einer Logdatei in Kilobyte
MaxLogFileNumber | 100 | Maximale Anzahl von Logdateien (aktuell der einzig konfigurierbare Wert)
MaxDebugLogFileSizeInKb | 4096 | Maximale Größe einer Debug-Logdatei in Kilobyte
MaxDebugLogFileNumber | 5 | Maximale Anzahl von Debug-Logdateien

Format der Logdateien

Die beiden EmAgent Log-Dateien (EmAgent.log & EmAgentDebug.log) sind im CM-Trace-Format (vgl. SCCM) aufgebaut. D.h., die Log- Dateien können mittels des "Configuration Manager Trace Log Tool" betrachtet werden.

Debug- und normale Logs

Das EmAgentDebug.log enthält alles, was sich auch im EmAgent.log befindet, zuzüglich der Dinge, welche die Entwickler an speziellen Stellen des Programmes zusätzlich mit-loggen wollen. Dabei soll es bei der Programmentwicklung und Fehlersuche erweiterte Informationen zur Verfügung stellen.

Die Logs befinden sich auf jedem Client unter:

"%ProgramData%\Matrix42\Enterprise Manager Agent\Log\EmAgent.log" &

"%ProgramData%\Matrix42\Enterprise Manager Agent\Log\EmAgentDebug.log"

Das EmAgentDebug.log ist standardmäßig ausgeschaltet! Es kann über folgende 2 Wege eingeschaltet werden:

1. Der EmAgent wird mit dem Parameter "/debug" gestartet

2. In der "EmAgent.exe.config" (befindet sich im Installationsverzeichnis des Agenten) existiert ein Schalter "DoDebugLogging". Wenn dieser den Wert "true" hat, dann wird das Debug Log geschrieben

Auswirkung der Konfiguration

Überschreitet eines der beiden oben erwähnten Logs seine Maximalgröße (MaxLogFileSizeInKb bzw. MaxDebugLogFileSizeInKb), wird überprüft, ob die maximale Anzahl von Log Dateien (MaxLogFileNumber bzw. MaxDebugLogFileNumber) überschritten ist. Wenn ja, wird die älteste Log Datei gelöscht.

Die bestehenden Log-Dateien werden so nummeriert, dass sie zeitlich aufsteigen. Dabei wird der Name der Datei mit einem Anhang versehen (z.B.: EmAgent_00001.log - EmAgent_00100.log).

Wie kann man Fehler in Aufträgen analysieren?

Im EmAgent.log erscheint ein Eintrag "Task <Nummer> "<Auftragsbeschreibung>" finished with error". Dieses wird aktuell nicht als Fehler im Ablauf des Agenten bewertet (und ist somit auch nicht im CM-Trace- Log rot eingefärbt). Um mehr Details zu einem abgearbeiteten Auftrag zu erhalten, muss man sich die Auftragsdatei anschauen. Alle Auftragsdateien befinden sich unter folgendem Pfad:

"%ProgramData%\Matrix42\Enterprise Manager Agent\Tasks\Task_<Nummer>.json"

Sonstige Bereiche der Auftragsdatei

Diese Datei ist so aufgebaut, dass sie am Anfang die Beschreibung des Auftrags enthält (Abschnitt "Task") und darunter im Abschnitt "Actions" die Beschreibung aller Aktionen, die in diesem Auftrag ausgeführt werden sollen. Danach kommen alle zugeordneten Variablen im Abschnitt "Variables" und Umgebungsvariablen im Abschnitt "EnvironmentVariables". Anschließend folgt der Gesamtfortschritt im Abschnitt "Progress" und der Gesamtzustand des Auftrags im Abschnitt "Status", der für die einzelnen Aktionen einen Zustand bereit hält (Dieser kann ebenfalls in der EM-Webkonsole eingesehen werden).

Log Informationen eines Auftrages

Der Abschnitt "Logs" ist der für die Fehleranalyse interessanteste Teil der Auftragsdatei, denn hier findet man detaillierte Informationen zu einzelnen Schritten der Auftragsabarbeitung, inklusive den Gründen für ein fehlschlagen des Auftrages (u.a. auch mit Systemfehlermeldungen - z.B. dass ein Benutzerkonto nicht bekannt ist oder eine AD-Gruppe nicht hinzugefügt werden konnte).

Diese sind, neben den Sonderaktionen (Starten des Auftrags im Unterabschnitt "StartTask" und Beenden des Auftrags im Unterabschnitt "FinishTask"), nach den einzelnen Aktionen des Auftrags gruppiert (Unterabschnitt "Action_<Nummer>"), wobei die <Nummer> die ID aus der Tabelle "TaskEm_Actions" ist, welche die Aktion im Auftrag definiert.