是否有人有使用 AWStats(或类似软件)处理 AWS CloudFront/S3 日志的配置?

是否有人有使用 AWStats(或类似软件)处理 AWS CloudFront/S3 日志的配置?

我不想让 s3stat 这样的外部公司访问我的日志。我知道 AWS 以 AWStats 可读的格式记录 S3 和 Cloud Front。有人用过 AWSats 分析它们吗?

S3stat 曾经提供过其软件的托管版本,当时处于测试阶段,但我认为它已经停止使用了。

我不会被 AWStats 所束缚,我会考虑其他自托管网络日志分析软件选项。

答案1

我没有将 AWStats 与 S3 一起使用,但认为处理日志存在 3 个问题:

  1. 您需要获取数据 - 它存储在 S3 上

    使用 Cloudfront,AWS 可让您选择要使用哪个存储桶 - 它不必是源(原始)存储桶。您可以轻松为日志设置特定存储桶,并可以通过以下方式安装它s3fs- 这应该提供对文件的最简单的访问 - 保留增量处理日志通常需要的时间戳等。或者,如果您不想将存储桶安装为本地文件系统,则可以使用s3命令亚马逊或其中一个 SDK 来下载文件。(有一个 Python 脚本(使用 boto)可用于此目的 -这里-尽管我不能保证它的有效性。)

  2. 您需要解压并合并日志

    Cloudfront 日志经过压缩(gzip 压缩),并存储为多个文件 - 文件名包含日期和小时(例如XXXXXXXXXXXXX.YYYY-MM-DD-HH.XXXXXXXXX),但每小时可以有多个文件。可以gunzip使用(AWStats 提供的工具)解压缩并合并这些文件logresolvemerge.pl

  3. 您需要向 AWStats 提供自定义日志格式

    文件格式以制表符分隔,类似于:

    日期时间 x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query
    2011-06-27 08:31:10 JFK1 587 xxx.xxx.xxx.xxx GET xxxxxxxxxxxxxx.cloudfront.net /path/to/your/file 304 http://www.mydomain.com/page/requesting/file User-agent-string -

    因此,你会设置AWStats 具有:

    日志类型=W
    日志分隔符="\t"
    LogFormat="%time2%cluster%bytesd%host%method%virtualname%url%code%referer%ua%query"

相关内容