【发布时间】: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