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

使用 Amazon CloudWatch Logs 监控

Amazon IoT Analytics使用 Amazon CloudWatch 支持进行日志记录 您可以使用 PutLoggingOptionsAPI 操作为 Amazon IoT Analytics 启用和配置 Amazon CloudWatch 日志记录。本节介绍如何使用 PutLoggingOptions 与 Amazon Identity and Access Management (IAM),为 Amazon IoT Analytics 配置和启用 Amazon CloudWatch 日志记录。

有关 CloudWatch Logs 的更多信息,请参阅 Amazon CloudWatch Logs 用户指南。有关 Amazon IAM 的更多信息,请参阅Amazon Identity and Access Management 用户指南

注意

在启用 Amazon IoT Analytics 日志记录之前,请务必了解 CloudWatch Logs 访问权限。拥有 CloudWatch Logs 访问权限的用户能够查看您的调试信息。有关更多信息,请参阅 Amazon CloudWatch Logs 的身份验证和访问控制

创建 IAM 角色以启用日志记录

创建 IAM 角色以启用 Amazon CloudWatch 日志记录

  1. 使用 AmazonIAM 控制台或以下 Amazon IAM CLI 命令 createRole 创建具有信任关系策略(信任策略)的新 IAM 角色。该信任策略向 Amazon CloudWatch 等实体授予角色担任权限。

    aws iam create-role --role-name exampleRoleName --assume-role-policy-document exampleTrustPolicy.json

    exampleTrustPolicy.json 文件包含以下内容。

    注意

    此示例包括一个全局条件上下文密钥,用于防止混淆代理安全问题。将 123456789012 替换为您的 Amazon 账户 ID,将 aws-region 替换为您的 Amazon 资源 Amazon 区域。有关更多信息,请参阅跨服务混淆代理问题防范

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotanalytics.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotanalytics:aws-region:123456789012:*" } } } ] }

    以后,在调用 Amazon IoT Analytics PutLoggingOptions 命令时,您可以使用该角色的 ARN。

  2. 使用 Amazon IAM PutRolePolicy 将权限策略(a role policy)附加到步骤 1 中创建的角色。

    aws iam put-role-policy --role-name exampleRoleName --policy-name examplePolicyName --policy-document exampleRolePolicy.json

    示例 RolePolicy.json 文件包含以下内容。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. 要授权 Amazon IoT Analytics 向 Amazon CloudWatch 发布日志事件,请使用 Amazon CloudWatch 命令 PutResourcePolicy

    注意

    为防范混淆代理安全问题,我们建议在资源策略中指定 aws:SourceArn。这限制了访问权限,仅接受来自指定账户的请求。有关混淆代理问题的更多信息,请参阅跨服务混淆代理问题防范

    aws logs put-resource-policy --policy-in-json exampleResourcePolicy.json

    exampleResourcePolicy.json 文件包含以下资源策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotanalytics.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": "*", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:iotanalytics:us-east-1:123456789012:*/*" }, "StringEquals":{ "aws:SourceAccount":"123456789012" } } ] }

配置并启用日志记录

使用 PutLoggingOptions 命令为 Amazon IoT Analytics 配置并启用 Amazon CloudWatch 日志记录。loggingOptions 字段中的 roleArn 应为您在上一节中创建的角色的 ARN。还可以使用 DecribeLoggingOptions 命令来检查您的日志记录选项设置。

PutLoggingOptions

设置或更新 Amazon IoT Analytics 日志选项。如果您更新任何 loggingOptions 字段的值,则最多需要一分钟,更改才能生效。此外,如果您更改附加到您在 roleArn 字段中所指定角色的策略(例如,更正无效策略),则最多需要五分钟,更改才能生效。有关更多信息,请参阅PutLoggingOptions

DescribeLoggingOptions

检索 Amazon IoT Analytics 日志记录选项的当前设置。有关更多信息,请参阅DescribeLoggingOptions

命名空间、指标和维度

Amazon IoT Analytics 会将以下指标放入 Amazon CloudWatch 存储库:

命名空间

Amazon/IoTAnalytics

指标 描述

ActionExecution

已执行的操作的数量。

ActionExecutionThrottled

受限制的操作数。

ActivityExecutionError

执行管道活动时生成的错误数。

IncomingMessages

进入通道的消息数量。

PipelineConcurrentExecutionCount

并发执行的管道活动数量。

维度 描述

ActionType

正在监视的操作类型。

ChannelName

正在监视的通道的名称。

DatasetName

正在监视的数据集的名称。

DatastoreName

正在监视的数据存储的名称。

PipelineActivityName

正在监视的管道活动的名称。

PipelineActivityType

正在监视的管道活动的类型。

PipelineName

正在监视的管道的名称。