对象存储COS访问日志场景体验

2021-11-29 17:29:23 浏览数 (1)

作者:v神

导语:云原生日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志数据解决平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。

COS访问日志记录了用户对COS资源的访问信息,包括上传对象(PUT),删除对象(DELETE),访问对象(GET)等。通过分析访问日志,用户可以完成审计回溯,如删除资源记录,同时也可以完成资源热门相关的资源统计等能力。本次我们就介绍下COS访问日志常见玩法。

什么是COS?

对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。

访问日志介绍

COS访问日志记录了源存储桶,用户id,请求方法等信息。

字段序号

名 称

含 义

示例

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.myzijiebao.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

随机字符串

28

targetStorageClass

目标存储类型,发起复制操作的请求会记录该字段

STANDARD,STANDARD_IA,ARCHIVE

29

referer

请求的 HTTP referer

*.example.com或者111.111.111.1

30

requestUri

请求 URI

"GET /fdgfdgsf /浮点数 HTTP/1.1"

场景1:审计追溯

需求

  • 某个对象文件访问不了,定位原因。
定位异常原因定位异常原因

解决方法

进入COS访问日志检索页面,输入对象名称作为关键词检索日志。

代码语言:javascript复制
json-log2019-05-09_00645d9a-1118-4d69-8411-cfd57ede9ea1_000
访问日志检索访问日志检索

通过时间柱状图,得知近1天有14条日志记录。针对14条日志记录下钻分析,点击左侧字段快速分析栏,查看resHttpCode信息。

对日志记录进行分析对日志记录进行分析

通过快速分析得知,6条非200的请求信息,其中5条resHttpCode为403的日志信息和一条resHttpCode为204日志信息,点击快速检索这两个httpcode的日志。

检索信息页面检索信息页面

由日志可以得知,5条错误码为Access Deny日志均为访问对象失败日志,通过resHttpCode为204的日志发现,用户1000******在8.24日19点38分,通过COS控制台执行了删除object操作,导致对象访问失败。

场景2:运营统计

需求

  • 统计当天访问量Top10热门的bucket
  • 统计当天某个bucket的访问趋势
  • 错误请求Top10的访问者
  • 失败操作的bucket分布
  • 用户请求有效率趋势

解决方法

  • 统计当天访问量Top10的bucket。
代码语言:javascript复制
(reqMethod:"GET") | select bucketName, count(*) group by bucketName
当天访问量Top10bucket统计当天访问量Top10bucket统计
  • 统计当天某个bucket的访问趋势。
bucket访问趋势统计bucket访问趋势统计
  • 错误请求Top10的访问者。
代码语言:javascript复制
 resHttpCode:>200 | select remoteIp, count(*) group by remoteIp
错误请求访问者统计错误请求访问者统计
  • 失败操作的bucket分布。
代码语言:javascript复制
resHttpCode:>200 | select bucketName, count(*) group by bucketName
失败操作bucket分布统计失败操作bucket分布统计
  • 用户请求有效率趋势。
代码语言:javascript复制
* | select time_series(__TIMESTAMP__, '5m', '%Y-%m-%d %H:%i:%s', '0')  as time,round(sum(case when resHttpCode=200 then 1.00 else 0.00 end) / cast(count(*) as double) * 100,1) as "请求有效率" group by time limit 1000
用户请求有效率趋势用户请求有效率趋势
  • 用户请求来源分布。
代码语言:javascript复制
* | select ip_to_province(remoteIp) as province ,  count(*) as c group by province order by c desc limit 50
用户请求来源分布统计用户请求来源分布统计

以上就是本期COS访问日志的玩法分享,如果您有更多有意思的日志实践,欢迎投稿分享!

一站式日志数据解决方案平台一站式日志数据解决方案平台

往期文章:

CLB日志核心的玩法你Get到了吗?

【日志服务CLS】腾讯云日志服务CLS接入内容分发网络CDN

【腾讯云日志服务CLS】serverless应用中的CLS服务详解

0 人点赞