监控文件网关 - AWS Storage Gateway
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

监控文件网关

您可以通过使用 Amazon CloudWatch 指标和文件共享审计日志来监控文件网关和相关资源,并在文件操作完成时使用 Amazon CloudWatch Events 来得到通知。有关文件网关类型指标的信息,请参阅了解网关指标

通过 CloudWatch 日志组获取文件网关运行状况日志

您可以使用 Amazon CloudWatch Logs 获取有关文件网关和相关资源的运行状况的信息。您可以使用日志来监控网关遇到的错误。此外,您可以使用 Amazon CloudWatch 订阅筛选器来实时自动处理日志信息。有关详细信息,请参阅 使用订阅实时处理日志数据Amazon CloudWatch 用户指南.

例如,您可以配置一个 CloudWatch 日志组来监控网关,并在文件网关无法将文件上传到 S3 存储桶时收到通知。您可以在激活网关时或在激活网关并运行后配置组。有关如何在激活网关时配置 CloudWatch 日志组的信息,请参阅 配置 Amazon CloudWatch 日志记录。有关 CloudWatch 日志组,参见 使用日志组和日志流Amazon CloudWatch 用户指南.

以下是文件网关报告的错误的示例。

{ "severity": "ERROR", "bucket": "bucket-smb-share2", "roleArn": "arn:aws:iam::123456789012:role/my-bucket", "source": "share-E1A2B34C", "type": "InaccessibleStorageClass", "operation": "S3Upload", "key": "myFolder/myFile.text", "gateway": "sgw-B1D123D4", "timestamp": "1565740862516" }

此错误意味着文件网关无法将对象 myFolder/myFile.text 上传到 S3,因为它已从 Amazon S3 标准存储类转换为 Amazon S3 Glacier 或 S3 Glacier Deep Archive 存储类。

在前面的网关运行状况日志中,这些项目指定了给定的信息:

  • source: share-E1A2B34C 指示遇到此错误的文件共享。

  • "type": "InaccessibleStorageClass" 指示所发生的错误的类型。在这种情况下,当网关尝试将指定的对象上传到 Amazon S3 或从 Amazon S3 中读取时,会遇到此错误。但是,在这种情况下,对象转换为 Amazon S3 Glacier。"type" 的值可以是文件网关遇到的任何错误。有关可能错误的列表,请参阅 故障排除文件网关问题

  • "operation": "S3Upload" 指示当网关尝试将该对象上传到 S3 时发生此错误。

  • "key": "myFolder/myFile.text" 指示导致故障的对象。

  • gateway": "sgw-B1D123D4 指示遇到此错误的文件网关。

  • "timestamp": "1565740862516" 指示发生错误的时间。

有关如何排查和修复此类错误的信息,请参阅故障排除文件网关问题

在激活网关后配置 CloudWatch 日志组

以下过程显示了激活网关后如何配置 CloudWatch 日志组。

配置 CloudWatch 日志组以与文件网关一起使用

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 Gateways (网关),然后选择要为其配置 CloudWatch 日志组的网关。

  3. 对于 Actions (操作),选择 Edit gateway information (编辑网关信息),或在 Details (详细信息) 选项卡的 Logging (日志记录) 旁边的 Not Enabled (未启用) 下,选择 Configure log group (配置日志组) 以打开 Edit gateway information (编辑网关信息) 对话框。

  4. 对于网关日志组,选择使用现有日志组,然后选择要使用的日志组。如果您没有日志组,请选择创建新日志组以创建日志组。系统会将您定向到 CloudWatch Logs 控制台,您可以在其中创建日志组。如果创建新的日志组,请选择刷新按钮以在下拉列表中查看新的日志组。

  5. 完成此操作后,选择 Save

  6. 要查看日志以了解您的网关,请选择该网关,然后选择 Details (详细信息) 选项卡。

有关如何排查错误的信息,请参阅故障排除文件网关问题

使用 Amazon CloudWatch 指标

您可以使用 AWS 管理控制台 或 CloudWatch API 来获得您的文件网关的监控数据。控制台将根据来自 CloudWatch API 的原始数据显示一系列图表。也可以通过 Amazon AWS 开发工具包 (SDK)Amazon CloudWatch API 工具之一来使用 CloudWatch API。根据您的需求差异,您可能倾向于使用控制台中显示的图表,也可能倾向于检索自 API 的图表。

无论选择何种方法使用指标,您都必须指定下列信息:

  • 要使用的指标维度。维度 是帮助您对某指标进行唯一标识的名称/值对。Storage Gateway 的维度为 GatewayIdGatewayName。在 CloudWatch 控制台中,您可以使用 Gateway Metrics 视图来轻松选择特定于网关的维度。有关维度的更多信息,请参阅 Amazon CloudWatch 用户指南 中的维度

  • 指标名称,如 ReadBytes

