1

我们正在指定一个系统,它将索引和存储数以万计的 Syslog 消息。这些是文本消息,具有一些属性(系统名称、日期/时间、消息类型、消息正文),每个属性通常为 100 到 1500 个字节。

我们每天生成 2 到 10 GB 的此类消息,并且需要至少保留 30 天。

splunk 系统有一个非常棒的索引和文档压缩系统。

用什么?

我想到了mongodb,但是对于这么小的文档似乎不合适。

SQL Server 是一种可能性,但对于此目的似乎不是超级有效。

带有lucene的文本文件?-- windows 文件系统并不总是喜欢有无数文件的目录

建议?

谢谢!

4

5 回答 5

2

我想到了mongodb,但是对于这么小的文档似乎不合适

有一家名为Boxed Ice的公司实际上使用 MongoDB构建了一个服务器监控系统。我认为这绝对是合适的。

这些是文本消息,具有一些属性(系统名称、日期/时间、消息类型、消息正文),每个属性通常为 100 到 1500 个字节。

从 MongoDB 的角度来看,我们会说您正在存储大量具有一些属性的小文档。在这种情况下,MongoDB 有几个好处。

  1. 它可以无缝地处理不断变化的属性。
  2. 它将灵活地处理不同的类型。

我们每天生成 2 到 10 GB 的此类消息,并且需要至少保留 30 天。

这完全在 MongoDB 可以处理的数据类型范围内。有几种不同的方法来处理 30 天的保留期。这些将取决于您的报告需求。我会在小组中四处寻找想法。

根据与我共事过的人,这种类型的插入量大的日志记录是 Mongo 非常适合的地方之一。

于 2011-02-24T18:49:57.613 回答
1

Graylog2 是一个构建在 MongoDB 之上的开源日志管理工具。我相信日志服务提供商 Loggy 也使用 MongoDB 作为他们的后端存储。因此,使用 MongoDB 进行日志记录的产品很少。

应该可以存储 Lucene 分析器返回的 ngram,以便更好地进行文本搜索。尽管有大量文件,但不确定可行性。什么是主要报告用例?

于 2011-02-25T02:58:57.907 回答
1

似乎您需要类似 mongodb 全文搜索服务器的东西,它可以让您在不损失性能的情况下搜索不同的属性。你可以试试 MongoLantern:http: //sourceforge.net/projects/mongolantern/。虽然它处于 alpha 阶段,但为我提供了 5M 记录的最佳结果。

让我知道这是否符合您的目的。

于 2011-12-15T13:12:36.147 回答
0

我会强烈考虑使用LuceneSolr

Lucene 专为全文搜索而构建,并提供了大量额外的有用功能,您可能会发现这些功能在您的应用程序中很有用。作为奖励,Solr 的设置和配置非常简单。(而且搜索速度超级快)

他们不会为每个条目保留一个文件,因此您不必担心数以万计的文件。

没有一个免费的数据库选项专门用于全文搜索——不要试图强迫他们做你想做的事。

于 2011-02-24T21:01:58.947 回答
0

我认为您应该部署自己的(内部网范围的)Grafana、Logstash + ElasticSearch 堆栈

一旦你有了一个灵活的模式、保留和一个美妙的用户界面,你就可以使用 Grafana 为你的数据进行设置。

于 2016-11-28T19:03:59.203 回答