对于审计日志,哪种技术是最好的?

d5vmydt9  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(422)

我需要选择一种技术来存储和检索审计日志(当添加、删除、修改某些内容时)。场景是:日志每天可能会增加1000万条,并通过一些关键字进行检索。所以我的问题是:
我应该使用哪种技术,比如elk(elasticsearch、logstash、kibana)或者mysql或者redis或者其他更好的技术,为什么。

neekobn8

neekobn81#

麋鹿是这方面的标准选择。它是可靠的,有巨大的和快速的关键字搜索跨越数百万条记录,并可以相当线性扩展。
mysql是一个不错的第二选择,但是根据您需要保留的时间范围,您最终会遇到一个扩展问题,无论是在空间方面还是在没有切分的情况下(在合理的时间范围内)搜索能力方面。切分可以解决很多问题,但它可能会比elk这样的工具更手动,也更痛苦,elk非常容易设置索引/按日期切分。
redis不是一个很好的选择。所有redis数据都必须放在内存中,这大大限制了可以保留的日志数据量。key/value也不适合于日志结构的数据,尤其是wrt,因为它的可搜索性在redis中基本上是没有的。
如果你要超过麋鹿,下一个最好的选择可能是像hdfs+hadoop/spark搜索(或者s3+emr,如果你在aws的土地上),但一天1000万麋鹿应该会持续一段时间(取决于时间范围)。举个例子,我现在使用一个10节点的elk集群,它每天处理大约10亿个日志项目,我们保存了两周的历史记录。
编辑:
对于像您正在寻找的那样的审计日志记录,为了增加可靠性,将kafka流之类的东西作为应用程序和elk之间的一个层写入其中可能很有用。这将绕过依赖日志文件传送可能遇到的一些潜在的怪异/糟糕行为,并为您提供一个不确定的、可重放的所有更改流。

相关问题