下表总结了可供您使用的 Storage Gateway 指标数据的类型。

Amazon CloudWatch 命名空间 维度 说明
AWS/StorageGateway GatewayIdGatewayName

这些维度筛选描述网关各个方面的指标数据。您可以通过指定 GatewayIdGatewayName 维度来标识要使用的文件网关。

网关的吞吐量和延迟数据基于网关中的所有文件共享。

数据在 5 分钟期间内自动可用,无需收费。

网关和文件指标的使用方式类似于其他服务指标。您可以在下面所列的 CloudWatch 文档中找到一个有关某些最常见的指标任务的讨论:

获得有关文件操作的通知

AWS Storage Gateway 可在您的文件操作完成时触发 CloudWatch Events:

  • 在网关完成将文件异步上传到文件共享时,您可以获得通知。您可以使用 NotifyWhenUploaded API 请求文件上传通知。

  • 您可以在网关完成为 S3 存储桶刷新缓存后获得通知。在通过 AWS Storage Gateway 控制台或 AWS Storage Gateway API 调用 RefreshCache 操作时,您可以订阅以在操作完成时获得通知。

在请求的文件操作完成后,AWS Storage Gateway 将通过 CloudWatch Events 向您发送通知。您可以将 CloudWatch Events 配置为通过事件目标(如 Amazon SNS、Amazon SQS 或 AWS Lambda 函数)发送通知。例如,您可以配置 Amazon SNS 目标以将通知发送给 Amazon SNS 使用者,例如电子邮件和文本消息。有关 CloudWatch Events 的信息,请参阅什么是 Amazon CloudWatch Events?

设置 CloudWatch Events 通知

  1. 创建一个在触发您在 AWS Storage Gateway 中请求的事件时调用的目标(例如 Amazon SNS 主题或 Lambda 函数)。

  2. 在 CloudWatch Events 控制台中创建一个根据 AWS Storage Gateway 中的事件调用目标的规则。

  3. 在该规则中,为事件类型创建一个事件模式。在事件与此规则模式匹配时将触发通知。

  4. 选择目标并配置设置。

以下示例显示了一个规则,该规则将触发指定网关和指定 AWS 区域中的指定事件类型。例如,您可以指定 Storage Gateway File Upload Event 作为事件类型。

{ "source":[ "aws.storagegateway" ], "resources":[ "arn:aws:storagegateway:AWS Region:account-id :gateway/gateway-id" ], "detail-type":[ "Event type" ] }

有关如何使用 CloudWatch Events 触发规则的信息,请参阅 Amazon CloudWatch Events 用户指南 中的创建在事件上触发的 CloudWatch 事件规则

收到文件上传通知

对于以下两种使用案例,您可能会使用文件上传通知:

要自动完成在云中处理上传的文件,您可以调用 NotifyWhenUploaded API 并获取通知 ID。在上传文件时触发的通知的通知 ID与 API 返回的通知 ID 相同。如果映射该通知 ID 以跟踪您上传的文件列表,在生成具有相同 ID 的事件时,您可以在 AWS 中触发上传的文件处理。

对于内容分配使用案例,您可以有两个映射到同一 Amazon S3 存储桶的两个文件网关。网关 1 的文件共享客户端可能将新文件上传到 S3,然后网关 2 上的文件共享客户端读取这些文件。这些文件将上传到 S3,但不会在网关 2 中显示这些文件,因为网关 2 使用 S3 中的本地缓存的文件版本。要使这些文件在网关 2 中可见,您可以使用 NotifyWhenUploaded API 请求网关 1 在上传完成后向您发送文件上传通知。随后,您可以使用 CloudWatch Events 自动发出针对网关 2 上的文件共享的 RefreshCache 请求。在 RefreshCache 请求完成后,新文件将在网关 2 中可见。

例 示例—文件上传通知

以下示例显示一个文件上传通知,在事件与您创建的规则匹配时,将通过 CloudWatch 向您发送该通知。此通知采用 JSON 格式。您可以将此通知配置为以文本消息的形式传输到目标。

