是否存在开源分布式日志库?

时间:2010-11-16 11:09:17

标签: language-agnostic logging monitoring distributed cluster-computing

我在谈论一个允许我从不同机器记录事件的库,并将这些事件在“全局”时间轴上以足够高的精度对齐。

实际上,我问的是因为我自己在集群计算项目中编写了这样的东西,我发现它非常有用非常有用,我很惊讶我找不到任何类似物。

因此,重点是这样的事情是否存在(我更好地为此做出贡献)或者什么都不存在(我最好写一个我的解决方案的开源模拟)。

以下是我希望从这样的库中获得的功能:

  • 独立于不同机器之间的时钟偏移
  • 定时精度至少为毫秒,优选为微秒
  • 可扩展到数千个并发日志记录进程,每秒至少有几兆字节的聚合日志
  • 软实时操作(我不想收集来自200台机器的200个大日志,然后计算时钟偏移并合并它们 - 我想看看“实时”会发生什么,可能会有10秒的小延迟)

3 个答案:

答案 0 :(得分:1)

您可以使用针对中央系统日志守护程序的log4j / log4net。 log4j有一个内置SyslogAppender,在log4net中你可以按照here显示。 log4cpp docs here

如果您没有Unix系统可供使用,那么有Syslog的Windows实现。

答案 1 :(得分:1)

Facebook在此问题上的贡献称为“Scribe”。

摘录:

  

Scribe是一个用于聚合流日志数据的服务器。它旨在扩展到非常大量的节点,并且对网络和节点故障具有鲁棒性。在系统中的每个节点上都运行一个划线服务器,配置为聚合消息并将其发送到更大组中的中央划线服务器(或多个服务器)。

...

  

使用非阻塞C ++服务器将Scribe实现为thrift服务。 Facebook上的安装在数千台机器上运行,每天可靠地传递数百亿条消息。

API是基于Thrift的,因此您可以获得良好的平台覆盖率,但是如果您正在寻找Java的简单集成,您可能需要查看Digg的log4j appender for Scribe

答案 2 :(得分:0)

使用Chukwa,其开源和大规模日志监控系统