设置桶日志管理配置
功能介绍
创建桶时,默认是不生成桶的日志的,如果需要生成桶的日志,该桶需要打开日志配置管理的开关。桶日志功能开启后,桶的每次操作将会产生一条日志,并将多条日志打包成一个日志文件。日志文件存放位置需要在开启桶日志功能时指定,可以存放到开启日志功能的桶中,也可以存放到其他你有权限的桶中,但需要和开启日志功能的桶在同一个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.example.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.example.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  |