访问日志记录简介
出于分析目的,用户可以开启日志记录功能。通过访问日志记录,桶的拥有者可以深入分析访问该桶的用户请求性质、类型或趋势。当用户开启一个桶的日志记录功能后,OBS会自动对这个桶的访问请求记录日志,并生成日志文件写入用户指定的桶(即目标桶)中。
当日志记录开启后,目标存储桶的日志投递用户组会同步开启桶的写入权限和ACL读取权限。如果手动将日志投递用户组的桶写入权限和ACL读取权限关闭,桶的日志记录会失败。
OBS支持对桶的访问请求创建并保存访问日志记录,可用于进行请求分析。
由于日志文件是OBS产生,并且由OBS上传到存放日志的桶中,因此OBS需要获得委托授权,用于上传生成的日志文件。所以在配置桶日志记录前,需要先到统一身份认证服务生成一个对OBS服务的委托,并在配置日志记录时添加该委托。默认情况下,在为委托配置权限时只需设置日志存储桶的上传对象(PutObject)权限,示例如下(其中mybucketlogs为日志存储桶的桶名)。
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:*:*:object:mybucketlogs/*" ], "Effect": "Allow" } ] }
由于日志存储在OBS中也会占用用户租用的OBS存储空间,默认情况下,OBS不会为用户的桶收集访问日志。
日志记录设置成功后,大约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 |
- |
对象名 |
Request-URI |
GET /bucket?location HTTP/1.1 |
请求URI |
HTTPStatus |
200 |
返回码 |
ErrorCode |
- |
错误码 |
BytesSent |
211 |
HTTP响应的字节大小 |
ObjectSize |
- |
对象大小(bytes) |
TotalTime |
6 |
服务端处理时间(ms) |
Turn-AroundTime |
6 |
总请求时间(ms) |
Referer |
- |
请求的referrer头域 |
User-Agent |
HttpClient |
请求的user-agent头域 |
VersionID |
- |
请求中带的versionId |
STSLogUrn |
- |
联邦认证及委托授权信息 |