为 iptables ulogd 选择正确的数据库/存储引擎

为 iptables ulogd 选择正确的数据库/存储引擎

我正在寻求一些帮助来为 iptables ulogd 设置选择数据库后端。

我们将用 iptables 替换我们当前的专有防火墙解决方案,其中一项要求是记录防火墙转发的所有流量。

查看我们当前的日志,我们每 24 小时记录大约 4000000-5000000 个条目,因此数据库的插入速度应该很快。

该服务器是 Debian Wheezy 设置,因此我们更喜欢使用可以通过 aptitude 维护的数据库。

我们目前正在研究以下内容:

  • Mysql 5.5(Debian 存储库)
  • MariaDB 5.5
  • Percona 5.6
  • SQLite 3

选择数据库之后,还有一个问题:哪种存储引擎适合我们的工作负载?

我一直在考虑让 ulogd 插入内存​​引擎,然后间歇地将数据移动到基于磁盘的存储引擎数据库,以前有人做过类似的事情吗?

答案1

我认为答案取决于你需要用这些数据做什么。如果你正在寻找实时处理(搜索),那么你可能需要一个(可扩展的)搜索引擎,比如 Elasticsearch 或 Solr。以下两个链接可能会让你开始使用这两个:

这是使用 Elasticsearch 的情况:http://blog.sematext.com/2013/09/24/presentation-on-centralizing-logs/

这是使用 Solr 的:http://blog.sematext.com/2013/11/11/presentation-solr-for-indexing-and-searching-logs/

如果您需要的是批处理,那么使用 Hadoop 可能更好。不过您也可以设计一个可以同时完成这两项功能的设计。搜索引擎也包含越来越多的分析功能,例如 Elasticsearch 的聚合功能。

相关内容