使用桶日志记录OBS日志信息
当一个桶开启了日志记录功能后,OBS自动将该桶的日志按照固定的命名规则,生成一个对象写入用户指定的桶。
使用场景
出于分析或审计等目的,用户可以开启日志记录功能。通过访问日志记录,桶的拥有者可以深入分析访问该桶的用户请求性质、类型或趋势。当用户开启一个桶的日志记录功能后,OBS会自动对这个桶的访问请求记录日志,并生成日志文件写入用户指定的桶(即目标桶)中。
日志文件存放位置需要在开启桶日志功能时指定,可以存放到您拥有的,且与开启日志功能的桶位于同一区域的任一存储桶,当然也包括开启日志功能的桶本身。为了更有效的管理日志,建议您将日志存放到不同的桶中。当日志存储桶为开启日志功能的桶本身时,OBS将为写入该存储桶的日志创建额外的日志,这将增加您的存储账单费用,且由于额外日志的存在,将使您在寻找需要的日志时更加困难。
- 桶日志上传会产生相应的PUT请求费用,PUT请求费用的具体说明请参考OBS计费说明。
当日志记录开启后,目标存储桶的日志投递用户组会同步开启桶的写入权限和ACL读取权限。如果手动将日志投递用户组的桶写入权限和ACL读取权限关闭,桶的日志记录会失败。
OBS支持对桶的访问请求创建并保存访问日志记录,可用于进行请求分析或日志审计。
由于日志存储在OBS中也会占用用户的OBS存储空间,即意味着将产生额外的存储费用,默认情况下,OBS不会为用户的桶收集访问日志。
由于日志文件是OBS产生,并且由OBS上传到存放日志的桶中,因此OBS需要获得委托授权,用于上传生成的日志文件。所以在配置桶日志记录前,需要先到统一身份认证服务生成一个对OBS服务的委托,并在配置日志记录时添加该委托。默认情况下,在为委托配置权限时只需设置日志存储桶的上传对象(PutObject)权限,示例如下(其中mybucketlogs为日志存储桶的桶名)。如果日志存储桶开启了服务端加密功能,还需要委托同时具有日志存储桶所在区域的KMS Administrator权限。
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:*:*:object:mybucketlogs/*" ], "Effect": "Allow" } ] }
日志记录设置成功后,大约15分钟后可在日志存储目标桶中查看到桶的操作日志。
以下所示为在目标桶生成的桶访问日志文件记录:
787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B REST.GET.BUCKET.LOCATION - "GET /bucket?location HTTP/1.1" 200 - 211 - 6 6 "-" "HttpClient" - -
每个桶访问日志都包含以下信息:
名称 |
示例 |
含义 |
---|---|---|
BucketOwner |
787f2f92b20943998a4fe2ab75eb09b8 |
桶的ownerId |
Bucket |
bucket |
桶名 |
Time |
[13/Aug/2015:01:43:42 +0000] |
请求时间戳(UTC) |
Remote IP |
xx.xx.xx.xx |
请求IP |
Requester |
787f2f92b20943998a4fe2ab75eb09b8 |
请求者ID
|
RequestID |
281599BACAD9376ECE141B842B94535B |
请求ID |
Operation |
REST.GET.BUCKET.LOCATION |
操作名称 常见的Operation及其描述请参见表2。 |
Key |
- |
对象名 |
Request-URI |
GET /bucket?location HTTP/1.1 |
请求URI |
HTTPStatus |
200 |
返回码 |
ErrorCode |
- |
错误码 |
BytesSent |
211 |
HTTP响应的字节大小 |
ObjectSize |
- |
对象大小(bytes)
说明:
|
TotalTime |
6 |
服务端处理时间(ms) |
Turn-AroundTime |
6 |
总请求时间(ms)
说明:
TotalTime和Turn-AroundTime是一个参数的两种叫法,两者无区别。 |
Referer |
- |
请求的referrer头域 |
User-Agent |
HttpClient |
请求的user-agent头域 |
VersionID |
- |
请求中带的versionId |
STSLogUrn |
- |
联邦认证及委托授权信息 |
StorageClass |
STANDARD_IA |
当前的对象存储类别 |
TargetStorageClass |
GLACIER |
通过转换后的对象存储类别 |
DentryName |
12456/file.txt |
|
IAMUserID |
8f3b8c53d29244a780084f2b8c106c32 |
IAM用户ID。 当使用匿名用户发起请求,记为Anonymous。 |
Operation |
描述 |
Operation |
描述 |
---|---|---|---|
REST.GET.SERVICE |
获取桶列表 |
REST.GET.ENCRYPTION |
获取桶的加密配置 |
REST.PUT.BUCKET |
创建桶 |
REST.DELETE.ENCRYPTION |
删除桶的加密配置 |
REST.HEAD.BUCKET |
查看桶 |
REST.PUT.OTM_DIRECT_COLD_ACCESS |
设置桶归档对象直读策略 |
REST.GET.BUCKETVERSIONS |
列举桶内对象 |
REST.GET.OTM_DIRECT_COLD_ACCESS |
获取桶归档对象直读策略 |
REST.GET.BUCKET |
获取桶元数据 |
REST.DELETE.OTM_DIRECT_COLD_ACCESS |
删除桶归档对象直读策略 |
REST.GET.BUCKET.LOCATION |
获取桶区域位置 |
REST.PUT.BUCKET.WEBSITE |
设置桶的网站配置 |
REST.DELETE.BUCKET |
删除桶 |
REST.GET.BUCKET.WEBSITE |
获取桶的网站配置 |
REST.PUT.POLICY |
设置桶策略 |
REST.DEL.BUCKET.WEBSITE |
删除桶的网站配置 |
REST.GET.POLICY |
获取桶策略 |
REST.PUT.BUCKET.CORS |
设置桶的CORS配置 |
REST.DELETE.POLICY |
删除桶策略 |
REST.GET.BUCKET.CORS |
获取桶的CORS配置 |
REST.PUT.ACL |
设置桶ACL、设置对象ACL |
REST.DEL.BUCKET.CORS |
删除桶的CORS配置 |
REST.GET.ACL |
获取桶ACL、获取对象ACL |
REST.OPTIONS.BUCKET |
OPTIONS桶 |
REST.PUT.LOGGING_STATUS |
设置桶日志管理配置 |
REST.OPTIONS.OBJECT |
OPTIONS对象 |
REST.GET.LOGGING_STATUS |
获取桶日志管理配置 |
REST.PUT.OBJECT |
PUT上传 |
REST.PUT.BUCKET.LIFECYCLE |
设置桶的生命周期配置 |
REST.POST.OBJECT |
POST上传 |
REST.GET.LIFECYCLE |
获取桶的生命周期配置 |
REST.COPY.OBJECT |
复制对象 |
REST.DEL.LIFECYCLE |
删除桶的生命周期配置 |
REST.GET.OBJECT |
获取对象内容 |
REST.PUT.VERSIONING |
设置桶的多版本状态 |
REST.HEAD.OBJECT |
获取对象元数据 |
REST.GET.VERSIONING |
获取桶的多版本状态 |
REST.DELETE.OBJECT |
删除对象 |
REST.GET.BUCKET.STORAGE.POLICY |
设置桶默认存储类别 |
REST.TRANSITION.STORAGECLASS.OBJECT |
修改对象存储类别 |
REST.PUT.BUCKET.STORAGE.POLICY |
获取桶默认存储类别 |
OP_MULTIPLE_DELETEOBJECT |
批量删除对象 |
REST.PUT.REPLICATION |
设置桶的跨区域复制配置 |
REST.POST.RESTORE |
恢复归档存储对象 |
REST.DELETE.REPLICATION |
删除桶的跨区域复制配置 |
REST.APPEND.OBJECT |
追加写对象 |
REST.GET.REPLICATION |
获取桶的跨区域复制配置 |
REST.MODIFY.OBJECT.META |
修改对象元数据 |
REST.PUT.TAGGING |
设置桶标签 |
REST.TRUNCATE.OBJECT |
截断对象 |
REST.GET.TAGGING |
获取桶标签 |
REST.RENAME.OBJECT |
重命名对象 |
REST.DEL.TAGGING |
删除桶标签 |
REST.GET.UPLOADS |
列举桶中已初始化多段任务 |
REST.PUT.BUCKET_QUOTA |
设置桶配额 |
REST.POST.UPLOADS |
初始化多段上传任务 |
REST.GET.BUCKET.QUOTA |
获取桶配额 |
REST.PUT.PART |
上传段 |
REST.GET.BUCKET.STORAGEINFO |
获取桶存量信息 |
REST.COPY.PART |
拷贝段 |
REST.PUT.BUCKET.INVENTORY |
设置桶清单 |
REST.GET.UPLOAD |
列举已上传的段 |
REST.GET.BUCKET.INVENTORY |
获取桶清单、列举桶清单 |
REST.POST.UPLOAD |
合并段 |
REST.DELETE.BUCKET.INVENTORY |
删除桶清单 |
REST.DELETE.UPLOAD |
取消多段上传任务 |
REST.PUT.CUSTOMDOMAIN |
设置桶的自定义域名 |
REST.CLEAR.EXPIRE.UPLOAD |
清理过期的段 |
REST.GET.CUSTOMDOMAIN |
获取桶的自定义域名 |
REST.DELETE.CUSTOMDOMAIN |
删除桶的自定义域名 |
REST.PUT.ENCRYPTION |
设置桶的加密配置 |
- |
- |
使用方式
OBS支持通过控制台、API、SDK方式配置桶的日志记录,不支持通过OBS Browser+、obsutil方式配置桶的日志记录。
相关操作
- 关闭桶日志
如果您不再需要记录日志,在“日志记录”对话框,选择“关闭”后,单击“确定”。关闭“日志记录”后,日志不再保存,之前保存的日志仍然在目标桶。
- 配置上传日志委托