有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

简介

日志管理功能能够记录对于指定源存储桶的详细访问信息,并将这些信息以日志文件的形式保存在指定的存储桶中,以实现对存储桶更好的管理。
在目标存储桶中,日志记录路径为:
目标存储桶/路径前缀{YYYY}/{MM}/{DD}/{time}_{random}_{index}
日志每5分钟生成一次,一条记录为一行,每条记录包含多个字段,字段之间以空格分割。需要注意的是,单个日志文件最大为256MB,如果您在这5分钟内产生的日志量超过256MB,那您的日志会被分割成多份日志文件。目前支持的日志字段如下:
字段序号
名 称
含 义
示例
1
eventVersion
记录版本
1.0
2
bucketName
存储桶名称
examplebucket-1250000000
3
qcsRegion
请求地域
ap-beijing
4
eventTime
事件时间(请求结束时间,UTC 0时 时间戳)
2018-12-01T11:02:33Z
5
eventSource
用户访问的域名
examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
6
eventName
事件名称
UploadPart
7
remoteIp
来源 IP
192.168.0.1
8
userSecretKeyId
用户访问 KeyId
AKIDNYVCdoJQyGJ5b1234
9
reservedFiled
保留字段
保留字段,显示为-
10
reqBytesSent
请求字节数(Bytes)
83886080
11
deltaDataSize
请求对存储量的改变(Bytes)
808
12
reqPath
请求的文件路径
/folder/text.txt
13
reqMethod
请求方法
put
14
userAgent
用户 UA
cos-go-sdk-v5.2.9
15
resHttpCode
HTTP 返回码
404
16
resErrorCode
错误码
NoSuchKey
17
resErrorMsg
错误信息
The specified key does not exist.
18
resBytesSent
返回字节数(Bytes)
197
19
resTotalTime
请求总耗时(毫秒,等于响应末字节的时间-请求首字节的时间)
4295
20
logSourceType
日志源类型
USER(用户访问请求),CDN(CDN 回源请求)
21
storageClass
存储类型
STANDARD,STANDARD_IA,ARCHIVE
22
accountId
存储桶所有者 ID
100000000001
23
resTurnAroundTime
请求服务端耗时(毫秒,等于响应首字节的时间-请求末字节的时间)
4295
24
requester
访问者账号。
如果访问者为主账号,则账号格式为 主账号 UIN:主账号 UIN
如果访问者为子账号,则账号格式为 主账号 UIN:子账号 UIN
如果访问者为 服务账号,则账号格式为 被授权的主账号 UIN:角色 ID
如果是匿名访问,则显示为 -
100000000001:100000000001
25
requestId
请求 ID
NWQ1ZjY4MTBfMjZiMjU4NjRfOWI1N180NDBiYTY=
26
objectSize
对象大小(Bytes)
808,如果您使用分块上传,objectSize 字段只会在完成上传的时候显示,各个分块上传期间该字段显示-
27
versionId
对象版本 ID
随机字符串
28
targetStorageClass
目标存储类型,发起复制操作的请求会记录该字段
STANDARD,STANDARD_IA,ARCHIVE
29
referer
请求的 HTTP referer
*.example.com 或者111.111.111.1
30
requestUri
请求 URI
"GET /fdgfdgsf%20/%E6%B5%AE%E7%82%B9%E6%95%B0 HTTP/1.1" 说明:如果签名是使用 query_string 形式,那么在 requestUri 中将展示签名,否则 requestUri 中不会包含签名信息

31
vpcId
VPC 请求 ID
"0"(非VPC)/"12345"(VPC,为不为"0"的 string)
注意
目前 COS 的日志管理功能支持的地域包括北京、南京、上海、广州、成都、重庆、深圳金融、上海金融、中国香港、新加坡、孟买、首尔、曼谷、东京、硅谷、弗吉尼亚、多伦多、法兰克福。
日志管理功能要求源存储桶与目标存储桶必须在同一地域。
存放日志的目标存储桶可以是源存储桶本身,但不推荐。
目前只有 XML API 以及基于 XML API 实现的 SDK、工具等进行的请求访问存储桶时,才会记录日志。JSON API 以及基于 JSON API 实现的 SDK、工具等进行的访问,不会记录日志。
根据用户需求和业务发展情况,COS 可能在访问日志中新增字段,请在解析日志时务必做好相应处理。

启用日志管理

使用控制台

用户可以通过控制台快速开启日志管理功能。操作指引请参见 设置日志管理 控制台指南。

使用 API

使用 API 为指定存储桶开启日志管理功能时,请参考以下步骤:

1. 创建日志角色

创建日志角色,具体接口信息请参见 CreateRole。 其中,roleName 必须为:CLS_QcsRole。 policyDocument 为:
{
"version": "2.0",
"statement": [{
"action": "name/sts:AssumeRole",
"effect": "allow",
"principal": {
"service": "cls.cloud.tencent.com"
}
}]
}

2. 日志角色绑定权限

角色权限绑定权限,具体接口信息参见 AttachRolePolicy。 其中,policyName 为:QcloudCOSAccessForCLSRole,roleName 为第1步中的 CLS_QcsRole,也可以使用创建 roleName 时返回的 roleID。

3. 开启日志管理

调用接口,开启日志管理功能,具体接口信息请参见 PUT Bucket logging。其中,要求存放日志的目标存储桶和源存储桶在同一地域。