本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
监控亚马逊的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
命名空间包括以下指标。
指标 | 描述 |
---|---|
|
应用压缩后通过网络传输的物理字节数。在大多数情况下, 单位:字节 |
|
在目标位置准备的数据的总字节数。 单位:字节 |
|
在源位置准备的数据的总字节数。 单位:字节 |
|
传输涉及的总字节数。有关通过网络发送的字节数,请参阅 单位:字节 |
|
在目标位置验证的数据的总字节数。 单位:字节 |
|
在源位置验证的数据的总字节数。 单位:字节 |
|
已传输到目标位置的所有文件的总逻辑大小。 单位:字节 |
|
在目标位置准备的文件的总数。 单位:计数 |
|
在源位置准备的文件的总数。 单位:计数 |
|
通过网络传输的文件或元数据的实际数量。该值是在该 如果传输期间发生故障,该值可能小于 单位:计数 |
|
在目标位置验证的文件的总数。 单位:计数 |
|
在源位置验证的文件的总数。 单位:计数 |
的亚马逊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:SourceArn
和aws:SourceAccount
全局条件上下文密钥,以防出现混乱的副手问题。有关更多信息,请参阅防止跨服务混淆代理:
要指定一个或多个任务,请
替换为任务AWS 区域所在的区域代码,并region
替换为包含这些任务的帐户的AWS 账户 ID。DataSync要指定CloudWatch日志组,请替换相同的值。您也可以将account-id
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/taskexecution-id
'"