访问日志记录简介 本节主要介绍访问日志记录的概念。 出于分析或审计等目的,用户可以开启日志记录功能。通过访问日志记录,桶的拥有者可以深入分析访问该桶的用户请求性质、类型或趋势。当用户开启一个桶的日志记录功能后,OBS会自动对这个桶的访问请求记录日志,并生成日志文件写入用户指定的桶(即目标桶)中。 当日志记录开启后,目标存储桶的日志投递用户组会同步开启桶的写入权限和ACL读取权限。若手动将日志投递用户组的桶写入权限和ACL读取权限关闭,桶的日志记录会失败。 OBS支持对桶的访问请求创建并保存访问日志记录,可用于进行请求分析或日志审计。 由于日志存储在OBS中也会占用用户的OBS存储空间,即意味着将产生额外的存储费用,默认情况下,OBS不会为用户的桶收集访问日志。 由于日志文件是OBS产生,并且由OBS上传到存放日志的桶中,因此OBS需要获得委托授权,用于上传生成的日志文件。所以在配置桶日志记录前,需要先到统一身份认证服务生成一个对OBS服务的委托,并在配置日志记录时添加该委托。默认情况下,在为委托配置权限时只需设置日志存储桶的上传对象(PutObject)权限,示例如下(其中mybucketlogs为日志存储桶的桶名)。如果日志存储桶开启了默认加密功能,还需要委托同时具有日志存储桶所在区域的KMS Administrator权限。 { "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:::object:mybucketlogs/" ], "Effect": "Allow" } ] } 日志记录设置成功后,大约15分钟后可在日志存储目标桶中查看到桶的操作日志。 以下所示为在目标桶生成的桶访问日志文件记录: 787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B REST.GET.BUCKET.LOCATION "GET /bucket?location HTTP/1.1" 200 211 6 6 "" "HttpClient" 每个桶访问日志都包含以下信息: 名称 示例 含义 BucketOwner 787f2f92b20943998a4fe2ab75eb09b8 桶的ownerId Bucket bucket 桶名 Time [13/Aug/2015:01:43:42 +0000] 请求时间戳(UTC) Remote IP xx.xx.xx.xx 请求IP Requester 787f2f92b20943998a4fe2ab75eb09b8 请求者ID RequestID 281599BACAD9376ECE141B842B94535B 请求ID Operation REST.GET.BUCKET.LOCATION 操作名称 Key 对象名 RequestURI GET /bucket?location HTTP/1.1 请求URI HTTPStatus 200 返回码 ErrorCode 错误码 BytesSent 211 HTTP响应的字节大小 ObjectSize 对象大小(bytes) TotalTime 6 服务端处理时间(ms) TurnAroundTime 6 总请求时间(ms) Referer 请求的referrer头域 UserAgent HttpClient 请求的useragent头域 VersionID 请求中带的versionId STSLogUrn 联邦认证及委托授权信息 StorageClass STANDARDIA 当前的对象存储类别 TargetStorageClass GLACIER 通过转换后的对象存储类别