实时OSS日志查询常见示例

通过使用日志服务SLS提供的实时日志查询能力,您可以分析对象存储OSS的访问日志、批量删除日志、每小时计量日志,从而及时监控并优化OSS的使用情况、定位和分析潜在的问题,提升数据存储和访问的效率。本文介绍实时日志查询的常见示例。

分析某个OSS目录下文件的外网流出流量

重要

由于请求的host字段可能被伪造,因此以下查询结果仅供预估,并不能作为计费依据。关于OSS外网流出流量的费用,请以实际账单为准。

使用OSS的用量查询可以直接查看某个OSSBucket下所有文件的外网流出流量,但无法精确到某个OSS目录。如果您需要分析某个OSS目录下文件的外网流出流量,您可以通过OSS访问日志中的host字段过滤出OSS外网访问域名,通过sync_request字段排除CDN回源请求,通过object字段前缀匹配某个OSS目录下的文件,然后通过content_length_out字段计算总和,从而获得指定目录下所有文件传输到外网的数据量总和。

查询和分析语句

统计名为examplebucketbucketexampledir目录下所有文件的外网流出流量。

* and __topic__ : oss_access_log and bucket: examplebucket and host : "examplebucket.oss-cn-hangzhou.aliyuncs.com" not sync_request : cdn | select
  SUM(content_length_out) AS total_traffic_out_byte
WHERE
  url_decode(object) LIKE 'exampledir/%'

查询和分析结果

名为examplebucketbucketexampledir目录下所有文件的外网流出流量总计为11749字节。

1.png

分析某个OSS目录下文件的大小增减情况

使用OSS的用量查询可以直接查看某个OSSBucket下所有文件的大小增减情况,但无法精确到某个OSS目录。如果您需要分析某个OSS目录下文件的大小增减情况,您可以通过匹配OSS访问日志中的object字段的前缀统计某个OSS目录下的文件,然后通过计算delta_data_size字段的总和,从而获得指定目录下所有文件大小的增减情况。

查询和分析语句

统计名为examplebucketbucketexampledir目录下文件的大小增减情况。

* and __topic__ : oss_access_log and bucket: examplebucket | select
  SUM(delta_data_size) AS total_delta_data_size
WHERE
  url_decode(object) LIKE 'exampledir/%'

查询和分析结果

名为examplebucketbucketexampledir目录下文件的大小增加了941字节。

2.png

分析未通过CDN加速的OSS外网请求

重要

由于请求的host字段可能被伪造,因此以下查询结果仅供预估,并不能作为计费依据。关于OSS外网流出流量的费用,请以实际账单为准。

在开启CDN加速服务后,如果依然能观察到显著的OSS外网请求,则说明您的业务中引用的资源URL仍指向OSS源站,而非CDN加速域名。为了识别未通过CDN加速的外网请求,您可以通过OSS访问日志中的host字段过滤出OSS外网访问域名,通过sync_request字段排除CDN回源请求。您还可以结合使用referer字段确定这些请求的来源网页或应用程序。

查询和分析语句

分析名为examplebucketbucket未通过CDN加速的OSS外网请求。

* and __topic__: oss_access_log and bucket: examplebucket and host : "examplebucket.oss-cn-hangzhou.aliyuncs.com" not sync_request: cdn | select
  referer,
  host,
  count(*) as request_count
group by
  referer,
  host
order by request_count desc

查询和分析结果

分析名为examplebucketbucket未通过CDN加速的OSS外网请求的结果显示,引起流量最多的前三个来源分别是:Referer字段为空的请求(可能是由于用户直接在浏览器地址栏输入URL),以及来自以.com.vip域名结尾的网站的请求。

3.png