在工作中,我们建立一个分布式应用程序(可能跨越几个机器上的一个局域网,可能后来横跨几个大陆上的广域网+VPN)。我们不想要登录文件的地方对每个机算(填充地盘和不可能查总体)因此,我们需要集中登录在网络。大多数记录不是很重要的,因此UDP是好的,但有些是金钱丢失重要的警报和必须以可靠地交付,这意味着TCP。我们关心的处理方面的网络,如果该记录的协议是太健谈的,或者拖的应用程序的一个爬如果它不响应。

一些可能性我考虑的是:

  • syslog (这似乎是完美的,但我的老板有敌意反对这样我不能选择的话)。
  • 从facebook(但这似乎有点重量级的服务器上的每一个机-不是每一个日志的信息的需求超可靠性)。
  • 使用一个消息喜欢的队列 rabbitmq 它可以有多个队调到不同级别的交易的安全。
  • 最糟糕的是,我可以写我自己从头开始。

你有其他建议吗?什么样的集中记录的解决方案有你使用,以及他们的工作吗?

编辑: 我倾向划线,因为它的存储和转发设计的分离运行的应用程序从网络延迟。但后在努力安装了,我发现,(1)它不是作为二进制包-现在这是不可饶恕的-和(2)这取决于亲密地在一个图书馆(储蓄),不可作为一个二元的包裹!并且最糟糕的是,它甚至不会编制妥当。这不是释放质量的代码,甚至在开放源。

有帮助吗?

解决方案

我们已经成功地使用 ZeroMQ 对记录的分发应用程序的情景喜欢你的。这是非常可靠和令人难以置信的速度快。我们搬到ZeroMQ后一个不那么成功的实施与 传播.在我们建立一个单一的ZeroMQ服务器是否能够处理超过70种不同的记录,从中等到高忙分发的应用程序。它接收到的数据的局域网和通过互联网。

如果你需要一个详细的队列中的服务器了对比, 看看这页的第二次生命维基.

希望它能帮助!

其他提示

有几种替代品。值得注意的是,划没有保持任何的更多。Facebook发展其继任者称为Caligraphus,它不开放来源。这里有一个列表中的替代品。

  • syslog安装在所有的Linux发行版
  • Fluentd:C+的红宝石基轻记录仪,它处理日志允流
  • 水槽:开发Cloudera、Java编写和工作以及个人用云生态系统
  • Apache卡夫卡:开发LinkedIn拉-基础结构
  • 划:打开来源的Facebook,但不是保持了

免责声明:我是一个提交者的Fluentd项目。

Syslog是良好的,如果你打算只注重基础设施日志(例如在系统一级).我听说过 猕猴桃的系统日志服务器 是一个很好,虽然不自己试试吧。另一方面,如果你想要记录应用程序相关的东西,syslog是也许不是最好的选择。在情况下使用apache记录服务(log4j log4xxx和其他),然后 logFaces 将是一个很好的解决方案,因为它是建立特别用于汇集多个应用程序在一个地方。工作TCP或UDP connections和有体面日志的观众和数据库的集成。

披露:我是作者的这种产品。

其他例子可能是巨大的,但我已经有好运气 Syslog-NG.这是非常灵活,并可配置的;虽然这是相当容易把它捡起来并做一些有用的东西与迅速。

你也可以考虑使用SNMP警报。

审查所有的备选方案建议在这个线程。看起来东西python供电。派更多的发现岗哨 https://getsentry.com/welcome/ 开放源,记录在案。应该是可靠的,对商业有一个业务根据上面这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top