php - 使用 flume 进行分布式日志记录

标签 php mysql logging flume

<分区>

我有一项移动服务分布在 7 台服务器上,每台服务器都执行特定任务。我想从他们那里记录信息,然后从他们那里获得商业情报。我已将其四舍五入为 Flume。我如何使用它来收集信息? 我的系统是用 PHP 编写的。 flume 可以在 PHP 上运行吗?

最佳答案

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

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

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

如果您不想依赖系统日志消息,您还可以在服务器上运行 flume 客户端。 flume 客户端可以配置为使用 flume 的 tail sink 跟踪本地日志文件,或者您可以使用 flume 的 tailDir sink 跟踪指定目录中的所有日志文件,并将它们流式传输到 flume 收集器。

flume 的一个很好的好处是,您可以将它配置为以非常好的概率传送消息,它很可能会到达重要消息的目的地,而其他消息可以以较低的传送要求发送。

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

另一个值得一看的地方是跳转到 freenode 并加入#flume channel 。

关于php - 使用 flume 进行分布式日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171433/

相关文章:

php - Mysql:多个自连接?

mysql - 将 MySQL Server 从版本 5.6.14 修补到 5.6.21

logging - Spring Boot - 设置使用 Java Util Logging (jul) 的外部 jar 的日志记录级别

java - Log4J2 同步记录器比混合异步/同步记录器更快

php - 运行并发 PHP 脚本

php - 计算MySQL中的特定输入

php - 如何使用 php 从我的 SQL 数据库填充下拉列表

mysql - 如何解决 "#2006 - MySQL server has gone away"和 "ERROR 2013 (HY000): Lost connection to MySQL server during query"

logging - 如何在 BAL 消息中添加长文本?

php - PHP 的 $_GET 和 URL 重写