it-swarm.com.de

Anmelden in einer Textdatei oder Datenbank?

Wann sollte ich die Datenbank für die Protokollierung verwenden und wann Textdateien?
Ich sehe, dass Webserver und Webframeworks (die Ihre App intern verwendet) normalerweise (immer?) Anforderungen und Fehler standardmäßig in Textdateien protokollieren. Aber ich sehe, dass sich Leute, die ihre App um diese Server und Frameworks herum entwickeln, manchmal in die Datenbank einloggen (sogar in die Hauptdatenbank der App, nicht in eine externe).
Vielleicht gibt es auch einen Unterschied zwischen Debug-Protokolle und Überwachungsprotokollen - Ich habe diese Klassifizierung irgendwo auf dieser Site gelesen.

28
Nakilon

Ganz allgemein ist die Protokollierung in einer Textdatei viel schneller als die Protokollierung in einer Datenbank. Dies ist der Hauptaspekt der Protokollierung, den Sie berücksichtigen müssen.

Der Grund, warum Sie sich bei einer Datenbank anmelden, liegt eher darin, dass Sie die Ergebnisse abfragen möchten. Die Suche nach bestimmten Protokollinformationen ist in einer Datenbank einfacher, insbesondere wenn Sie Kontextinformationen protokollieren, mit denen Protokolleinträge zusammengefasst werden können. Es ist normalerweise auch einfacher, auf eine zentrale Datenbank zuzugreifen als auf eine Protokolldatei auf einem Server, die möglicherweise gesichert ist und auf die nicht zugegriffen werden kann.

Ideal wäre es, sich lokal in einer Datei anzumelden und diese Daten dann bei Bedarf zur Überprüfung in eine Datenbank zu migrieren.

Jetzt ist Auditing ein ganz anderes Biest. Obwohl das Konzept der Protokollierung ähnlich ist, muss die Überwachung normalerweise lange aufbewahrt werden (im Gegensatz zu Protokolldateien, die zum Debuggen oder Verfolgen verwendet werden und nach Belieben gelöscht werden können). Audits sind da, um wichtige Informationen zu zeigen. Sie protokollieren weitaus weniger Überwachungsinformationen und weniger häufig als die normale Protokollierung, sodass die Leistung kein Problem darstellt. Aus diesem Grund werden die Vorteile des Schreibens dieser Überwachungsinformationen in eine zentrale Datenbank gesehen.

19
gbjbaanb

Es gibt keinen einheitlichen Ansatz, und aus Gründen der Ausfallsicherheit möchten Sie manchmal mehrere Ansätze verwenden. In Ihrem Beispiel möchten Sie möglicherweise Debug-Protokolle in einer Datei speichern und Überwachungsprotokolle in einer Datenbank speichern.

Application Breadcrumbs

Vorteile: Einfach zu implementieren und für den Benutzer sofort sichtbar

Nachteile: Informationen bleiben nur erhalten, solange die Anwendung aktiv ist

Textdatei

Vorteile: Einfach zu implementieren

Nachteile: Es muss sichergestellt werden, dass keine Dateisperrung erfolgt. Was tun, wenn der Speicherplatz auf dem Protokolllaufwerk knapp wird?

Ereignisprotokoll

Vorteile: Einfach zu implementieren

Nachteile: Das Ereignisprotokoll wird möglicherweise voll, wenn es nicht korrekt eingerichtet wird, oder alte Protokolle können aufgrund von Aufbewahrungsrichtlinien/Löschvorgängen verloren gehen.

Datenbank

Vorteile: Einfach zu implementieren

Nachteile: Mehr DB-Verkehr. Wie protokolliere ich einen DB-Verlust oder ein anderes DB-Problem?

Messaging (MQ)

Vorteile: Feuer und vergessen

Nachteile: Eine weitere Ebene, die schief geht. Erfordert die Einrichtung

13
Robbie Dee

Überwachungsprotokolle müssen für Überwachungszwecke eine vollständige Rückverfolgbarkeit von Vorgängen über einen längeren Zeitraum gewährleisten, um den Inhalt Ihrer Datenbank vollständig zu rechtfertigen.

In einigen Fällen (z. B. bei Finanzanwendungen) müssen diese Protokolle möglicherweise die Einhaltung gesetzlicher Anforderungen wie Aufbewahrung (in einigen Ländern für 10 Jahre) oder Unveränderlichkeit sicherstellen. Da diese Protokolle den Inhalt der Datenbank auf Anwendungsebene rechtfertigen müssen, ist es üblich, sie in der Datenbank zu speichern, wo der Zugriff gesteuert werden kann, um unbefugte Änderungen zu vermeiden.

Andere Protokolle , wie Überwachungsprotokolle oder Sicherheitsprotokolle, müssen häufig mit Leistungs- und Volumenbeschränkungen umgehen. Diese werden im Allgemeinen in eine Datei geschrieben, da sie schneller zu schreiben sind (kein Transaktionsverwaltungsaufwand), einfacher offline zu archivieren und einfacher in externe Überwachungstools zu integrieren sind SIEM Tools.

Es ist zu beachten, dass diese Art von Protokollen zwar zum Nachweis der Zuverlässigkeit von Überwachungsprotokollen verwendet werden kann (z. B. kein nicht autorisierter Zugriff), sie jedoch im Allgemeinen kürzere Aufbewahrungsbeschränkungen aufweisen (z. B. zwischen 6 Monaten und 2 Jahren für Strafverfolgungszwecke für Telekommunikationsprotokolle). wenn überhaupt eine Einschränkung.

2
Christophe

Einer der vielen Gründe, db für die Debug-Protokollierung zu verwenden, ist, wenn Sie keinen Zugriff auf die Anwendung oder den Webserver haben, um die Ereignisanzeige oder Textdateien anzuzeigen

Überwachungsprotokolle unterscheiden sich von Debug-Protokollen im Kontext der Webanwendung. In einigen Anwendungen müssen Sie sie möglicherweise dem Endbenutzer anzeigen, damit sie zum einfachen Abrufen in die Datenbank aufgenommen werden.

Sie können DB Tools auch zum Filtern und einfachen Anzeigen verwenden.

1
Muhammad Raja