2017-09-02 2 views
0

Ich versuche, ein einfaches ETW- und EventFlow-Beispiel einzurichten, mit dem bestimmte ETW-Anbieter überwacht werden können. In diesem Fall muss der Service Control Manager-ETW-Provider überwachen, wann Dienststart- und -stopp-Meldungen ausgegeben werden.Verwenden von EventFlow zum Überwachen des ETW-Ereignisses auf dem lokalen Computer

Ich habe die folgende Eingangskonfiguration für Tracing und ETW.

"inputs": [ 
{ 
    "type": "Trace", 
    "traceLevel": "Warning" 
}, 
{ 
    "type": "ETW", 
    "providers": [ 
    { 
     "providerName": "Service Control Manager" 
    } 
    ] 
}] 

Ich habe den folgenden Code, die Überwachung EventFlow mit der Inbetriebnahme wird.

static void Main(string[] args) 
    { 
     using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json")) 
     { 
      System.Diagnostics.Trace.TraceWarning("EventFlow is working!"); 
      Console.ReadLine(); 
     } 
    } 

Die Trace-Ereignis wird in der Konsole erscheinen, aber wenn ich starten und einen Dienst keine ETW Ereignisse erscheinen stoppen.

Ist EventFlow für dieses Szenario auf einem lokalen Computer entwickelt? Wenn ja, was fehlt mir in meiner Konfiguration oder meinem Code?

Die Konsole Prozess wird als Administrator ausgeführt wird und das Konto hat Zugriff auf die Gruppe Log Monitore Leistungsprotokollbenutzer und Leistung

Antwort

1

Wenn Sie ETW Ereignisse aus dem Service Control Manager hören möchten, werden Sie hören müssen für den Anbieter Microsoft-Windows-Dienste. Hier

ist, was ich habe in meinem eventFlowConfig.json

{ 
"inputs": [ 
    { 
    "type": "ETW", 
    "providers": [ 
     { "providerName": "Microsoft-Windows-Services" } 
    ] 
    } 
], 
"filters": [], 
"outputs": [ 
    { "type": "StdOutput" } 
], 
"schemaVersion": "2016-08-11", 
"extensions": [] 
} 

Um zu überprüfen, dass es geklappt hat, hörte ich auf und begann SQL Server-Dienste. Die Ereignisse wurden wie erwartet in der Konsole ausgegeben.

Als zusätzliche Sicherheitsüberprüfung können Sie Visual Studio Diagnoseereignisse Viewer für ETW-Ereignisse zu überwachen. Starten Sie den Viewer, klicken Sie auf das zu konfigurierende Zahnrad, fügen Sie den Namen des Anbieters in der Liste der ETW-Anbieter hinzu und wenden Sie ihn an. Sie sollten nun die gleichen Ereignisse sowohl im Viewer als auch in Ihrer Konsolenanwendung sehen können.

+0

Endlich um zu versuchen, dies funktioniert, arbeitete wie ein Charme. Es war sehr hilfreich, den Diagnoseereignis-Viewer als Plausibilitätsprüfung zu nennen. –

Verwandte Themen