开发者学堂课程【管理功能玩转对象存储OSS使用入门:对象存储 OSS 日志统计功能】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/378/detail/4739
对象存储 OSS 日志统计功能
如何开启 0SS 的访问日志功能
1、OSS 为用户提供自动保存访问日志的功能,Bucket 的拥有者可以通过 OSS 控制台,为其所拥有的 bucket 开启访问日志记录功能。
2、当一个 Bucket (源 Bucket,Source Bucket) 开启访问日志记录功能后,OSS,自动将访问 Bueket 中文件的的请求访问记录,以小时为单位,按照设置的命名规则,生成一个 object 写入用户指定的 bucket (目标 Bucket,TargetBucket)。日志每一小时自动生成一次(有一定延迟),这个日志会按照用户在控制台设置的命名规则,在指定的 Bueket 下生成一个 object 文件作为日志文件,通过日志文件用户可以分析到 Bueket 所有的请求还有访问的一个详细情况,通过对生成的日志文件进行分析,可以轻松定位在 0SS Bucket 上的所有操作。
3、具体的设置方法
(1)登陆控制台
点击上方的 logging 设置,就是 oss 访问时功能设置的具体位置,点击之后可以看到目前日志存储位置这个地方的选项设置是否存储,证明目前 Bueket 是没有开启否认这个功能的,不同步之后可以看到与当前 Bueket 同节点的所有 Bueket 名称,可以选择将任职文件存在现在的 Bueket 里面,或者也可以选择存放在其他的Bueket 里,这个客户可以根据自己的需求来决定,这边现在已存放在 Bueket 的下面,点击之后页面上会提示输入日志的前缀,日志的前缀是可以自定义的,但是有一定的要求,它可以包含字母、数字和中划线,但必须要以字母开头,长度是1-32位的,测试以 test-abc 前缀为例,点击设置,右上角会提示成功,证明已经开启了访问日志功能。注意日志这个地方可以为空,可以不设置内容,可以把填写的日志前缀删除,然后点击设置,右上角提示设置成功即可。
(2)点击更多帮助
在控制台设置的只是日志文件的前缀,并不是完整的日志文件名,点击更多帮助,看日志文件的具体明细规则,点击更多帮助之后,页面会跳转到帮助中心,可以看到具体的日志记录命名规则。可以看到它最前面的 TargetPrefix 指的是在控制台设置的日志文件名前缀,例如刚才设置的是 text.abc,后面 sourceBueket 指的是开启了访问日志功能的 Bueket 名称,刚才是在11阿里云 Bueket 下做的操作,所以sourceBueket 指的就是11阿里云,在后面的4个Y代表的是年份,例如2015 2014这样的一个年份接着的两个 M 代表的是月份,两个 D 代表的是几号,后面的 H 代表的是小时,M 代表的是分钟,S 代表的是秒。最后面是系统自动生成的字符串,不用过于关注。
(3)看一个实际的访问日志的文件名
例如:mylog
-
oss
-example-2012-09-10-04-00-00-0000
mylog 代表的是在控制台设置的日志文件名前缀。OSS-example 代表的是开启访问日志功能的 Bueket 名称,后面2012-09-10-04-00-00-0000代表的是日志文件的创建时间,也就是2012年9月10号四点零分零秒。
(4)log 文件格式
在最下面位置点击访问日志记录,可以看到 log 日志文件的一个具体格式。在这个地方 log 文件中的信息是非常全面的,在这里可以看到具体的每个字段以及字段代表的含义,中间也会有相应的一个例子。由于字段比较多,不再一一介绍,用户可以通过访问 help.aliyun.com,进入到帮助中心,在对象存储 oss,用户手册、安全管理、访问日志记录,这个文档可以看到相关的一些信息。
(5)注意事项
首先 Bueket 的访问日志生成的 logo 文件算作一次 put 操作,并且会记录日志文件占用的 Bueket 空间,但是这个是不会产生流量的。日志文件生成之后,用户可以按照普通的 bucket 来操作这些日志文件,比如删除或者是获取地址等。另外一个是 oss 会忽略掉所有以 X 开头的客人 query-string 参数,但这 query-string 会被记录在访问 log 中。如果用户想从海量的访问日志中标识一个特殊的请求,可以在 URL 中添加一个 X 开头的客人 query-string 参数。举例,例如这个链接,第一个链接是 Bueket 下面一个普通的 PNG 图片,第二个链接则是添加了 X 开头的query-string 参数的链接,oss 在处理上面两个请求的时候,结果都是一样的,但是日志记录中会不一样,用户可以通过搜索自己设置的 X-开头的 query-string 参数,来很快的定位到经过标记的请求。最后一个问题是 oss 的 log 日志文件中任何一个字段都很可能会出现横杠这样的一个表示。这个主要是用来表示未知的数据,或者是对于当前请求操作该字段无效。根据用户的需求,oss 的log 格式,将来会在尾部添加一些字段,这个地方需要log处理工具的开发者,到时候考虑一下工具的兼容性。