更新时间:2024-02-18 GMT+08:00

设置桶日志管理配置

功能介绍

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

请求消息元素

表1 请求消息元素表

名字

描述

是否必选

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" - - 

每个桶访问日志都包含如下信息:

表2 Bucket Logging格式

名称

示例

含义

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

  • 当使用账号或IAM用户发起请求时,此ID为请求者所属账号的账号ID。
  • 当使用匿名用户发起请求时,取值为Anonymous。

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

  • 对于并行文件系统,是文件/目录的内部标识,由父目录inode编号与文件/目录名称组成,此字段最终呈现为经过URL编码后的格式。
  • 对于对象桶,该字段为"-"。

响应消息样式

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