设置访问日志
概述
当用户需要跟踪访问 BOS 的请求时可以对 Bucket 开启访问日志功能。每条访问日志记录了单个访问请求的详细信息,包括请求者、Bucket 名称、请求时间和请求操作等。日志记录功能可以应用在访问统计和安全审核等方面。当一个 Bucket 开启访问日志功能后,会自动将对这个 Bucket 的访问请求,以小时为单位,按照固定的命名规则,生成日志文件写入用户指定的 Bucket。
说明:访问日志存储到目标 Bucket 是一个“尽力而为”的过程。大多数情况下,一个访问请求从发生,到对应日志存储到目标 Bucket 会在 2-3 个小时内完成。但受到网络环境等因素影响,有的日志可能会延迟较长时间才能存储到目标 Bucket。
操作方式
您可以通过 Console 控制台和 API 来设置访问日志,具体如下:
- 通过 Console 控制台设置访问日志请参考设置访问日志。
-
通过 API 创建设置访问日志:
日志命名规则
存储访问日志记录的Object命名规则为<TargetPrefix><SourceBucketName>-YYYY-mm-DD-HH-MM-SS-UniqueString
,例如mylog/mybucket-2016-05-17-10-00-00-00000。其中
- TargetPrefix为用户指定的前缀,即示例中的mylog/;
- SourceBucketName为源Bucket名称,即示例中的mybucket;
- YYYY、mm、DD、HH、MM和SS分别表示该日志所记录访问请求中的最小时间戳对应的年、月、日、小时、分钟和秒;
- UniqueString为BOS系统生成的字符串。用于唯一标识这个日志文件,即示例中的00000。
日志格式
输出字段 | 例子 | 说明 |
---|---|---|
Time | 2016-09-05T09:02:03+08:00 | 发起请求的时间 |
Bucket Owner | e13b12d0131b4c8bae959df4969387b8 | Bucket的Owner ID |
Bucket | samplebucket | 请求访问的Bucket名字 |
Key | dir/sample.jpg | 请求访问的Object名字 |
Reserve | - | 保留字段 |
Remote IP | 111.30.20.12 | 请求者IP地址 |
Requester | e13b12d0131b4c8bae959df4969387b8 | 请求者的ID |
Request ID | a94dbe12-717e-4e72-bcf2-0aa4a3100360 | 用于唯一标志该请求的UUID,同Header中的x-bce-request-id |
Operation | GetObject | 请求对应的API |
Request Host | bj.bcebos.com | HTTP请求的Host请求头 |
Request URI | "GET/v1/tables.xml" | HTTP请求中的URI,需要用双引号引用 |
HTTP Status | 200 | BOS返回的HTTP状态码 |
Error Code | InvalidURI | BOS返回的错误码 |
Bytes Send | 2314 | 用户从BOS下载的流量 |
Object Size | 1024 | Object大小,单位为Bytes |
Total Time(ms) | 11 | 从开始接收请求到相应返回的总时长,单位为毫秒 |
Server Cost Time (ms) | 10 | 从接收完所有请求到开始响应用户请求的总时长,单位为毫秒。目前该字段取值为- |
Referer | <https://cloud.baidu.com/product/bos.html> |
HTTP请求的Referer请求头 |
User Agent | "curl/7.33.0" | HTTP请求的User Agent请求头 |
Storage Class | STANDARD | 对象的存储类型 |
Multiple Delete | "abc%0Adef" | Multiple Delete删除的对象信息,'%0A'为分隔符,用于分隔多个对象 |
vip | 10.0.0.100 | 用户请求的vip |
rename_src | "test" | rename 源object |
ak | 12342556 | 用户的ak |
source | cdn | cdn标示cdn回源请求 -不是CDN回源 |
mirror_type | 302 | 302表示是重定向的镜像回源请求。fetch表示是镜像抓取的镜像回源请求。-表示请求不是镜像回源请求。 |
copy_src | STANDARD | copy的源存储类型 |
日志样例:
2016-09-05T09:02:03+08:00 e13b12d0131b4c8bae959df4969387b8 bos-logging - - 127.0.0.1 e13b12d0131b4c8bae959df4969387b8 98a20094-2002-4950-899d-9347244c71da GetBucket bj.bcebos.com "/bos-logging?delimiter=%2F&maxKeys=1000&prefix=" 200 success 2335 - 10 - "-" "bce-sdk-python/0.8.9/2.7.3 (default, Jun 24 2016, 15:08:42) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)]/linux2" - - - - 123 cdn 302 STANDARD
说明:
- 日志中各个字段由空格分隔。
- BOS的Log中,某些字段可能存在空格,这些字段(如 “Referrer” )在生成的时候,外部通过引号包括。
- Reserve字段为保留字段,Log中用 “-”表示。
- BOS以小时为单位生成Bucket访问的Log文件,但并不表示这个小时的所有请求都记录在这个小时的Log文件内,也有可能出现在上一个或者下一个Log文件中。
- BOS生成Log文件会占用目标Bucket的存储空间。日志访问功能是免费的,但日志所占用的存储空间还是照常计费。用户可以像操作普通Object一样操作日志文件。
- 日志文件在目标Bucket生成后,BOS不会主动清理这些日志文件。 设置日志存储的目标存储桶必须与源桶同region,可以投递至源桶。