Zugriff auf Windows-Protokolldateien von Linux

3685
damir

Ich versuche, von Linux aus auf Windows-Protokolldateien zuzugreifen. Bisher habe ich zwei verschiedene Ansätze gefunden.

  1. Installieren Sie den Syslog-Server auf einem Windows-Computer, und lassen Sie Windows Protokolldateien an Linux senden. Lesen Sie diese Dateien
  2. Fernzugriff auf Protokolldateien mit der wmi-Implementierung für Linux.

Weiß jemand über Einschränkungen dieser beiden Ansätze, bevor ich in die Implementierung eintauche?

3

3 Antworten auf die Frage

2
Kurt Pfeifle

Mein Bauchgefühl ist, dass der zweite Weg leichter zu folgen ist. Der erste Weg besteht darin, zwei verschiedene Systeme zu berühren, von denen jedes seine eigenen Macken hat:

  • Installation + Remote-Syslog-Server unter Linux einrichten;
  • veranlassen, dass Windows die Protokolle an den Remote-Syslog-Server sendet;
  • Richten Sie auch die Syslog-Lesung unter Linux ein

Dieser Ansatz scheint mehr "Fehlerpunkte" zu schaffen (stellen Sie sich ein Netzwerkproblem vor, das verhindert, dass Windows seine Ereignisse im Remote-Syslog protokolliert).

Für die erste Route muss nur ein wmi-Client für Linux installiert werden. Ich würde empfehlen wbemcli. (Unter Debian / Ubuntu versuchen apt-get install wbemcli.) Damit bleibt die Windows-Protokollierung (die meiner Erfahrung nach absolut solide ist) unverändert. Selbst wenn Sie vorübergehende Netzwerkprobleme haben, kehrt der Zugriff auf nicht gefährdete Protokolle zurück, nachdem das Netzwerk wieder voll funktionsfähig war.

Wie Sie vielleicht wissen, handelt es sich bei WMI nur um die Implementierung von WBEM (Web-based Enterprise Management) von Microsoft . WBEM wiederum ist ein Industriestandard, der vom Konsortium Distributed Management Task Force definiert wird .

Es gibt einige Unterschiede in der WMI von MS gegenüber dem WBEM-Standard (wie es meistens der Fall ist, wenn MS sagt, dass sie einen Standard implementieren). Beispielsweise verwendet es ein anderes Transportprotokoll als WBEM (das WBEM verwendet normalerweise HTTP über TCP / 5988 oder HTTPS über TCP / 5989). WMI verwendet auch etwas andere Namespaces, ansonsten sind sie meist identisch.

Gute Antwort! Gibt es beim WMI / WBEM-Ansatz irgendwelche Hindernisse, z. B. müssen auf jeder Windows-Maschine zusätzliche Elemente eingerichtet werden. Zum Beispiel zusätzliche Rechte, zusätzliche Firewall-Regeln usw.? Mit WMI kann ich nur auf Ereignisprotokolle zugreifen, nicht etwa auf Exchange-Protokolle, oder? damir vor 13 Jahren 0
@damir: Sorry, ich kenne die Antwort auf Ihre Frage "Exchange-Protokolle" nicht. Ich hatte nie mit Exchange zu tun. Kurt Pfeifle vor 13 Jahren 0
1
Aaron Digulla

Ich kann die beiden nicht kommentieren, aber ich kenne einen dritten: Installieren Sie einen kleinen Server unter Windows, der das Protokoll lesen kann und der auf Abfragen reagiert oder neue Ereignisse an Linux weiterleitet. Ich habe Python mit dem win32-Modul für solche Aufgaben verwendet.

Das ist ein zusätzlicher Verwaltungsaufwand. Wenn sich nichts anderes als zuverlässig erweist, werde ich Ihre Methode verwenden damir vor 13 Jahren 0
@Aaron Digulla, gibt es eine Dokumentation, wie das geht? Anstatt abzufragen oder abzufragen, möchte ich, dass mein Linux-Computer nur Windows-Anmeldeereignisse von einem Domänencontroller abhört, sodass dieser Ansatz geeigneter erscheint. Vielen Dank. Nagev vor 6 Jahren 0
@Nagev Sie müssen sich mit den Windows-APIs vertraut machen, um auf das Ereignisprotokoll zugreifen zu können. Hierfür gibt es Beispiele: https://stackoverflow.com/questions/11219213/read-specific-windows-event-log-event Als Nächstes müssen Sie einen Dienst schreiben, mit dem Sie dies von einem Linux-Client aus lesen können. Ein einfacher REST-basierter Dienst wird funktionieren (es gibt Unmengen von Beispielen, wie man REST mit Python ausführt, einfach google). Stellen Sie einfach sicher, dass Sie eine Art Verschlüsselung für vertrauliche Daten verwenden (verwenden Sie https: //, um auf den REST-Server zuzugreifen). Aaron Digulla vor 6 Jahren 0
0
alpha_989

Ja .. Sie benötigen git-bashfür Windows einen SSH-Server (ich würde empfehlen bitvise sshd, keine persönlichen Verbindungen, aber es ist sehr stabil und getestet).

Sobald Sie das getan haben, müssen Sie den git-bashWindows-Pfad anlegen . Dann können Sie verwenden

ssh username@10.15.3.3 'bash -c "tail -n 20 -F /c/Users/username/Desktop/logging_file.log"'

Weitere Informationen finden Sie hier: https://stackoverflow.com/a/50936183/4752883