监控亚马逊的AWS DataSync活动CloudWatch - AWS DataSync

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

监控亚马逊的AWS DataSync活动CloudWatch

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

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

亚马逊的CloudWatch指标DataSync

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

  • CloudWatch 控制台

  • CloudWatch CLI

  • CloudWatch API

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

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

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

  • AgentId— 代理的唯。

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

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

指标 描述

BytesCompressed

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

单位:字节

BytesPreparedDestination

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

单位:字节

BytesPreparedSource

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

单位:字节

BytesTransferred

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

单位:字节

BytesVerifiedDestination

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

单位:字节

BytesVerifiedSource

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

单位:字节

BytesWritten

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

单位:字节

FilesPreparedDestination

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

单位:计数

FilesPreparedSource

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

单位:计数

FilesTransferred

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

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

单位:计数

FilesVerifiedDestination

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

单位:计数

FilesVerifiedSource

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

单位:计数

的亚马逊EventBridge活动DataSync

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

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探索活动

以下EventBridge事件可用于DataSync Discovery。

Storage system state changes
事件 描述
Storage System Connectivity Status Change The connection between your DataSync agent and on-premises storage system changed. For details, see your CloudWatch logs.
Discovery job state changes
事件 描述
Discovery Job State Change The status of your discovery job changed. For more information, see 发现任务状态.
Discovery Job Expiration Soon Your discovery job expires soon. This includes any information the discovery job collected about your on-premises storage system. Before the job expires, you can export collected data by using the DescribeStorageSystemResources and DescribeStorageSystemResourceMetrics operations.

允许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替换为任务AWS 区域所在的区域代码,并account-id替换为包含这些任务的帐户的AWS 账户 ID。DataSync要指定CloudWatch日志组,请替换相同的值。您也可以将Resource语句修改为易读、近乎实时的指标。有关使用SourceArn和的更多信息SourceAccount,请参阅 IAM 用户指南中的全局条件键

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

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

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

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

从命令行监控您的DataSync任务

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

使用以下方法监控您的任务AWS 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 DataSyncAPI 参考中的。

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

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

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

# 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'"