Ho deciso di rivedere questa risposta accettata poiché lo stato dell'arte è cambiato in modo significativo negli ultimi 18 mesi e esistono alternative molto migliori.
Nuova risposta
MongoDB è una scelta scadente per una soluzione di registrazione scalabile. Ci sono le solite ragioni per questo (ad esempio, le prestazioni di scrittura sotto carico). Vorrei proporne un altro, ovvero che risolve solo un singolo caso d'uso in una soluzione di registrazione.
Una soluzione di registrazione efficace deve coprire almeno le seguenti fasi:
- Collezione
- Trasporti
- Elaborazione
- Stoccaggio
- Cerca
- Visualizzazione
MongoDB come scelta risolve solo il caso d'uso di archiviazione (anche se un po' male). Una volta analizzata l'intera catena, ci sono soluzioni più appropriate.
@KazukiOhta menziona alcune opzioni. La mia soluzione end-to-end preferita in questi giorni prevede:
- Spedizioniere Logstash per ritiro e trasporto
- Logstash &Riemann per l'elaborazione
- ElasticSearch per archiviazione e query
- Kibana3 per la visualizzazione
L'uso sottostante di ElasticSearch per l'archiviazione dei dati di registro utilizza l'attuale migliore soluzione NoSQL per il caso d'uso di registrazione e ricerca. Il fatto che Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 siano sotto l'ombrello di ElasticSearch rende un argomento ancora più convincente.
Poiché Logstash può anche fungere da proxy Graphite, è possibile creare una catena molto simile per il problema associato di raccolta e analisi delle metriche (non solo dei log).
Vecchia risposta
Le raccolte mongoDB limitate sono estremamente popolari e adatte per la registrazione, con il vantaggio aggiuntivo di essere "senza schema", che di solito è un adattamento semantico per la registrazione. Spesso sappiamo solo cosa vogliamo per accedere bene a un progetto o dopo che alcuni problemi sono stati rilevati in produzione. I database relazionali o gli schemi rigorosi tendono a essere difficili da modificare in questi casi e i tentativi di renderli "flessibili" tendono solo a renderli "lenti" e difficili da usare o comprendere.
Ma se desideri gestire i tuoi registri al buio e avere i laser attivi e far sembrare che tu venga dallo spazio, c'è sempre Graylog2 che utilizza MongoDB come parte della sua infrastruttura generale ma fornisce molto di più in cima come un formato comune ed estensibile, un server di raccolta dei registri dedicato, un'architettura distribuita e un'interfaccia utente originale.