it-swarm.cn

如何解析AmazonS3日志文件?

解析Amazon S3(简单存储)日志文件的最佳选择是什么?我打开了日志记录,现在我的日志文件看起来像这样:

858e709ba90996df37d6f5152650086acb6db14a67d9aaae7a0f3620fdefb88f files.example.com [08/Jul/2010:10:31:42 +0000] 68.114.21.105 65a011a29cdf8ec533ec3d1ccaae921c 13880FBC9839395C REST.GET.OBJECT example.com/blog/wp-content/uploads/2006/10/kitties_we_cant_stop_here_this_is_bat_country.jpg "GET /example.com/blog/wp-content/uploads/2006/10/kitties_we_cant_stop_here_this_is_bat_country.jpg HTTP/1.1" 200 - 32957 32957 12 10 "http://atlanta.craigslist.org/forums/?act=Q&ID=163218891" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19" -

自动化日志文件的最佳选择是什么?我没有使用S3以外的任何其他亚马逊服务。

2
artlung

亚马逊建议使用AWStats并包括 关于如何设置AWStats配置文件的说明 。您还需要设置一些方法来自动将日志下载到AWStats安装所在的位置。

我个人使用cron来设置一个Python脚本,该脚本使用 boto 来获取文件。

"""s3logDL.py

Downloads S3 logs and deletes old logs

Usage: python s3logDL.py"""

import sys
import os
from boto.s3 import Connection
import boto.s3

########################


########################

def main(argv):
    s3 = Connection('ACCESS_ID', 'PASSWORD')
    logsBucket = s3.get_bucket('logbucket')

    for b in logsBucket:
        #Download log
        print b.name
        key = logsBucket.get_key(b.name)
        fp = open("/PATH/TO/SAVE/POINT/" + b.name, "w")
        key.get_file(fp)

        #Delete log
        key.delete()

    exit(0)


########################

if __== '__main__':
    main(sys.argv)
2
Chealion

我们即将推出 Qloudstat 这将为您的S3帐户提供分析服务。

1
David Kocher