【问题标题】:What is a good way to store web access logs [ Ad Tracker]?存储 Web 访问日志 [Ad Tracker] 的好方法是什么?
【发布时间】:2013-09-20 03:18:42
【问题描述】:

我正在设置一个广告跟踪系统,我需要在其中存储和分析访问日志。 为此,我正在使用图像像素。要跟踪的参数将通过 HTTP Get 参数发送。对像素的任何调用都将包含我需要存储和分析的参数,例如 IP、用户 ID 和时间戳。

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

如果以前做过这件事的人知道这两种方法的优缺点,那就太好了。

问候,

【问题讨论】:

    标签: logging webserver advertisement-server


    【解决方案1】:

    我认为 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 文件系统

    【讨论】:

    • 这应该可以。肯定会使用日志分析,但我也在寻找一种接近实时的组合解决方案。
    【解决方案2】:

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

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

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

    【讨论】:

    • 有道理。我会尝试两者的结合。
    猜你喜欢
    • 2021-05-01
    • 2010-09-08
    • 1970-01-01
    • 2011-09-13
    • 2017-02-01
    • 1970-01-01
    • 2012-09-02
    • 2011-01-09
    • 2010-09-10
    相关资源
    最近更新 更多