带有水槽的分布式记录

Ron*_*vis 7 php mysql logging flume

我有一个分布在7台服务器上的移动服务,每台服务器都在执行特定的任务.我想记录他们的信息,然后从他们那里获取商业智能.我把它四舍五入到Flume.我如何使用它来收集信息?我的系统是用PHP编写的.flume是否适用于PHP?

pct*_*ing 10

这取决于您的需求以及您的服务器环境.我可以告诉你的一件事是,Flume没有与PHP直接集成.但是,还有其他方法.

我正在运行托管在Amazon EC2中的服务器,运行rsyslog + flume的组合.在我的设置中,我从运行在Linux服务器上运行的nginx的服务器收集Web日志.nginx服务器将Web请求日志作为syslog消息发送到rsyslog; rsyslog向我的中央水槽收集器发出tcp请求; flume收集器使用syslogTcp接收器监听这些消息; 水槽收集器将消息转发到Amazon S3.然后,我会在稍后的某个时间点使用Amazon EMR分析日志文件.

在您的情况下,PHP也可以配置为写入syslog(http://php.net/manual/en/function.syslog.php); 因此,您可以进行类似的设置,并让syslog将日志转发到中央水槽收集器节点.

如果您不想依赖syslog消息,也可以在服务器上运行flume客户端.可以将flume客户端配置为使用flume的尾部接收器来拖尾本地日志文件,或者您可以使用flume的tailDir接收器拖动指定目录中的所有日志文件,并将它们流式传输到水槽收集器.

水槽的一个很好的好处是,您可以将其配置为以非常有可能的方式传递消息,使其能够到达重要消息的目的地,而其他消息可以以较低的传送要求发送.

flume用户指南是获取更多详细信息的最佳位置:http: //flume.apache.org/FlumeUserGuide.html

另一个好看的地方是跳上freenode并加入#flume频道.


Wil*_*ill 0

Flume 代理可以运行在各种操作系统上,包括 Windows 和 Linux。

简而言之,如果您托管在这些操作系统中的任何一个上,则没有理由不能使用 Flume 来聚合来自多个盒子的日志。