{ "version" : "2012-10-17", "id" : "2649b160-d59d-c97f-3f64-8aaa9ea6aed3", "detail-type" : "Storage Gateway Upload Notification Event", "source" : "aws.storagegateway", "account" : "123456789012", "time" : "2017-11-06T21:34:42Z", "region" : "us-east-2", "resources" : [ "arn:aws:storagegateway:us-east-2:123456789011:share/share-F123D451", "arn:aws:storagegateway:us-east-2:123456789011:gateway/sgw-712345DA" ], "detail" : { "event-type" :"upload-complete", "notification-id": "11b3106b-a18a-4890-9d47-a1a755ef5e47", "request-received" : "2018-02-06T21:34:42Z", "completed" : "2018-02-06T21:34:53Z"} }

字段名称

描述

version

当前的 IAM 策略版本。

id

标识 IAM 策略的 ID。

detail-type

触发所发送的通知的事件的描述。

source

作为请求和通知来源的 AWS 服务。

account

从中生成请求和通知的 AWS 账户的 ID。

time

将文件上传到 Amazon S3 的请求的发出时间。

region

从中发送请求和通知的 AWS 区域。

resources

策略适用的存储网关资源。

source

作为请求和通知来源的 AWS 服务。

event-type

触发通知的 CloudWatch Events。

notification-id

为发送的通知随机生成的 ID。该 ID 采用 UUID 格式。这是在调用 NotfyWhenUploaded 时返回的通知 ID。

request-received

网关收到 NotfyWhenUploaded 请求的时间。

completed

当工作集中的所有文件都上传到 Amazon S3 时。

获取刷新缓存通知

对于刷新缓存通知使用案例,您可以有两个映射到同一 Amazon S3 存储桶的文件网关,网关 1 的 NFS 客户端会将新文件上传到 S3 存储桶。这些文件将上传到 S3,但在您刷新缓存之前,它们不会出现在网关 2 中。这是因为 Gateway2 在 S3 中使用了本地缓存的文件版本。当刷新缓存完成时,您可能希望对 Gateway2 中的文件执行某项操作。大型文件可能需要一些时间才能在网关 2 中显示,因此您可能希望在缓存刷新完成时获得通知。您可以从 Gateway2 请求刷新缓存通知,以在所有文件都在 Gateway2 中可见时通知您。

例 示例—刷新缓存通知

以下示例显示一个刷新缓存通知,在事件与您创建的规则匹配时,将通过 CloudWatch 向您发送该通知。此通知采用 JSON 格式。您可以将此通知配置为以文本消息的形式传输到目标。

{ "version": "2012-10-17", "id": "2649b160-d59d-c97f-3f64-8aaa9ea6aed3", "detail-type": "Storage Gateway Refresh Cache Event", "source": "aws.storagegateway", "account": "209870788375", "time": "2017-11-06T21:34:42Z", "region": "us-east-2", "resources": [ "arn:aws:storagegateway:us-east-2:123456789011:share/share-F123D451", "arn:aws:storagegateway:us-east-2:123456789011:gateway/sgw-712345DA" ], "detail": { "event-type": "refresh-complete", "notification-id": "1c14106b-a18a-4890-9d47-a1a755ef5e47", "started": "2018-02-06T21:34:42Z", "completed": "2018-02-06T21:34:53Z", "folderList": ["/"] }, }

字段名称

描述

version

当前的 IAM 策略版本。

id

标识 IAM 策略的 ID。

time

刷新工作集中的文件的请求的发出时间。

detail-type

触发所发送的通知的事件的类型描述。

source

作为请求和通知来源的 AWS 服务。

account

从中生成请求和通知的 AWS 账户的 ID。

source

作为请求和通知来源的 AWS 服务。

event-type

触发通知的 CloudWatch Events。

notification-id

为发送的通知随机生成的 ID。该 ID 采用 UUID 格式。这是在调用 RefreshCache 时返回的通知 ID。

started

网关收到 RefreshCache 请求并启动刷新的时间。

completed

完成工作集刷新的时间。

folderList

在缓存中刷新的文件夹的逗号分隔路径列表。默认为 ["/"]。

了解文件共享指标

您可以在下面找到有关包含文件共享的 AWS Storage Gateway 指标的信息。每个文件共享均有与其关联的一组指标。某些特定于文件共享的指标与某些特定于网关的指标同名。这些指标代表同类度量,但其范围限于文件共享。始终在使用指标前指定要使用网关还是文件共享指标。尤其是使用文件共享指标时,您必须指定标识希望查看其指标的文件共享的 File share ID。有关更多信息,请参阅使用 Amazon CloudWatch 指标

下表描述了可用来获取文件共享信息的 Storage Gateway 指标。

指标 说明
CacheHitPercent

应用程序从文件共享中读取的百分率,由缓存传送。样本在报告周期结束时采用。

在没有应用程序从文件共享读取时,该指标报告 100%。

单位:百分比

