可扩展的Amazon S3和Cloudfront日志解析器。
项目描述
此python模块使用非常棒的 goaccess 工具为您提供一款易于安装且易于扩展的惊人的Amazon日志文件分析工具。所需的GOACCESS版本:0.8.5(与0.9+不兼容)
安装
pip install s3stat
这将在您的PYTHONPATH中安装 s3stat.py,以便您可以从命令行运行它。
快速入门
安装goaccess
您应该安装 goaccess
创建AWS用户
首先,您应该创建一个有权读取您的日志文件的用户,并且您应该准备好其AWS访问密钥。
登录到 aws控制台
创建新用户并选择为用户生成访问密钥的选项
保存访问密钥和密钥,因为您很快就需要它们
为用户打开 权限 选项卡,并附加新用户策略。选择自定义策略,并复制以下内容
{ "Statement": [ { "Sid": "Stmt1334764540928", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLogging", "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:PutBucketAcl", "s3:PutBucketLogging", "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "Stmt1334764631669", "Action": [ "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:GetStreamingDistribution", "cloudfront:GetStreamingDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListStreamingDistributions", "cloudfront:UpdateDistribution", "cloudfront:UpdateStreamingDistribution" ], "Effect": "Allow", "Resource": [ "*" ] } ] }
在您的存储桶中设置日志
首先,您应该要求亚马逊为您存储桶和云前端分发生成日志。
运行此脚本
s3stat.py <aws key> <aws secret> <bucket> <log_path>
这将下载今天的所有日志文件,并在您的控制台中启动一个 goaccess 实例。
对于更多选项,您可以运行
s3stat.py -h
扩展
实际上,s3stat 是为了易于添加到您的 Python 工作流程而设计的,因此它定义了一个您可以通过继承来处理 JSON 格式结果的单一类。
import s3stat class MyS3Stat(s3stat.S3Stat): def process_results(self, json): print json def process_error(self, exception, data=None): print data raise exception mytask = MyS3Stat(bucket, log_path, for_date, (aws_key, aws_secret)) mytask.run()
其中 aws_* 参数是可选的,如果缺失,则从 boto 提供的环境变量中获取。process_error 方法仅在 JSON 解码失败时调用,因此 data 是不可解码的字符串,而 exception 是 Python 引起的 ValueError。
待办事项
提供一条命令,用于将日志添加到指定的存储桶和云前端分发
项目详情
关闭
s3stat-2.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 80f6e933a022137493c5219ecb134ed79f66e0e75d5cd5e0478b5c73789e5b41 |
|
MD5 | 8cec5178a77ae5fb136c07bcdfdcbcb2 |
|
BLAKE2b-256 | 3c597193b1991c23ed57c96ff7988500fe918bcca243b33f4383b9b0306264c7 |