sql >> Databasteknik >  >> NoSQL >> MongoDB

Vilken NoSQL-databas ska jag använda för loggning?

Jag har bestämt mig för att revidera det här accepterade svaret eftersom den senaste tekniken har förändrats avsevärt under de senaste 18 månaderna och det finns mycket bättre alternativ.

Nytt svar

MongoDB är ett subpar val för en skalbar loggningslösning. Det finns de vanliga orsakerna till detta (skrivprestanda under belastning till exempel). Jag skulle vilja lägga fram en till, som är att den bara löser ett enstaka användningsfall i en loggningslösning.

En stark loggningslösning måste täcka åtminstone följande steg:

  • Samling
  • Transport
  • Bearbetar
  • Lagring
  • Sök
  • Visualisering

MongoDB som ett val löser bara Storage-användningsfallet (om än något dåligt). När hela kedjan har analyserats finns det mer lämpliga lösningar.

@KazukiOhta nämner några alternativ. Min föredragna helhetslösning nuförtiden innebär:

  • Logstash-Forwarder för insamling och transport
  • Logstash &Riemann för bearbetning
  • ElasticSearch för lagring och frågor
  • Kibana3 för visualisering

Den underliggande användningen av ElasticSearch för lagring av loggdata använder den nuvarande bästa NoSQL-lösningen för loggning och sökning. Det faktum att Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 är under paraplyet av ElasticSearch ger ett ännu mer övertygande argument.

Eftersom Logstash också kan fungera som en grafitproxy, kan en mycket liknande kedja byggas för det associerade problemet med att samla in och analysera mätvärden (inte bara loggar).

Gammalt svar

MongoDB Capped Collections är extremt populära och lämpliga för loggning, med den extra bonusen att de är "schema less", vilket vanligtvis är en semantisk passform för loggning. Ofta vet vi bara vad vi vill logga in väl i ett projekt, eller efter att vissa problem har hittats i produktionen. Relationsdatabaser eller strikta scheman tenderar att vara svåra att ändra i dessa fall, och försök att göra dem "flexibla" tenderar bara att göra dem "långsamma" och svåra att använda eller förstå.

Men om du vill hantera dina loggar i mörker och ha lasrar igång och få det att se ut som om du kommer från rymden, finns det alltid Graylog2 som använder MongoDB som en del av sin övergripande infrastruktur men ger en hel del mer ovanpå, t.ex. vanligt, utökningsbart format, en dedikerad server för logginsamling, distribuerad arkitektur och ett snyggt användargränssnitt.



  1. Använder du Active Record-generatorer efter Mongoid-installation?

  2. Är det möjligt att få enstaka resultat sammanlagt?

  3. Återställ en MongoDB-databas med mongorestore

  4. Django ValueError:Ingen rutt hittades för sökväg 'ws/chat//'