CachePercentDirty

文件共享对尚未传送到 AWS 的网关缓存的总体比例的占比。样本在报告周期结束时采用。

使用网关的 CachePercentDirty 指标来查看尚未传送到 AWS 的网关缓存总体比例。有关更多信息,请参阅了解网关指标

单位:百分比

CachePercentUsed

文件共享对网关缓存存储空间的总体使用率占比。样本在报告周期结束时采用。

使用网关的 CachePercentUsed 指标来查看网关缓存存储空间的总体使用率。有关更多信息,请参阅了解网关指标

单位:百分比

CloudBytesUploaded

gateway 在报告期间上传到 AWS 的字节的总数。

将此指标与 Sum 统计数据结合使用来测量吞吐量,将其与 Samples 统计数据结合使用来测量 IOPS。

单位:字节

CloudBytesDownloaded

网关在报告期间从 AWS 下载的总字节数。

将此指标与 Sum 统计数据结合使用来测量吞吐量,并将其与 Samples 统计数据结合使用来测量每秒输入/输出操作次数 (IOPS)。

单位:字节

ReadBytes

文件共享报告周期内从本地应用程序读取的总字节数。

将此指标与 Sum 统计数据结合使用来测量吞吐量,将其与 Samples 统计数据结合使用来测量 IOPS。

单位:字节

WriteBytes

报告周期内写入到场内应用程序的总字节数。

将此指标与 Sum 统计数据结合使用来测量吞吐量,将其与 Samples 统计数据结合使用来测量 IOPS。

单位:字节

了解文件网关审计日志

文件网关审计日志为您提供有关用户访问 SMB 文件共享中的文件和文件夹的详细信息。您可以使用它们监控用户活动,并在识别到不当的活动模式时采取措施。

下表介绍了文件网关审计日志文件访问操作。

操作名称

定义

读取数据

读取文件的内容。

写入数据

更改文件的内容。

创建

创建新文件或文件夹。

重命名

重命名现有文件或文件夹。

Delete

删除文件或文件夹。

写入属性

更新文件或文件夹元数据(ACL、拥有者、组、权限)。

下表描述了文件网关审计日志文件访问属性。

属性

定义

securityDescriptor

显示在对象上设置的自由访问控制列表 (DACL),使用 SDDL 格式。

sourceAddress

文件共享客户端计算机的 IP 地址。

accountDomain

客户端账户所属的 Active Directory (AD) 域。

accountName

客户端的 AD 用户名。

groupid

用户账户所属组的标识符。

source

所审计的文件共享的 ID。

ownerId

对象拥有者的标识符。

accessMode

对象的权限设置。

mtime

在此时间修改对象的内容,由客户端设置。

version

审计日志格式的版本。

objectType

定义对象是文件还是文件夹。

bucket

S3 存储桶名称。

objectName

对象的完整路径。

ctime

在此时间修改对象的内容或元数据,由客户端设置。

shareName

正在访问的共享的名称。

operation

对象访问操作的名称。

newObjectName

新对象重命名后的完整路径。

gateway

Storage Gateway ID。

timestamp

发生操作的时间,基于网关的操作系统时间戳。

status

操作的状态。仅记录成功(记录失败,但由于权限被拒绝而引发的失败除外)。

fileSizeInBytes

文件大小,以字节为单位,由客户端在文件创建时设置。

下表介绍了在各个文件访问操作中记录的文件网关审计日志属性。

读取数据

写入数据

Create Folder

创建文件

重名文件/文件夹

删除文件/文件夹

写入属性(更改 ACL)

写入属性 (Chown)

写入属性 (Chmod)

写入属性 (Chgrp)

securityDescriptor

X

sourceAddress

X

X

X

X

X

X

X

X

X

X

accountDomain

X

X

X

X

X

X

X

X

X

X

accountName

X

X

X

X

X

X

X

X

X

X

groupid

X

X

X

source

X

X

X

X

X

X

X

X

X

X

ownerId

X

X

X

accessMode

X

X

X

mtime

X

X

version

X

X

X

X

X

X

X

X

X

X

objectType

X

X

X

X

X

X

X

X

X

X

bucket

X

X

X

X

X

X

X

X

X

X

objectName

X

X

X

X

X

X

X

X

X

X

ctime

X

X

shareName

X

X

X

X

X

X

X

X

X

X

operation

X

X

X

X

X

X

X

X

X

X

newObjectName

X

gateway

X

X

X

X

X

X

X

X

X

X

timestamp

X

X

X

X

X

X

X

X

X

X

status

X

X

X

X

X

X

X

X

X

X

fileSizeInBytes

X