监控亚马逊的Amazon DataSync活动 CloudWatch - Amazon DataSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

监控亚马逊的Amazon DataSync活动 CloudWatch

您可以Amazon DataSync使用Amazon 监控 CloudWatch,此工具可从收集原始数据, DataSync并将数据处理为易读的近乎实时的指标。这些统计数据将保留 15 个月。

默认情况下, DataSync 指标数据以 5 分钟为间隔自动发送到 CloudWatch 。有关更多信息,请参阅什么是亚马逊 CloudWatch、 CloudWatch 事件和 CloudWatch 日志? 亚马逊 CloudWatch 用户指南中。

访问以下 CloudWatch 各项的亚马逊指标 DataSync

亚马逊 CloudWatch 提供指标,您可以使用这些指标来获取有关 DataSync 绩效的信息和解决问题。您可以使用以下工具查看 CloudWatch 指标: DataSync

  • CloudWatch 控制台

  • CloudWatch CLI

  • CloudWatch API

  • DataSync 控制台(任务执行页面)

有关信息,请参阅亚马逊 CloudWatch 用户指南中的使用亚马逊 CloudWatch 指标

CloudWatch 的指标 DataSync

Amazon/DataSync 命名空间包括以下指标。

指标 描述

BytesCompressed

应用压缩后通过网络传输的物理字节数。在大多数情况下,BytesTransferred除非数据不可压缩,否则此数字会小于。

单位:字节

BytesPreparedDestination

在目标位置准备的数据的总字节数。

单位:字节

BytesPreparedSource

在源位置准备的数据的总字节数。

单位:字节

BytesTransferred

传输中涉及的总字节数。有关通过网络发送的字节数,请参阅BytesCompressed

单位:字节

BytesVerifiedDestination

在目标位置验证的数据的总字节数。

单位:字节

BytesVerifiedSource

在源位置验证的数据的总字节数。

单位:字节

BytesWritten

已传输到目标位置的所有文件的总逻辑大小。

单位:字节

FilesPreparedDestination

在目标位置准备的文件的总数。

单位:计数

FilesPreparedSource

在源位置准备的文件的总数。

单位:计数

FilesTransferred

通过网络传输的文件或元数据的实际数量。该值是在该TRANSFERRING阶段持续计算和更新的。当从源位置读取每个文件并通过网络发送时,它会定期更新。

如果传输期间发生故障,该值可能小于 EstimatedFilesToTransfer。在某些情况下,此值也可能大于 EstimatedFilesTransferred。此元素是特定于某些位置类型的实施,因此不要将其用作正确文件编号的指示符或监控任务执行。

单位:计数

FilesVerifiedDestination

在目标位置验证的文件的总数。

单位:计数

FilesVerifiedSource

在源位置验证的文件的总数。

单位:计数

DataSync 指标的度

DataSync 指标使用Amazon/DataSync命名空间并提供以下维度的指标。

  • AgentId— 代理的唯一 ID。

  • TaskId— 任务的唯一 ID。其格式为 task-01234567890abcdef

的亚马逊 EventBridge 活动 DataSync

亚马逊 EventBridge 事件描述了 DataSync 资源的变化。您可以设置规则来匹配这些事件,并将这些事件路由到一个或多个目标函数或流。尽最大努力发出事件。

以下 EventBridge 事件可用于 DataSync。

Agent state changes
事件 描述
Online The agent is configured properly and is available to use. This status is the normal running status for an agent.
Offline The agent's VM is turned off or the agent is in an unhealthy state and has been out of contact with the service for 5 minutes or longer. When the issue that caused the unhealthy state is resolved, the agent returns to ONLINE status.
Location state changes
事件 描述
Adding DataSync is adding a location.
Available The location is created and is available to use.
Task state changes
事件 描述
Available The task was created and is ready to start.
Running The task is in progress and functioning properly.
Unavailable The task isn't configured properly and can't be used. You may see this when an agent associated with the task goes offline.
Queued Another task is running and using the same agent. DataSync runs tasks in series (first in, first out).
Task execution state changes
事件 描述
Queueing DataSync is waiting for another task that's using the same agent to finish.
Launching DataSync is initializing the task execution.
Preparing DataSync is determining which files need to be transferred.
Transferring DataSync is performing the actual transfer of your data.
Verifying DataSync performs a full data and metadata integrity verification to ensure that the data in your destination is an exact copy of your source.
Success The transfer is successful.
Error The transfer failed.

