MongoDB zum Speichern verschiedener Protokolldateien (Schema-) Protokolldateien

StackOverflow https://stackoverflow.com/questions/2018857

  •  19-09-2019
  •  | 
  •  

Frage

Denken Sie, dass die Verwendung einer MongoDB -JSON -Datenbank zum Speichern von Protokolldateien von Anwendungen eine gute Idee ist und warum?

Der einzige Vorteil für mich ist die Schema -Abstraktion, aber ich denke, es ist auch eine Schwäche, die wir nicht für die Integrität einer Protokolldatei sicherstellen können.

War es hilfreich?

Lösung

Offensichtlich bin ich voreingenommen (ich arbeite an MongoDB), aber ich denke, es funktioniert sehr gut für Protokolle.

Gründe dafür:

  • Es ist schnell für Einsätze und Updates ... Sie können Tausende pro Sekunde machen
  • Neben normalen Abfragen können Sie Analysen ausführen und Berichte mit JavaScript erstellen. Sie könnten einen Cron -Job haben, der nächtliche Läufe läuft und Ihren Protokollen schöne MapReduce -Dinge macht.
  • Sie können Kappensammlungen verwenden, die Sammlung sind, die wie Warteschlangen wirken, um nur die neuesten N -KBS/MBS/GBS von Protokollen zu behalten

Ich bin mir nicht sicher, was Sie meinen, "sicherstellen Sie die Integrität einer Protokolldatei" ... meinen Sie, Sie machen sich Sorgen, dass Sie nicht wissen, welche Felder das Dokument, das Sie ziehen, herausgegeben hat? Wenn ja, werden Sie feststellen, dass es in einer relationalen Datenbank keine schwierigere Behandlung mit Nullfeldern und viel flexibler ist.

Siehe auch: Der MongoDB -Blog -Beitrag zum Protokollieren.

Andere Tipps

Ich verwende MongoDB, um Protokolle aus vielen Anwendungen zu speichern, und es funktioniert bisher sehr gut.

Vielleicht möchten Sie sich das ansehen Folgen von einer Präsentation zum Protokollierungsanwendungsverhalten bis zum MongoDB Das habe ich bei Mongo SV und beim letzten MongoDB -SF -Treffen für mehr Hintergrundinformationen darüber gegeben, warum ich denke, dass es gut für die Protokollierung ist, sowie für Informationen zu Bibliotheken für Java, Python, Ruby, PHP und C#, die die Protokollierung bei Mongodb unterstützen.

Ich bin jetzt der Hauptpraktikum in Log4Mongo-Java, Log4J Appeders für MongoDB. Es ist wahrscheinlich nicht allzu überraschend, dass ich das verwende.

In Bezug auf die Protokollintegrität gehe ich davon aus, dass Sie das Vertrauen meinen, dass es nach dem Schreiben nicht geändert wurde. Eine Option, die Sie zumindest mit Log4Mongo-Java haben, um Protokollierungsereignisse in einer Datenbank zu speichern, die eine Authentifizierung erfordert. Dies würde die Anzahl der Benutzer, die Ereignisse hinzufügen, löschen oder aktualisieren können, einschließlich einschränken.

Außerdem können Sie einen Replikationssklave einrichten, der fest abgeschlossen ist. Häufige Backups des Sklaven würden zumindest die Zeit einschränken, in der der Satz protokollierter Ereignisse geändert werden könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top