[英]AWS Cloudwatch monitoring for S3
Amazon Cloudwatch提供了一些非常有用的指標來監視我的EC2,負載均衡器,elasticache和RDS數據庫等,並允許我為整個標准設置警報; 但是有什么方法可以配置它來監視我的S3嗎? 或者是否有其他監視工具(僅啟用日志記錄)可以幫助我監視S3資源的POST / GET請求數和數據量? 並為活動閾值或數據存儲增加提供警報?
AWS S3是托管存儲服務。 AWS CloudWatch S3可用的唯一指標是NumberOfObjects
和BucketSizeBytes
。 為了更好地了解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,因此您也可以輕松為其設置警報。 GitHub存儲庫中包含CloudFormation模板,您可以非常快速地部署此功能,以了解您的S3存儲桶使用情況。
編輯2016-12-10:
2016年11月,AWS在CloudWatch中添加了額外的S3請求指標,可以在需要時啟用它。 其中包括AllRequests
, GetRequests
, PutRequests
, DeleteRequests
, HeadRequests
等指標 。有關此功能的更多詳細信息,請參閱使用Amazon CloudWatch文檔監控指標 。
我也找不到使用CloudWatch進行此操作的任何方法。 Derek @ AWS回答了2012年4月的這個問題,因為CloudWatch中沒有S3支持。 https://forums.aws.amazon.com/message.jspa?messageID=338089
我唯一想到的就是將S3訪問日志導入到日志服務(如Splunk)。 然后創建一個自定義雲監視指標,在其中發布從日志中解析的數據。 但是,然后您必須過濾掉訪問日志的輪詢,然后……在進行訪問時,您可以僅在Splunk中而不是在S3中創建警報。
如果您的用例只是在過量使用時發出警報,則可以針對S3的使用情況設置帳戶計費警報。
我認為這可能取決於您要從哪里跟蹤訪問。 即,如果您嘗試從外部http / https請求中測量/監視S3對象的使用,則Anthony的建議是否啟用S3日志記錄然后導入splunk(或redshift)以進行分析可能有用。 您還可以每天根據請求查看帳單狀態。
如果嘗試從您自己的應用程序內部查看使用情況,則有一些AWS開發工具包cloudwatch指標:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/metrics/package-summary.html
和
S3是一項托管服務,這意味着您無需根據系統事件采取任何措施即可使其保持正常運行(只要您有能力負擔使用該服務的費用)。 CloudWatch的精神是幫助監視服務,這些服務要求您采取措施以使其保持運行狀態。
例如,EC2實例(由您自己管理)通常需要監視以提醒它們何時過載,何時未充分使用或崩潰。 在某個時候,需要采取措施來擴展新實例以進行擴展,縮減未使用的實例以進行擴展或重新啟動已崩潰的實例。 CloudWatch旨在幫助您更有效地管理這些資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.