存储Web访问日志的有效方法是什么[Ad Tracker]?

时间:2013-09-16 03:49:00

标签: logging webserver adserver

我正在建立一个广告跟踪系统,我需要存储&分析访问日志。 我正在使用图像像素来实现此目的。要跟踪的参数将通过HTTP Get参数发送。对像素的任何调用都将包含参数 - 如IP,userid和amp;我需要存储和分析的时间戳。

哪一项工作流程会更好? 1.利用apache日志记录。设置一个过程以在一个公共位置(HDFS?)收集日志并进行分析。 2.将每个日志条目存储到数据存储中(Cassandra?)。分析。

很高兴知道之前已经完成此操作的人的两种方法的专业人士和骗子。

此致

2 个答案:

答案 0 :(得分:2)

我认为cassandra和HDFS的结合将起到作用。我已经完成了类似的实现,我每天将日志发送到Cassandra,然后我编写了一个map reduce作业来分析并将这些日志发送到每天结束的HDFS文件系统。因此,在给定时间内,您可以通过访问cassandra集群获取最新日志,并使用HDFS获取旧的归档数据。

我在下面的文章[1]

中进一步解释了这种架构

[1] - http://sparkletechthoughts.blogspot.com/2012/09/how-distributed-logging-works-in-wso2.html

根据此实现,实时日志取自cassandra,长期归档日志取自HDFS文件系统

答案 1 :(得分:2)

这取决于你的主要动机是什么。

如果动机是尽快从该请求返回,那么最好的办法就是记录请求并继续并在后台进行分析。如果负载均衡器后面有许多计算机,那么您可能希望像我们一样设置集中式日志记录,并在How do I set up PHP Logging to go to a remote server?进行了描述。将日志放在一个位置后,您可以选择将其填充到您选择的商店中。此实现还可以扩展为将日志写入多个位置,以防您希望避免单点故障。

如果要将其移动到永久数据存储并实时处理,那么日志记录是多余的,您可以专注于任一数据存储。 @ poohdedoo应该可以正常工作。