问题描述
在云监控产品中配置了监控OSS服务项,用于监控OSS有效请求率规则。在实际使用中,出现类似如下报警。
【阿里云监控】应用分组-数据挖掘-1个实例发生报警,触发规则:RequestValidRate 14:14 对象存储OSS[Bucket=xxxxx] ,有效请求率(33.33<90% ),持续时间1分钟。
问题原因
有效请求率为该Bucket请求中响应正常状态码2xx的占比,如果存在4xx和5xx的状态码,会降低有效请求率导致告警。
解决方案
先开启OSS日志,或者是OSS提供的日志分析功能。在报警的时间段内,获取出现4xx和5xx状态码的日志进行分析,确认是否是正常的请求。在分析日志过程中,除了具体资源URL访问会记录为4xx或者5xx状态码的报错,控制台的操作也会记录4xx的日志。用户使用OSS控制台查看Bucket配置或者是浏览文件,产生的请求也会记录到日志中,其中常见操作状态码有404和403。以下是出现这两种状态码具体场景:
对于控制台操作产生的4xx记录会降低有效请求率,特别是在该Bucket实际资源请求量少,控制台操作多的情况下,会导致有效请求率低的报警,这些请求不影响实际的业务用户,则可以忽略。
出现404状态码现象:如果用户在查看Bucket基本配置时,某些具体配置没有设置,比如静态首页或者是生命周期等没有设置,则会有对应的404操作记录。配置界面系统显示如下:
日志记录如下所示。
100.X.X.190 - - [06/Oct/2018:13:05:54 +0800] "GET /?cors HTTP/1.1" 404 310 0 "-" "aliyun-oss-console"
"snt-private.oss-cn-hangzhou-cross.aliyuncs.com" "5BB842B240C3E32F6C364C8A" "true" "1555028960823598"
"GetBucketCors" "snt-private" "-" - 0 "NoSuchCORSConfiguration" 427 "1555028960823598" - "-" "-"
aliyun-oss-console:表示为控制台操作。
GetBucketCors:表示查看跨域配置,如果没有配置则会记录404。
1555028960823598:为操作者的UID。
出现403状态码现象的情况:如果是RAM用户登录到控制台,同时RAM用户没有该Bucket的一些操作权限,例如查看配置、查看具体资源等权限,则会报403错误。需要检查具体账号的权限策略,日志记录如下所示。
100.X.X.190 - - [06/Oct/2018:13:05:54 +0800] "GET /?lifecycle HTTP/1.1" 404 310 0 "-" "aliyun-oss-console" "snt-private.oss-cn-hangzhou-cross.aliyuncs.com" "5C6E412C4A37F596B40326C6" "true" "1942721854841272" "GetBucketLifecycle" "snt-private" "-" - 0 "NormalSign" 427 "284131128693698074" - "-" "-"
适用于
对象存储OSS