访问对象存储OSS的过程中会产生大量的访问日志,您可以通过日志转存功能将这些日志按照固定命名规则,以小时为单位生成日志文件写入您指定的Bucket。您可以通过logging命令开启、查询、关闭Bucket的日志转存配置。
注意事项
要开启日志转存并将日志存储到相同Bucket,您必须具有
oss:PutBucketLogging
权限;要开启日志转存并将日志存储到不同Bucket,您必须具有oss:PutBucketLogging
和oss:PutObject
权限;要查看日志转存配置,您必须具有oss:GetBucketLogging
权限;要关闭日志转存,您必须具有oss:DeleteBucketLogging
权限。具体操作,请参见为RAM用户授权自定义的权限策略。从ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考。
关于日志转存的更多信息,请参见日志转存。
当您在OSS ON云盒中使用该命令时:
将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint。
在本文已有示例的基础上添加--sign-version、--region以及--cloudbox-id选项。关于这三个选项的具体用法,请参见通用选项。
开启日志转存
如果Bucket此前未开启过日志转存,则使用该命令将为Bucket开启日志转存。如果Bucket此前已开启日志转存,则使用该命令将直接覆盖已有的日志转存配置。
开启或修改日志转存配置的命令格式及示例如下:
命令格式
ossutil logging --method put oss://bucketname oss://targetbucket/[prefix]
参数及选项说明如下:
配置项
说明
bucketname
生成日志的源Bucket名称。
targetbucket
存储日志文件的目标Bucket名称。
prefix
日志文件存储的目录。如果指定此项,则日志文件将保存在目标Bucket的指定目录下。如果不指定此项,则日志文件将保存在目标Bucket的根目录下。
重要生成日志的源Bucket和存储日志的目标Bucket可以相同也可以不同,但是必须位于同一账号下的相同地域。
使用示例
将源存储空间srcbucket产生的日志文件保存至目标存储空间destbucket的根目录下。
ossutil logging --method put oss://srcbucket oss://destbucket
将源存储空间srcbucket产生的日志文件保存至目标存储空间destbucket的根目录下的子目录destdir。
ossutil logging --method put oss://srcbucket oss://destbucket/destdir
以下输出结果表明已为srcbucket开启日志转存。
0.098601(s) elapsed
查看日志转存配置
命令格式
ossutil logging --method get oss://bucketname [local_xml_file]
参数说明如下:
参数
说明
bucketname
待获取日志转存配置的Bucket名称。
local_xml_file
存放日志转存配置的本地文件名称,例如
localfile.txt
。如果未指定此参数,则日志转存配置将直接输出到屏幕。使用示例
获取存储空间examplebucket的日志转存配置,并将配置结果写入本地文件
localfile.txt
。ossutil logging --method get oss://examplebucket localfile.txt
以下输出结果表明已成功获取日志转存配置。
0.212407(s) elapsed
获取存储空间examplebucket的日志转存配置,并将配置结果直接输出屏幕。
ossutil logging --method get oss://examplebucket
以下输出结果表明examplebucket的日志文件已转存至destbucket的根目录下。
<?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <LoggingEnabled> <TargetBucket>destbucket</TargetBucket> <TargetPrefix></TargetPrefix> </LoggingEnabled> </BucketLoggingStatus> 0.109979(s) elapsed
关闭日志转存
在您关闭日志转存功能前,OSS的日志文件会一直生成。请结合生命周期规则及时清理不再需要的日志文件,以减少您的存储费用。详情请参见基于最后一次修改时间的生命周期规则。
命令格式
ossutil logging --method delete oss://bucketname
bucketname表示待关闭日志转存功能的Bucket名称。
使用示例
关闭存储空间examplebucket的日志转存功能。
ossutil logging --method delete oss://examplebucket
以下输出结果表明examplebucket已关闭日志转存功能。
0.212409(s) elapsed
通用选项
当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。
例如您需要将另一个阿里云账号下,华东1(杭州)地域下源存储空间testbucket产生的日志转存至目标存储空间destbucket,命令如下:
ossutil logging --method put oss://testbucket oss://destbucket -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
关于此命令的其他通用选项的更多信息,请参见通用选项。