logging(日志转存)

访问对象存储OSS的过程中会产生大量的访问日志,您可以通过日志转存功能将这些日志按照固定命名规则,以小时为单位生成日志文件写入您指定的Bucket。您可以通过logging命令开启、查询、关闭Bucket的日志转存配置。

注意事项

  • 要开启日志转存并将日志存储到相同Bucket,您必须具有oss:PutBucketLogging权限;要开启日志转存并将日志存储到不同Bucket,您必须具有oss:PutBucketLoggingoss:PutObject权限;要查看日志转存配置,您必须具有oss:GetBucketLogging权限;要关闭日志转存,您必须具有oss:DeleteBucketLogging权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 从ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考

  • 关于日志转存的更多信息,请参见日志转存

  • 当您在OSS ON云盒中使用该命令时:

    1. 将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint

    2. 在本文已有示例的基础上添加--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****

关于此命令的其他通用选项的更多信息,请参见通用选项