允许 DataSync 将日志上传到亚马逊 CloudWatch 日志组

DataSync 需要足够的权限才能将日志发送到您的 CloudWatch 日志组。当您使用控制台创建任务时, DataSync 可以自动为您创建具有正确权限的 IAM 资源策略。

以下示例是授予这些权限的资源策略。

{ "Statement": [ { "Sid": "DataSyncLogsToCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Principal": { "Service": "datasync.amazonaws.com" }, "Condition": { "ArnLike": { "aws:SourceArn": [ "arn:aws:datasync:region:account-id:task/*" ] }, "StringEquals": { "aws:SourceAccount": "account-id" } }, "Resource": "arn:aws:logs:region:account-id:log-group:*:*" } ], "Version": "2012-10-17" }

该策略使用条件语句来确保只有来自指定账户的 DataSync 任务才能访问指定的 CloudWatch 日志组。我们建议在这些条件语句中使用aws:SourceArnaws:SourceAccount全局条件上下文密钥,以防出现混乱的副手问题。有关更多信息,请参阅防止跨服务混淆代理

要指定一个或多个任务,请region替换为任务Amazon Web Services 区域所在的区域代码,并account-id替换为包含这些任务的帐户的Amazon Web Services 账户 ID。 DataSync 要指定 CloudWatch 日志组,请替换相同的值。您也可以修改该Resource语句以特定日志组为可读取的语句。有关使用SourceArn和的更多信息SourceAccount,请参阅 IAM 用户指南中的全局条件键

要应用此策略,请将此策略语句保存到本地计算机上的文件中。然后运行以下Amazon CLI命令来应用资源策略:

aws logs put-resource-policy --policy-name trustDataSync --policy-document file://full-path-to-policy-file
注意

使用Amazon Web Services 账户与Amazon Web Services 区域您激活 DataSync代理时相同的命令运行此命令。

有关信息,请参阅《Amazon Logs 用户指南》中的使用 CloudWatch 日志组和日志流

从命令行监控您的 DataSync 任务

您可以使用Amazon Command Line Interface或标准 Unixwatch 实用程序跟踪您的 DataSync 任务。

使用以下方法监视您的任务Amazon CLI

要使用 CLI 监控您的 DataSync 任务状态,请使用describe-task-execution命令。

aws datasync describe-task-execution \ --task-execution-arn 'arn:aws:datasync:region:account-id:task/task-id/execution/task-execution-id'

此命令返回有关任务执行的信息,如下所示。

{ "BytesCompressed": 0, "BytesTransferred": 0, "BytesWritten": 0, "EstimatedFilesToTransfer": 0, "EstimatedBytesToTransfer": 0, "FilesTransferred": 0, "Options": { "VerifyMode": "POINT_IN_TIME_CONSISTENT", "Atime": "BEST_EFFORT", "Mtime": "PRESERVE", "Uid": "INT_VALUE", "Gid": "INT_VALUE", "PreserveDevices": "NONE", "PosixPermissions": "PRESERVE", "PreserveDeletedFiles": "PRESERVE", "OverwriteMode": "NEVER", "TaskQueueing": "ENABLED" }, "Result": { "PrepareDuration": 4355, "PrepareStatus": "Ok", "TransferDuration": 5889, "TransferStatus": "Ok", "VerifyDuration": 4538, "VerifyStatus": "Pending" }, "StartTime": 1532658526.949, "Status": "VERIFYING", "TaskExecutionArn": "arn:aws:datasync:us-east-1:112233445566:task/task-08de6e6697796f026/execution/exec-04ce9d516d69bd52f" }

如果任务执行成功,则 Status (状态) 的值会变为 SUCCESS (成功)。如果 describe-task-execution 命令失败,结果会发送错误代码,帮助您排查问题。有关错误代码的信息,请参阅TaskExecutionResultDetail DataSync API 参考中的。

使用该watch实用程序监视您的任务

要通过命令行实时监控任务进度,可以使用标准 Unixwatch 实用程序。任务执行持续时间值以毫秒为单位测量。

watch实用程序无法识别 DataSync 别名。以下示例说明如何直接调如何直接调如何直接调如何直接调如何直接调如何直接调如何直接

# pass '-n 1' to update every second and '-d' to highlight differences $ watch -n 1 -d \ "aws datasync describe-task-execution --task-execution-arn 'arn:aws:datasync:region:account-id:task/task-id/execution/task execution-id'"