![需要为多个日志源提供分布式高性能持久日志解决方案](https://linux22.com/image/546366/%E9%9C%80%E8%A6%81%E4%B8%BA%E5%A4%9A%E4%B8%AA%E6%97%A5%E5%BF%97%E6%BA%90%E6%8F%90%E4%BE%9B%E5%88%86%E5%B8%83%E5%BC%8F%E9%AB%98%E6%80%A7%E8%83%BD%E6%8C%81%E4%B9%85%E6%97%A5%E5%BF%97%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
寻找高性能分布式可扩展解决方案来存储大量日志消息。我们有多个并发日志源(=服务器)。
有趣的是性能至关重要如果日志系统性能更好,我们甚至愿意丢失一小部分(比如说最多 2%)的日常消息。
我们希望使用在线算法每天处理日志消息,因此我们不需要任何花哨的关系数据库。我们只想按顺序运行数据并计算一些汇总和趋势。
这就是我们所需要的:
- 至少 98% 的消息必须被保存。丢失几条消息不是问题。
- 一旦存储了消息,就必须可靠地存储它(持久性,又称为 ACID 中的 D - 因此基本上需要复制)
- 多种来源。
- 消息必须按顺序存储,但不需要精确排序(我们期望任何两个相隔几秒的消息都按正确的顺序排列,但彼此接近的消息可以按任意顺序排列)
- 我们必须能够按顺序处理每日数据(理想情况下采用某种可靠的方式,如 map-reduce,这样可以处理机器故障并重新启动发生故障的节点上的处理)
任何 RDBMS 在这里肯定都不是一个选择,因为它保证了太多(对于这个任务来说是不必要的)属性。
答案1
答案2
分布式Splunk设置可以满足您的需求,但听起来您有大量的日志数据;它是根据每天索引的数据量进行许可的,所以并不便宜。