【问题标题】:Django, Haystack, Solr, MongoDB architecture decisionDjango、Haystack、Solr、MongoDB 架构决策
【发布时间】:2012-11-28 19:15:24
【问题描述】:

我正在构建一个日志查看实用程序,它将处理 TB 日志中的实时搜索。我决定将日志存储在 Solr 中并将其用作搜索引擎。我将在我的项目中使用 Django 作为框架。为了在 Django 中使用 Solr,我看到有 haystack。现在我的架构会是这样的。

             Store  Index         Search             Show
Log Stream ----------------> Solr --------> Haystack ------> Django

我的日志是普通的linux服务器日志,如网络、操作、错误等。Syslog正在发送日志。我将允许基于所有日志行进行过滤。我将允许按列排序,例如:ip 列、日期列等。

示例日志:

Dec 11 13:24:03 2012 [firewall] R0 SRC=192.168.9.11 DST=192.168.11.29 LEN=83 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=36904 DPT=161 LEN=63 

我想问是使用 MongoDB 作为日志中的存储、过滤和搜索更好还是 Solr 会做得更好。我也想到了 Elasticsearch。在这种情况下,您的选择是什么。

提前致谢。

【问题讨论】:

  • 为什么需要 MongoDB? Solr 已经为您存储了日志。
  • 例如这里:highscalability.com/… 他们使用 hdfs 来存储日志,我将其替换为 MongoDB。 Solr 只是索引。
  • 基本上 SOLR 可以索引和存储您的数据,具体取决于配置。只需确保存储了 SOLR 架构中您希望数据可检索(不仅可搜索)的那些字段。
  • 还有一件事:如您所说,hdfs 可用于存储(复制等),以及运行 map-reduce 作业以发现数据中的新内容。然后结果可以存储在 MongoDB 或 SOLR 中——这是您的选择,取决于您尝试解决的任务。
  • 为了将 Django 集成到 Solr,你可以试试这个:github.com/sophilabs/django-solr 优点是 django-solr 模拟了经典的 Django ORM 接口,以防你习惯使用它。

标签: django mongodb logging solr django-haystack


【解决方案1】:

为什么要重新发明轮子? Logstash,具有惊人的界面:Kibana。您可以使用 rsyslog 来提供它。但是,如果您真的想要/需要重新实现日志服务器,Logstash 使用 ElasticSearch。我会去的。

【讨论】:

  • 这是我的高级项目,所以我必须这样做:)
猜你喜欢
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
相关资源
最近更新 更多