AWS Storage Gateway
用户指南 (API 版本 2013-06-30)
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 日志组以与文件网关一起使用

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

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

  3. 对于 Actions (操作),选择 Edit gateway Information (编辑网关信息)

  4. 对于 Gateway Log Group (网关日志组),选择要使用的日志组。如果您没有日志组,请选择 Create new Log Group (创建新的日志组) 链接创建一个。系统会将您定向到 CloudWatch Logs 控制台,您可以在其中创建日志组。如果创建新的日志组,请选择刷新按钮以在下拉列表中查看新的日志组。

  5. 完成此操作后,选择 Save (保存)

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

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

获得有关文件操作的通知

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

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

  • 您可以在网关完成为 S3 存储桶刷新缓存后获得通知。在通过 Storage Gateway 控制台或 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. 在 Amazon 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 请求完成后,新文件将在 Gateway2 中可见。

例 示例—文件上传通知

以下示例显示一个文件上传通知,在事件与您创建的规则匹配时,将通过 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 存储桶的文件网关,Gateway1 的 NFS 客户端会将新文件上传到 S3 存储桶。这些文件将上传到 S3,但在您刷新缓存之前,它们不会出现在 Gateway2 中。这是因为 Gateway2 在 S3 中使用了本地缓存的文件版本。当刷新缓存完成时,您可能希望对 Gateway2 中的文件执行某项操作。大型文件可能需要一些时间才能在 Gateway2 中显示,因此您可能希望在缓存刷新完成时获得通知。您可以从 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 在缓存中刷新的文件夹的逗号分隔路径列表。默认为 ["/"]。

了解文件共享指标

您可以在下面找到有关包含文件共享的 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。

单位:字节