sql >> Database >  >> NoSQL >> MongoDB

Welke NoSQL-database moet ik gebruiken voor het loggen?

Ik heb besloten dit geaccepteerde antwoord te herzien omdat de stand van de techniek de afgelopen 18 maanden aanzienlijk is veranderd en er veel betere alternatieven bestaan.

Nieuw antwoord

MongoDB is een ondermaatse keuze voor een schaalbare logging-oplossing. Daar zijn de gebruikelijke redenen voor (schrijfprestaties onder belasting bijvoorbeeld). Ik wil er nog één naar voren brengen, namelijk dat het slechts een enkele use-case oplost in een logging-oplossing.

Een sterke logging-oplossing moet ten minste de volgende fasen dekken:

  • Collectie
  • Vervoer
  • Verwerking
  • Opslag
  • Zoeken
  • Visualisatie

MongoDB als keuze lost alleen de opslag-use case op (zij het enigszins slecht). Zodra de volledige keten is geanalyseerd, zijn er meer geschikte oplossingen.

@KazukiOhta noemt een paar opties. Mijn favoriete end-to-end-oplossing is tegenwoordig:

  • Logstash-expediteur voor verzameling en transport
  • Logstash &Riemann voor verwerking
  • ElasticSearch voor opslag en zoekopdrachten
  • Kibana3 voor visualisatie

Het onderliggende gebruik van ElasticSearch voor de opslag van loggegevens maakt gebruik van de huidige beste NoSQL-oplossing voor het loggen en zoeken. Het feit dat Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 onder de paraplu van ElasticSearch vallen, zorgt voor een nog overtuigender argument.

Omdat Logstash ook kan fungeren als een Graphite-proxy, kan een zeer vergelijkbare keten worden gebouwd voor het bijbehorende probleem van het verzamelen en analyseren van statistieken (niet alleen logs).

Oud antwoord

MongoDB Capped Collections zijn extreem populair en geschikt voor logging, met als extra voordeel dat ze 'schemaloos' zijn, wat meestal een semantische fit is voor logging. Vaak weten we pas goed wat we willen loggen in een project, of nadat er bepaalde problemen in de productie zijn geconstateerd. Relationele databases of strikte schema's zijn in deze gevallen vaak moeilijk te veranderen, en pogingen om ze 'flexibel' te maken, hebben de neiging ze 'traag' en moeilijk te gebruiken of te begrijpen te maken.

Maar als je je logs in het donker wilt beheren en lasers wilt laten werken en het lijkt alsof je uit de ruimte komt, dan is er altijd Graylog2 die MongoDB gebruikt als onderdeel van zijn algehele infrastructuur, maar nog veel meer biedt, zoals een gemeenschappelijk, uitbreidbaar formaat, een speciale server voor het verzamelen van logboeken, gedistribueerde architectuur en een funky gebruikersinterface.



  1. Hoe zoek je naar sleutels met een waarde? Haal bijvoorbeeld alle SLEUTELS op waarvan de waarde een of andere waarde is

  2. Hoe tel je het aantal sleutels dat overeenkomt met een patroon?

  3. Datum vergelijking in mongodb

  4. Redis gepijplijnde uitvoeringsvolgorde