使用桶日志记录obs日志信息-九游平台
当一个桶开启了日志记录功能后,obs自动将该桶的日志按照固定的命名规则,生成一个对象写入用户指定的桶。
使用场景
出于分析或审计等目的,用户可以开启日志记录功能。通过访问日志记录,桶的拥有者可以深入分析访问该桶的用户请求性质、类型或趋势。当用户开启一个桶的日志记录功能后,obs会自动对这个桶的访问请求记录日志,并生成日志文件写入用户指定的桶(即目标桶)中。
日志文件存放位置需要在开启桶日志功能时指定,可以存放到您拥有的,且与开启日志功能的桶位于同一区域的任一存储桶,当然也包括开启日志功能的桶本身。为了更有效的管理日志,建议您将日志存放到不同的桶中。当日志存储桶为开启日志功能的桶本身时,obs将为写入该存储桶的日志创建额外的日志,这将增加您的存储账单费用,且由于额外日志的存在,将使您在寻找需要的日志时更加困难。

- 桶日志上传会产生相应的put请求费用,put请求费用的具体说明请参考obs计费说明。
当日志记录开启后,目标存储桶的日志投递用户组会同步开启桶的写入权限和acl读取权限。如果手动将日志投递用户组的桶写入权限和acl读取权限关闭,桶的日志记录会失败。
obs支持对桶的访问请求创建并保存访问日志记录,可用于进行请求分析或日志审计。
由于日志存储在obs中也会占用用户的obs存储空间,即意味着将产生额外的存储费用,默认情况下,obs不会为用户的桶收集访问日志。
由于日志文件是obs产生,并且由obs上传到存放日志的桶中,因此obs需要获得委托授权,用于上传生成的日志文件。所以在配置桶日志记录前,需要先到统一身份认证服务生成一个对obs服务的委托,并在配置日志记录时添加该委托。默认情况下,在为委托配置权限时只需设置日志存储桶的上传对象(putobject)权限,示例如下(其中mybucketlogs为日志存储桶的桶名)。如果日志存储桶开启了服务端加密功能,还需要委托同时具有日志存储桶所在区域的kms administrator权限。
{ "version": "1.1", "statement": [ { "action": [ "obs:object:putobject" ], "resource": [ "obs:*:*:object:mybucketlogs/*" ], "effect": "allow" } ] }
日志记录设置成功后,大约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 |
操作名称 常见的operation及其描述请参见表2。 |
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)
说明:
totaltime和turn-aroundtime是一个参数的两种叫法,两者无区别。 |
referer |
- |
请求的referrer头域 |
user-agent |
httpclient |
请求的user-agent头域 |
versionid |
- |
请求中带的versionid |
stslogurn |
- |
联邦认证及委托授权信息 |
storageclass |
standard_ia |
当前的对象存储类别 |
targetstorageclass |
glacier |
通过转换后的对象存储类别 |
dentryname |
12456/file.txt |
|
iamuserid |
8f3b8c53d29244a780084f2b8c106c32 |
iam用户id。 当使用匿名用户发起请求,记为anonymous。 |
operation |
描述 |
operation |
描述 |
---|---|---|---|
rest.get.service |
获取桶列表 |
rest.put.encryption |
设置桶的加密配置 |
rest.put.bucket |
创建桶 |
rest.get.encryption |
获取桶的加密配置 |
rest.head.bucket |
查看桶 |
rest.delete.encryption |
删除桶的加密配置 |
rest.get.bucketversions |
列举桶内对象 |
rest.put.otm_direct_cold_access |
设置桶归档对象直读策略 |
rest.get.bucket |
获取桶元数据 |
rest.get.otm_direct_cold_access |
获取桶归档对象直读策略 |
rest.get.bucket.location |
获取桶区域位置 |
rest.delete.otm_direct_cold_access |
删除桶归档对象直读策略 |
rest.put.policy |
设置桶策略 |
rest.get.bucket.website |
获取桶的网站配置 |
rest.get.policy |
获取桶策略 |
rest.del.bucket.website |
删除桶的网站配置 |
rest.delete.policy |
删除桶策略 |
rest.put.bucket.cors |
设置桶的cors配置 |
rest.put.acl |
设置桶acl、设置对象acl |
rest.get.bucket.cors |
获取桶的cors配置 |
rest.get.acl |
获取桶acl、获取对象acl |
rest.del.bucket.cors |
删除桶的cors配置 |
rest.put.logging_status |
设置桶日志管理配置 |
rest.options.bucket |
options桶 |
rest.get.logging_status |
获取桶日志管理配置 |
rest.options.object |
options对象 |
rest.put.bucket.lifecycle |
设置桶的生命周期配置 |
rest.put.object |
put上传 |
rest.get.lifecycle |
获取桶的生命周期配置 |
rest.post.object |
post上传 |
rest.del.lifecycle |
删除桶的生命周期配置 |
rest.copy.object |
复制对象 |
rest.put.versioning |
设置桶的多版本状态 |
rest.get.object |
获取对象内容 |
rest.get.versioning |
获取桶的多版本状态 |
rest.head.object |
获取对象元数据 |
rest.put.notification |
设置桶的消息通知配置 |
rest.delete.object |
删除对象 |
rest.get.notification |
获取桶的消息通知配置 |
rest.transition.storageclass.object |
修改对象存储类别 |
rest.put.bucket.storage.policy |
设置桶默认存储类别 |
op_multiple_deleteobject |
批量删除对象 |
rest.get.bucket.storage.policy |
获取桶默认存储类别 |
rest.post.restore |
恢复归档存储对象 |
rest.put.replication |
设置桶的跨区域复制配置 |
rest.append.object |
追加写对象 |
rest.delete.replication |
删除桶的跨区域复制配置 |
rest.modify.object.meta |
修改对象元数据 |
rest.get.replication |
获取桶的跨区域复制配置 |
rest.truncate.object |
截断对象 |
rest.put.tagging |
设置桶标签 |
rest.rename.object |
重命名对象 |
rest.get.tagging |
获取桶标签 |
rest.get.uploads |
列举桶中已初始化多段任务 |
rest.del.tagging |
删除桶标签 |
rest.post.uploads |
初始化多段上传任务 |
rest.put.bucket_quota |
设置桶配额 |
rest.put.part |
上传段 |
rest.get.bucket.quota |
获取桶配额 |
rest.copy.part |
拷贝段 |
rest.get.bucket.storageinfo |
获取桶存量信息 |
rest.get.upload |
列举已上传的段 |
rest.put.bucket.inventory |
设置桶清单 |
rest.post.upload |
合并段 |
rest.get.bucket.inventory |
获取桶清单、列举桶清单 |
rest.delete.upload |
取消多段上传任务 |
rest.delete.bucket.inventory |
删除桶清单 |
rest.clear.expire.upload |
清理过期的段 |
rest.put.customdomain |
设置桶的自定义域名 |
rest.delete.customdomain |
删除桶的自定义域名 |
rest.get.customdomain |
获取桶的自定义域名 |
batch.delete.object |
批量删除对象 |
使用方式
obs支持通过控制台、api、sdk方式配置桶的日志记录,不支持通过obs browser 、obsutil方式配置桶的日志记录。
相关操作
- 关闭桶日志
如果您不再需要记录日志,在“日志记录”对话框,选择“关闭”后,单击“确定”。关闭“日志记录”后,日志不再保存,之前保存的日志仍然在目标桶。
- 配置上传日志委托
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