Amazon Cloudwatch提供了一些非常有用的指标来监控我的EC2s、负载均衡器、elasticache和RDS数据库等,并允许我为各种条件设置警报;但是有没有办法配置它来监控我的S3s呢?或者,是否有其他监控工具(除了简单地启用日志记录)可以帮助我监控S3资源的POST/GET请求数量和数据量?并为活动阈值或增加的数据存储提供警报?
发布于 2016-09-11 04:28:01
亚马逊网络服务S3是一项托管存储服务。适用于S3的亚马逊网络服务CloudWatch中唯一可用的指标是NumberOfObjects
和BucketSizeBytes
。为了更好地了解您的S3使用情况,您需要做一些额外的工作。
我最近写了一个AWS Lambda函数来做你所要求的事情,它可以在这里找到:
https://github.com/maginetv/s3logs-cloudwatch
它的工作原理是解析AWS服务器端日志文件,并将指标聚合/导出到S3 Cloudwatch (CloudWatch允许您发布自定义指标)。
在您的亚马逊网络服务账户上部署此功能后,您将在亚马逊网络服务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存储桶使用情况。
EDIT 2016-12-10:
2016年11月,亚马逊网络服务在CloudWatch中添加了额外的S3请求指标,可以在需要时启用。这包括AllRequests
、GetRequests
、PutRequests
、DeleteRequests
、HeadRequests
等指标。有关此功能的更多详细信息,请参阅Monitoring Metrics with Amazon CloudWatch文档。
发布于 2014-03-06 06:46:47
我也找不到任何用CloudWatch做这件事的方法。这个来自2012年4月的问题被Derek@AWS回答为在CloudWatch中没有S3支持。https://forums.aws.amazon.com/message.jspa?messageID=338089
我唯一能想到的就是将S3访问日志导入到日志服务中(比如Splunk)。然后创建一个自定义的云监视指标,您可以在其中发布您从日志解析的数据。但是,您必须过滤掉访问日志和…的轮询在此期间,您可以只在Splunk中创建警报,而不是在S3中。
如果您的用例只是简单地在使用过多时发出警报,您可以为您的S3使用设置一个帐户计费警报。
发布于 2014-03-29 11:26:43
我认为这可能取决于您希望从何处跟踪访问。也就是说,如果你试图从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
https://stackoverflow.com/questions/19950266
复制相似问题