设置桶日志管理配置
功能介绍
创建桶时,默认是不生成桶的日志的,如果需要生成桶的日志,该桶需要打开日志配置管理的开关。桶日志功能开启后,桶的每次操作将会产生一条日志,并将多条日志打包成一个日志文件。日志文件存放位置需要在开启桶日志功能时指定,可以存放到开启日志功能的桶中,也可以存放到其他你有权限的桶中,但需要和开启日志功能的桶在同一个region中。
由于日志文件是OBS产生,并且由OBS上传到存放日志的桶中,因此OBS需要获得委托授权,用于上传生成的日志文件,所以在配置桶日志管理前,需要先到统一身份认证服务生成一个对OBS服务的委托,并将委托名作为参数配置到桶上,并且在xml文件中<LoggingEnabled>标签下配置相应的日志管理功能。在为委托配置权限时只需设置目标桶的上传对象权限。
委托权限示例
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:*:*:object:mybucketlogs/*" ], "Effect": "Allow" } ] }
关闭桶日志功能的方法是上传一个带有空的BucketLoggingStatus标签的logging文件。
默认存储类别为低频访问存储或归档存储的桶不能作为存放日志文件的桶。日志文件存放到桶中后,这些日志文件会占用空间,并按照用户存放数据同样的计费策略进行计费。
目标桶开启KMS加密时,需要在委托中授予KMS访问权限。
请求消息样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
PUT /?logging HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: signatureValue <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agency-name</Agency> <LoggingEnabled> <TargetBucket>mybucketlogs</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>domainID</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体请参见表3。
请求消息元素
名字 |
描述 |
是否必选 |
---|---|---|
BucketLoggingStatus |
日志状态信息的容器。 类型:Container |
是 |
Agency |
目标桶Owner通过统一身份认证服务创建的对OBS服务的委托的名称。 类型:String |
设置logging时必选。关闭logging时勿选。 |
LoggingEnabled |
该元素起到对日志配置管理的使能作用(呈现此元素则打开日志配置,否则关闭配置)。在此元素下,可加入具体的日志配置信息。 类型:Container |
设置logging时必选。关闭logging时勿选。 |
Grant |
是被授权者及其权限的容器。用于描述谁有什么权限来访问产生的日志文件。 类型:Container |
否 |
Grantee |
作为被授权logging权限用户的容器。 类型:Container |
否 |
ID |
被授权者的租户ID,全局唯一标识。 类型:String |
否 |
Permission |
产生的日志文件对被授权者的具体权限。 类型:String 权限有效值:FULL_CONTROL | READ | WRITE |
否 |
TargetBucket |
在生成日志时,配置日志桶的所有者可以指定一个桶用于存放产生的日志文件。需要保证配置日志文件的桶owner对存放日志文件的桶有FULL_CONTROL权限。支持多个桶生成的日志放在同一个目标桶中,如果这样做,就需要指定不同的TargetPrefix以达到为来自不同源桶的日志分类的目的。 类型:String |
设置logging时必选。关闭logging时勿选。 |
TargetPrefix |
通过该元素指定一个前缀,所有生成的日志对象的对象名都以此元素的内容为前缀。 类型:String |
设置logging时必选。关闭logging时勿选。 |
TargetGrants |
授权信息的容器。 类型:Container |
否 |
存储访问日志的object命名规则
1
|
<TargetPrefix>YYYY-mm-DD-HH-MM-SS-<UniqueString> |
- <TargetPrefix>为用户指定的目标前缀。
- YYYY-mm-DD-HH-MM-SS为日志生成的日期与时间,各字段依次表示年、月、日、时、分、秒。
- <UniqueString>为OBS自动生成的字符串。
一个实际用于存储OBS访问日志的object名称实例如下:
1
|
bucket-log2015-06-29-12-22-07-N7MXLAF1BDG7MPDV |
- "bucket-log"为用户指定的目标前缀。
- "2015-06-29-12-22-07"为日志生成的日期与时间。
- "N7MXLAF1BDG7MPDV"为OBS自动生成的字符串。
桶访问日志格式
以下所示为在目标桶生成的桶访问日志文件记录:
1
|
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:14:43:42 +0000] |
请求时间戳。格式为:[dd/MMM/yyyy:HH:mm:ss Z],即 [日/月/年:小时:分钟:秒 时区] |
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 |
- |
对象大小 |
TotalTime |
6 |
服务端处理时间 单位:ms |
Turn-AroundTime |
6 |
总请求时间 单位:ms |
Referer |
- |
请求的referrer头域 |
User-Agent |
HttpClient |
请求的user-agent头域 |
VersionID |
- |
请求中带的versionId |
STSLogUrn |
- |
联邦认证及委托授权信息 |
StorageClass |
STANDARD_IA |
当前的对象存储类型 |
TargetStorageClass |
GLACIER |
通过转换后的对象存储类型 |
DentryName |
12456%2Ffile.txt |
|
响应消息样式
1 2 3 |
HTTP/1.1 status_code Date: date Content-Length: length |
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
无特殊错误,所有错误已经包含在表2中。
请求示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
PUT /?logging HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:40:06 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mCOjER/L4ZZUY9qr6AOnkEiwvVk= Content-Length: 528 <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agencyGrantPutLogging</Agency> <LoggingEnabled> <TargetBucket>log-bucket</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>783fc6652cf246c096ea836694f71855</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
响应示例
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643663CE53B6AF31C619FD x-obs-id-2: 32AAAQAAEAABSAAkpAIAABAAAQAAEAABCT9CjuOx8cETSRbqkm35s1dL/tLhRNdZ Date: WED, 01 Jul 2015 02:40:06 GMT Content-Length: 0 |
请求示例:关闭桶日志转存
PUT /?logging HTTP/1.1 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4= User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: application/xml <BucketLoggingStatus> </BucketLoggingStatus>
响应示例:关闭桶日志转存
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSalxuWjLa91ewuXRoIcCKZFjFgCrYn0 x-obs-request-id: 0000018A2BC32FB6D2C62C9689DD14B3 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT