日志管理概述

最近更新时间:2019-09-05 16:17:04

简介

日志管理功能够记录对于指定源存储桶的详细访问信息,并将这些信息以日志文件的形式保存在指定的存储桶中,以实现对存储桶更好的管理。

在目标存储桶中,日志记录路径为:

目标存储桶/路径前缀{YYYY}/{MM}/{DD}/{time}_{random}_{index}.gz

日志每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 AKIDNYVCdoJQyGJ5brTf
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 访问者 主账号 id:子账号 id,如果是匿名访问则显示-
25 requestId 请求 ID NWQ1ZjY4MTBfMjZiMjU4NjRfOWI1N180NDBiYTY=
26 objectSize 对象大小(Bytes) 808,如果您使用分块上传,objectSize 字段只会在完成上传的时候显示,各个分块上传期间该字段显示-
27 versionId 对象版本 ID 随机字符串
29 targetStorageClass 目标存储类型,发起复制操作的请求会记录该字段 STANDARD,STANDARD_IA,ARCHIVE
30 referer 源站地址 *.example.com或者111.111.111.1
31 requestUri 请求 URI "GET /fdgfdgsf%20/%E6%B5%AE%E7%82%B9%E6%95%B0 HTTP/1.1"
注意:

  • 目前 COS 的日志管理功能支持北京、上海、广州、成都、多伦多地域,其中北京、上海、广州尚在公测中,若您需要使用该功能,请 提交工单 申请。
  • 日志管理功能要求源存储桶与目标存储桶必须在同一地域。
  • 存放日志的目标存储桶可以是源存储桶本身,但不推荐。
  • 目前只有 XML API 以及基于 XML API 实现的 SDK、工具等进行的请求访问存储桶时,才会记录日志。JSON API 以及基于 JSON API 实现的 SDK、工具等进行的访问,不会记录日志。
  • 根据用户需求和业务发展情况,COS 可能在访问日志中新增字段,请在解析日志时务必做好相应处理。

启用日志管理

使用控制台

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

使用 API

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

  1. 创建日志角色。
  2. 日志角色绑定权限。
  3. 开启日志管理。

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,其中,要求存放日志的目标存储桶和源存储桶在同一地域。