8

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

4

5 回答 5

3

AWS S3 是一种托管存储服务。适用于 S3 的 AWS CloudWatch 中唯一可用的指标是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 请求指标,可以在需要时启用。这包括AllRequestsGetRequestsPutRequests、等指标。有关此功能的更多详细信息,请参阅DeleteRequests使用Amazon CloudWatch文档监控指标。HeadRequests

于 2016-09-10T20:28:01.087 回答
1

我认为这可能取决于您要从哪里跟踪访问。即,如果您尝试从外部 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

于 2014-03-29T03:26:42.680 回答
1

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

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

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

于 2014-03-05T22:46:46.917 回答
0

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

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

于 2014-09-03T21:15:45.657 回答
0

要在您的存储桶中启用请求和数据传输指标,您可以运行以下命令。请注意,这些是付费指标。

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

本教程描述了如何在 AWS 控制台中使用点击界面进行操作。

于 2018-09-05T14:47:43.737 回答