【问题标题】:AWS Cloudwatch monitoring for S3适用于 S3 的 AWS Cloudwatch 监控
【发布时间】:2013-11-13 09:40:07
【问题描述】:

Amazon Cloudwatch 提供了一些非常有用的指标来监控我的 EC2、负载均衡器、elasticache 和 RDS 数据库等,并允许我为一系列标准设置警报;但是有什么方法可以配置它来监控我的 S3 吗?或者是否有任何其他监控工具(除了简单地启用日志记录)可以帮助我监控我的 S3 资源的 POST/GET 请求的数量和数据量?并为活动阈值或增加的数据存储提供警报?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudwatch


    【解决方案1】:

    AWS S3 是一项托管存储服务。 AWS CloudWatch 中用于 S3 的唯一指标是 NumberOfObjectsBucketSizeBytes。为了更好地了解您的 S3 使用情况,您需要做一些额外的工作。

    我最近编写了一个 AWS Lambda 函数来完全满足您的要求,它可以在这里找到:

    https://github.com/maginetv/s3logs-cloudwatch

    它通过解析 S3 服务器端日志文件并将指标聚合/导出到 AWS Cloudwatch(CloudWatch 允许您发布自定义指标)来工作。

    在您的 AWS 账户上部署此功能后,您将在 AWS CloudWatch 中获得的示例图表如下:

    RestGetObject_RequestCount
    RestPutObject_RequestCount
    RestHeadObject_RequestCount
    BatchDeleteObject_RequestCount
    RestPostMultiObjectDelete_RequestCount
    RestGetObject_HTTP_2XX_RequestCount
    RestGetObject_HTTP_4XX_RequestCount
    RestGetObject_HTTP_5XX_RequestCount
    + many others
    

    由于指标已导出到 CloudWatch,您也可以轻松地为它们设置警报。 CloudFormation 模板包含在 GitHub 存储库中,您可以非常快速地部署此功能以了解您的 S3 存储桶使用情况。

    编辑 2016-12-10:

    2016 年 11 月,AWS 在 CloudWatch 中添加了额外的 S3 请求指标,可以在需要时启用。这包括 AllRequestsGetRequestsPutRequestsDeleteRequestsHeadRequests 等指标。有关此功能的更多详细信息,请参阅 Monitoring Metrics with Amazon CloudWatch 文档。

    【讨论】:

      【解决方案2】:

      我也找不到任何使用 CloudWatch 执行此操作的方法。 Derek@AWS 回答了 2012 年 4 月的这个问题,因为 CloudWatch 中没有 S3 支持。 https://forums.aws.amazon.com/message.jspa?messageID=338089

      我唯一能想到的是将 S3 访问日志导入日志服务(如 Splunk)。然后创建一个自定义云观察指标,您可以在其中发布从日志中解析的数据。但是你必须过滤掉访问日志的轮询,然后…… 当您使用它时,您可以在 Splunk 中而不是在 S3 中创建警报。

      如果您的用例只是在您使用过多时发出警报,您可以为您的 S3 使用情况设置帐户计费警报。

      【讨论】:

        【解决方案3】:

        我认为这可能取决于您希望从何处跟踪访问。 IE。如果您尝试从 http/https 请求之外测量/观察 S3 对象的使用情况,那么 Anthony 的建议是否启用 S3 日志记录然后导入 splunk(或 redshift)进行分析可能会奏效。您还可以每天查看请求的计费状态。

        如果尝试从您自己的应用程序中评估使用情况,有一些 AWS SDK cloudwatch 指标:

        http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/metrics/package-summary.html

        http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/metrics/S3ServiceMetric.html

        【讨论】:

          【解决方案4】:

          S3 是一项托管服务,这意味着您无需根据系统事件采取措施来保持其正常运行(只要您有能力支付服务的使用费用)。 CloudWatch 的精神是帮助监控需要您采取行动以保持其运行的服务。

          例如,EC2 实例(您自己管理)通常需要监控,以便在它们过载或未充分使用或崩溃时发出警报;在某些时候需要采取行动来启动新实例以横向扩展,关闭未使用的实例以缩减,或重新启动已崩溃的实例。 CloudWatch 旨在帮助您更有效地管理这些资源。

          【讨论】:

          • 服务可能需要许多从 S3 派生的不变量。例如,系统可能具有必须每小时将对象添加到 S3 存储桶的不变量,或者必须采取措施来恢复服务。使用单独的服务监控这一点很脆弱。
          【解决方案5】:

          要在您的存储桶中启用Request and Data transfer metrics,您可以运行以下命令。请注意,这些是付费指标。

          aws s3api put-bucket-metrics-configuration \
              --bucket YOUR-BUCKET-NAME \
              --metrics-configuration Id=EntireBucket 
              --id EntireBucket 
          

          This tutorial 描述了如何在 AWS 控制台中通过点击界面进行操作。

          【讨论】:

            猜你喜欢
            • 2018-12-30
            • 2021-07-02
            • 2018-11-24
            • 1970-01-01
            • 1970-01-01
            • 2022-12-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多