访问桶时,OBS会为您记录跟桶操作相关的各种请求日志,为桶配置日志存储后,产生的桶日志记录会被存储至同账号同区域下的同一个桶或其他桶中,便于您通过检索和分析日志来完成异常事件回溯和定位等工作。本文档提供配置桶日志、验证桶日志配置、关闭桶日志等操作指导。
配置桶的日志存储
OBS支持通过管理控制台、API、SDK方式配置桶的日志存储,不支持通过OBS Browser+、obsutil方式配置桶的日志存储。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“概览”,进入“概览”页。
- 在“基础配置”区域下,单击“日志存储”卡片,系统弹出“日志存储”对话框。
也可以在左侧导航栏选择“日志管理 > 日志存储”,进入日志存储页面。
- 打开日志存储开关,设置相关参数。
图1 日志存储
表1 桶日志参数说明 | 参数名称 | 参数说明 |
| 日志存储桶 | 选择源桶的日志文件存放的目标桶。 日志存储桶可以选择源桶或其他桶,但其他桶必须和源桶属于同一账号下的相同区域。 选定的日志存储桶的日志投递用户组会自动被赋予读取ACL权限和桶的写入权限。 |
| 日志文件前缀 | 指定日志文件名称的前缀。默认为“桶名称-log/”,即在桶的根目录下会自动创建一个名称为“桶名称-log/”的文件夹,用于存放日志文件。 启用日志存储功能后,生成的日志文件会根据如下规则命名: <日志文件前缀>YYYY-mm-DD-HH-MM-SS-<UniqueString> - <日志文件前缀>为用户指定的日志文件名称的前缀,即此处需要设置的参数。
- 如果<日志文件前缀>以“/”结尾,则该桶生成的日志文件在目标桶中将统一存放在以<日志文件前缀>命名的文件夹中,日志文件名称为“YYYY-mm-DD-HH-MM-SS-<UniqueString>”。如:2025-06-03-07-18-11-WKK0T9O74VAWMHB7
- 如果<日志文件前缀>不以“/”结尾,则该桶生成的日志文件将直接存储在目标桶的根目录下,日志文件名称为“<日志文件前缀>YYYY-mm-DD-HH-MM-SS-<UniqueString>”。如:example-bucket-a-log2025-06-03-07-18-11-WKK0T9O74VAWMHB7
- YYYY-mm-DD-HH-MM-SS为日志生成的时间,各字段依次表示年、月、日、小时、分钟、秒。
- <UniqueString>为OBS自动生成的字符串。
|
| IAM委托 | OBS需要获得委托授权,用于上传生成的日志文件至日志存储桶。 - 默认情况下,只需要为委托配置日志存储桶的上传对象权限(obs:object:PutObject)。
- 如果日志存储桶开启了服务端加密功能,还需要委托同时具有日志存储桶所在区域的KMS Administrator系统角色权限。
您可以从下拉列表选择账号下已有的IAM委托,也可以单击“创建委托”,进入委托页面新建委托。 关于创建委托,请参见创建用于上传日志的委托。 |
| 日志归类(可选) | 指定日志归类的频率,即将产生的桶日志按照每小时或每天进行归类存储。 您可以选择不配置该参数,或选择“暂不配置”、按“小时”、按“天”配置: - 该参数为空或选择“暂不配置”,均表示不配置该参数,系统会将生成的全部桶日志存储在一个文件夹中。
- 选择按“小时”配置:系统会自动将每小时生成的桶日志存放在一个文件夹中。
- 选择按“天”配置:系统会自动将每天生成的桶日志存放在一个文件夹中。
|
- 单击“确定”。
日志存储设置成功后,大约15分钟后可在日志存储桶中查看到桶的操作日志。
验证桶的日志存储配置
桶的日志存储配置完成后,您可以通过OBS管理控制台、API、SDK、obsutil方式验证桶的日志配置,查看是否产生日志文件及是否可访问日志文件。不支持通过OBS Browser+方式验证桶的日志配置。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击日志存储桶名称,进入“对象”页面。
- 查看是否存在日志文件。
根据所配置的日志文件前缀和日志文件命名规则查看日志存储桶的对象列表页是否存在日志文件或用于存放日志文件的文件夹。
图2 查看日志文件或日志文件夹
- 查看日志文件是否可被访问。
- 在对象列表页面或日志文件夹中,单击日志文件名称,进入日志文件“基本信息”页面。
- 单击“链接”后的
,复制日志文件的访问链接。 - 打开浏览器,访问该链接。
使用API
- 查看是否存在日志文件
使用列举桶内对象列举桶内的所有对象,然后根据所配置的日志文件前缀和日志文件命名规则查看列举出的对象中是否存在日志文件。
- 下载日志文件
使用下载对象下载日志文件。
使用SDK
- 查看是否存在日志文件
使用如下SDK列举桶内的所有对象,然后根据所配置的日志文件前缀和日志文件命名规则查看列举出的对象中是否存在日志文件。
- 下载日志文件
使用如下SDK下载日志文件。
使用命令行工具obsutil
- 查看是否存在日志文件
使用列举桶内对象列举桶内的所有对象,然后根据所配置的日志文件前缀和日志文件命名规则查看列举出的对象中是否存在日志文件。
- 下载日志文件
使用下载对象下载日志文件。
关闭桶的日志存储
桶日志上传并存储至日志存储桶会产生相应的PUT请求费用和存储费用,如果您不再需要记录日志,请关闭桶日志功能。关闭后,日志不再保存,之前保存的日志仍然在日志存储桶中。
OBS支持通过管理控制台关闭桶的日志存储,不支持通过API、SDK、OBS Browser+、obsutil方式关闭桶的日志存储。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“概览”,进入“概览”页面。
- 在“基础配置”区域下,单击“日志存储”卡片,系统弹出“日志存储”对话框。
- 选择“关闭”并单击“确定”。
创建用于上传日志的委托
- 在“日志存储”对话框,单击“创建委托”,右侧弹出“创建委托”弹窗。
- 设置委托名称。委托名称不能为空。
- (可选)创建自定义策略,用来给委托授予OBS相关权限。如果已有符合的策略,可跳过该步骤。
- 在IAM控制台左侧导航栏选择“权限管理 > 权限”。
- 在权限页面右上角单击“创建自定义策略”。
- 在创建自定义策略页面,按照如下设置参数内容,其他参数保持默认。
图3 自定义策略设置
- 单击“确定”,在权限列表页面可以看到新创建的自定义策略,即表示创建成功。
- 给委托授予相关权限。
在“委托授权”下的第一个下拉框选择“自定义策略”,然后在下方自定义策略列表中选择3创建的自定义策略。
如果勾选了“复制使用KMS加密的对象”,还需要给委托授予源桶和目标桶所在区域的“KMS CMKFullAccess”权限。
- 单击“确定”。
委托下拉框会自动填充为新创建的委托。如需查看委托授权详情,请单击委托下拉框下的“委托授权详情”。
- (可选)如果日志存储桶开启了服务端加密,日志存储桶所在区域还需要具有“KMS Administrator”权限。
- 在IAM控制台左侧导航栏选择“委托”。
- 单击1创建的委托操作列的“授权”。
- 在“选择策略”页面选择“KMS Administrator”权限,单击下方的“下一步”。
- 选择授权范围方案时,选择“指定区域项目资源”,选择日志存储桶所在区域的项目。
- 单击下方的“确定”,完成委托授权。
创建用于上传日志的信任委托
- 在“日志存储”对话框,单击“创建委托”,右侧弹出“创建委托”弹窗。
- 输入”委托名称”。
- 委托授权步骤,请参考创建用于上传日志的委托。
- 回到”统一身份认证服务”新版控制台”委托”页面。
- 在搜索栏输入刚刚创建的委托名,查到后单击”编辑”。
- 单击“信任策略“,单击“编辑信任策略“,策略内容如下:
{
"Version": "5.0",
"Statement": [
{
"Action": [
"sts:agencies:assume",
"sts::tagSession"
],
"Effect": "Allow",
"Principal": {
"Service": [
"service.OBS"
]
}
}
]
} - 单击“确定“,保存策略。
中断的请求是否会在OBS桶日志中记录?
OBS的桶日志目前不会记录中断的请求。如果您是通过API或SDK发起的请求,建议您根据返回值来判断请求中断的原因。
为什么在OBS桶日志中找不到请求记录?
如果您在OBS桶日志中找不到相关请求记录,可能的原因如下:
- CDN缓存机制:为桶配置了CDN加速域名后,CDN节点有缓存OBS的数据时,客户端向OBS发送请求,CDN节点会直接向客户端返回所需数据,客户端请求不会到达OBS,OBS无法记录这些请求,因此OBS桶日志中没有请求记录。此种情况下,您可以通过下载CDN的日志来查看由CDN缓存处理的请求,详情请参见日志管理。
- 客户端请求中断:如果因客户端网络等原因导致请求在发送至OBS前中断,则OBS无法记录这些请求。如果您是通过API或SDK发起的请求,建议您根据返回值来判断请求中断的原因。
- 日志存储至OBS桶失败:可能会由于网络、其他配置等影响,导致日志没有成功存储在OBS桶中。
- 查询的桶不是实际存储日志的桶:如您配置的是将桶日志存储在桶A,但是您在桶B中查询请求记录。
OBS的日志记录会被定期清除吗?
OBS不会定期清理存储在OBS桶中的日志文件。如果您需要定期清理OBS桶中的日志文件,建议您配置生命周期规则来定期自动删除存储在桶中的文件,详情请参见使用生命周期删除和转换对象存储类别的规则。