我不想让 s3stat 这样的外部公司访问我的日志。我知道 AWS 以 AWStats 可读的格式记录 S3 和 Cloud Front。有人用过 AWSats 分析它们吗?
S3stat 曾经提供过其软件的托管版本,当时处于测试阶段,但我认为它已经停止使用了。
我不会被 AWStats 所束缚,我会考虑其他自托管网络日志分析软件选项。
答案1
我没有将 AWStats 与 S3 一起使用,但认为处理日志存在 3 个问题:
您需要获取数据 - 它存储在 S3 上
使用 Cloudfront,AWS 可让您选择要使用哪个存储桶 - 它不必是源(原始)存储桶。您可以轻松为日志设置特定存储桶,并可以通过以下方式安装它s3fs- 这应该提供对文件的最简单的访问 - 保留增量处理日志通常需要的时间戳等。或者,如果您不想将存储桶安装为本地文件系统,则可以使用s3命令,亚马逊或其中一个 SDK 来下载文件。(有一个 Python 脚本(使用 boto)可用于此目的 -这里-尽管我不能保证它的有效性。)
您需要解压并合并日志
Cloudfront 日志经过压缩(gzip 压缩),并存储为多个文件 - 文件名包含日期和小时(例如
XXXXXXXXXXXXX.YYYY-MM-DD-HH.XXXXXXXXX
),但每小时可以有多个文件。可以gunzip
使用(AWStats 提供的工具)解压缩并合并这些文件logresolvemerge.pl
。您需要向 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"