sql >> Databáze >  >> NoSQL >> MongoDB

Kterou databázi NoSQL bych měl použít pro protokolování?

Rozhodl jsem se revidovat tuto přijatou odpověď, protože stav techniky se za posledních 18 měsíců výrazně posunul a existují mnohem lepší alternativy.

Nová odpověď

MongoDB je podřadnou volbou pro škálovatelné řešení protokolování. Existují pro to obvyklé důvody (například výkon zápisu při zatížení). Rád bych uvedl ještě jeden, a to ten, že řeší pouze jeden případ použití v řešení protokolování.

Silné řešení protokolování musí pokrývat alespoň následující fáze:

  • Sbírka
  • Doprava
  • Zpracování
  • Úložiště
  • Hledat
  • Vizualizace

MongoDB jako volba řeší pouze případ použití úložiště (i když poněkud špatně). Jakmile je celý řetězec analyzován, existují vhodnější řešení.

@KazukiOhta zmiňuje několik možností. Moje preferované end-to-end řešení v těchto dnech zahrnuje:

  • Logstash-Forwarder pro sběr a přepravu
  • Logstash &Riemann pro zpracování
  • ElasticSearch for Storage &Queries
  • Kibana3 pro vizualizaci

Základní použití ElasticSearch pro ukládání dat protokolů využívá aktuální nejlepší řešení NoSQL pro případ použití protokolování a vyhledávání. Skutečnost, že Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 jsou pod záštitou ElasticSearch, je ještě přesvědčivějším argumentem.

Protože Logstash může fungovat také jako Graphite proxy, lze vytvořit velmi podobný řetězec pro související problém shromažďování a analýzy metrik (nejen protokolů).

Stará odpověď

MongoDB Capped Collections jsou extrémně oblíbené a vhodné pro protokolování, s přidaným bonusem, že jsou „méně schématu“, což je pro protokolování obvykle sémantické. Často víme, co chceme, dobře přihlásit do projektu nebo poté, co byly zjištěny určité problémy ve výrobě. Relační databáze nebo přísná schémata bývá v těchto případech obtížné změnit a pokusy učinit je „flexibilními“ mají tendenci pouze učinit je „pomalými“ a obtížně použitelné nebo pochopitelné.

Ale pokud byste chtěli spravovat své protokoly ve tmě a mít spuštěné lasery, aby to vypadalo, jako byste byli z vesmíru, vždy je tu Graylog2, který používá MongoDB jako součást své celkové infrastruktury, ale navíc poskytuje mnohem více, jako je např. běžný, rozšiřitelný formát, vyhrazený server pro sběr protokolů, distribuovaná architektura a funky uživatelské rozhraní.



  1. Nutí použití indexu 2dsphere na schéma mongoose, aby bylo vyžadováno pole umístění?

  2. Jak vypsat všechny databáze Redis?

  3. mongoexport souhrnný export do souboru csv

  4. Jak zajistit, aby vaše MongoDB clustery přežily výpadky Amazon AWS?