适用于S3的AWS Cloudwatch监控

时间:2013-11-13 09:40:07

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

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

5 个答案:

答案 0 :(得分:3)

AWS S3是一种托管存储服务。 AWS CloudWatch for 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文档。< / p>

答案 1 :(得分:1)

我也无法通过CloudWatch找到任何方法。 Derek @ AWS在2012年4月回答了这个问题,因为CloudWatch没有S3支持。 https://forums.aws.amazon.com/message.jspa?messageID=338089

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

如果您的用例仅在您使用过多时提醒,则可以为S3使用设置帐户结算提醒。

答案 2 :(得分: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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

This tutorial介绍了如何在AWS Console中通过点击界面进行操作。