跳转到主要内容

可扩展的Amazon S3和Cloudfront日志解析器。

项目描述

此python模块使用非常棒的 goaccess 工具为您提供一款易于安装且易于扩展的惊人的Amazon日志文件分析工具。所需的GOACCESS版本:0.8.5(与0.9+不兼容)

安装

pip install s3stat

这将在您的PYTHONPATH中安装 s3stat.py,以便您可以从命令行运行它。

快速入门

安装goaccess

您应该安装 goaccess

创建AWS用户

首先,您应该创建一个有权读取您的日志文件的用户,并且您应该准备好其AWS访问密钥。

  1. 登录到 aws控制台

  2. 创建新用户并选择为用户生成访问密钥的选项

  3. 保存访问密钥和密钥,因为您很快就需要它们

  4. 为用户打开 权限 选项卡,并附加新用户策略。选择自定义策略,并复制以下内容

    {
      "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 (5.7 kB 查看哈希值)

上传时间

由...