本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 Amazon IoT 日志记录
您必须使用 Amazon IoT 控制台、CLI 或 API 启用日志记录,然后才能监控和记录 Amazon IoT 活动。
您可以为所有 Amazon IoT 或仅为特定事物组启用日志记录。您可以使用 Amazon IoT 控制台、CLI 或 API 配置 Amazon IoT 日志记录;但是,必须使用 CLI 或 API 为特定事物组配置日志记录。
在考虑如何配置 Amazon IoT 日志记录时,除非另有指定,否则默认日志记录配置将确定如何记录 Amazon IoT 活动。首先,您可能要获取默认日志级别为 INFO 或 DEBUG 的详细日志。查看初始日志后,您可以将默认日志级别更改为较低的详细程度级别(如 WARN 或 ERROR),并对可能需要更多关注的资源设置更详细的资源特定日志级别。日志级别可随时更改。
配置日志记录角色和策略
在 Amazon IoT 中启用日志记录之前,您必须创建一个 IAM 角色和一个策略,用于向 Amazon 授予代表您监控 Amazon IoT 活动的权限。
注意
在启用Amazon IoT日志记录之前,请务必了解 CloudWatch Logs 访问权限。拥有 L CloudWatch ogs 访问权限的用户可以从您的设备查看调试信息。有关更多信息,请参阅 Amazon CloudWatch Logs 的身份验证和访问控制。
如果您预计负载测试会在 Amazon IoT Core 中导致高流量模式,请考虑关闭 IoT 日志记录以防止节流。如果检测到高流量,我们的服务可能会禁用您账户中的日志记录。
以下显示了如何为 Amazon IoT Core 资源创建日志记录角色和策略。有关如何为 WA LoRa N 创建 IAM 日志角色和策略的信息,请参阅为 Amazon IoT Wireless 创建日志记录角色和策略。Amazon IoT Core
创建日志记录角色
要创建日志记录角色,请打开 IAM 控制台的角色中心
-
在 Select trusted entity(选择受信任的实体)下,选择 Amazon Service(Amazon 服务)。然后在 Use case(用例)下,选择 IoT。如果您看不到 IoT,请在 Use cases for other Amazon services:(其他 Amazon 服务的用例:)下拉菜单中输入并搜索 IoT。选择下一步。
-
在 Add permissions(添加权限)页面上,您将看到自动附加到服务角色的策略。选择下一步。
-
在 Name, review, and create(命名、检查和创建)页面上,为此角色输入 Role name(角色名称)和 Role description(角色描述),然后选择 Create role(创建角色)。
-
在角色列表中,找到您创建的角色,将其打开,然后复制要在您创建时使用的角色 ARN (
logging-role-arn)在 Amazon IoT(控制台)中配置默认日志记录。
日志记录角色策略
以下策略文档提供了角色策略和信任策略,借助这些策略,可Amazon IoT CloudWatch 代表您向发出了什么请求。如果您还允许Amazon IoT Core适用于 LoRa WAN 的提交日志条目,则您将看到一个为您创建的策略文档,其中将记录这两个活动。有关如何为 WA LoRa N 创建 IAM 日志角色和策略的信息,请参阅为 Amazon IoT Wireless 创建日志记录角色和策略。Amazon IoT Core
注意
在您创建日志记录角色时已为您创建这些文档。这些文档具有变量 ${partition}、、${region} 和 ${log_stream},必须用您的值替换这些变量。${accountId}
角色策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:${partition}:logs:${region}:${accountId}:log-group::${log-stream}:", "arn:${partition}:logs:${region}:${accountId}:log-group::/aws/iot/" ] } ] }
信任策略仅记录 Amazon IoT Core 活动:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
在 Amazon IoT(控制台)中配置默认日志记录
本部分介绍如何使用 Amazon IoT 控制台为所有 Amazon IoT 配置日志记录。要仅为特定事物组配置日志记录,您必须使用 CLI 或 API。有关为特定事物组配置日志记录的信息,请参阅在 Amazon IoT 中配置资源特定的日志记录 (CLI)。
使用 Amazon IoT 控制台为所有 Amazon IoT 配置默认日志记录
-
登录 Amazon IoT 控制台。有关更多信息,请参阅打开 Amazon IoT 控制台:
-
在左侧导航窗格中,选择 Settings (设置)。在 Settings(设置)页面的 Logs(日志)部分中,选择 Manage logs(管理日志)。
Logs(日志)页面显示 Amazon IoT 使用的日志记录角色和详细程度级别。
-
在 Logs(日志)页面上,选择 Select role(选择角色)以指定您在 创建日志记录角色 中创建的角色,或选择 Create Role(创建角色)以创建用于日志记录的新角色。
-
选择 Log le vel(详细程度级别),该级别能够描述要显示在日志中的 CloudWatch 日志条目的详细信息级别。
-
单击 Update (更新) 以保存您的更改。
启用日志记录后,请访问 在 CloudWatch 控制台中查看Amazon IoT日志 以了解有关查看日志条目的更多信息。
在 Amazon IoT 中配置默认日志记录 (CLI)
本部分介绍如何使用 CLI 为 Amazon IoT 配置全局日志记录。
注意
您也可以使用 API 执行此流程,即使用 Amazon API 中与此处显示的 CLI 命令对应的方法。
使用 CLI 为 Amazon IoT 配置默认日志记录
-
使用 set-v2-logging-options
命令为您的账户设置日志记录选项。 aws iot set-v2-logging-options \ --role-arnlogging-role-arn\ --default-log-levellog-level其中:
- --role-arn
-
向授予在 Logs 中写入日志的Amazon IoT权限的 CloudWatch 角色 ARN。
- --default-log-level
-
要使用的日志级别。有效值为:
ERROR、WARN、INFO、DEBUG或DISABLED。 - --no-disable-all-logs
-
启用所有 Amazon IoT 日志记录的可选参数。使用此参数可在当前禁用日志记录时启用日志记录。
- --disable-all-logs
-
禁用所有 Amazon IoT 日志记录的可选参数。使用此参数可在当前启用日志记录时禁用日志记录。
-
使用 get-v2-logging-options
命令获取当前日志记录选项。 aws iot get-v2-logging-options
启用日志记录后,请访问 在 CloudWatch 控制台中查看Amazon IoT日志 以了解有关查看日志条目的更多信息。
注意
Amazon IoT 会继续支持使用较早的命令(set-logging-options 和 get-logging-options)在您的账户中设置和获取全局日志记录。请注意,使用这些命令时,生成的日志将包含纯文本而不是 JSON 负载,并且日志记录延迟通常会更高。将不会再对这些较早命令的实施进行更多改进。建议您使用“v2”版本来配置日志记录选项,如果可能,还请更改使用早期版本的传统应用程序。
在 Amazon IoT 中配置资源特定的日志记录 (CLI)
本部分介绍如何使用 CLI 为 Amazon IoT 配置资源特定的日志记录。可通过资源特定的日志记录为特定事物组指定日志记录级别。
事物组可包含其它事物组以创建分层关系。此流程介绍如何配置单个事物组的日志记录。您可以将此流程应用于层次结构中的父事物组,以配置层次结构中所有事物组的日志记录。您也可以将此流程应用于子事情组,以覆盖其父级的日志记录配置。
除了事物组之外,您还可以录入目标,例如设备的客户端 ID、源 IP 和主体 ID。
注意
您也可以使用 API 执行此流程,即使用 Amazon API 中与此处显示的 CLI 命令对应的方法。
使用 CLI 为 Amazon IoT 配置资源特定的日志记录
-
使用 set-v2-logging-options
命令为您的账户设置日志记录选项。 aws iot set-v2-logging-options \ --role-arnlogging-role-arn\ --default-log-levellog-level其中:
- --role-arn
-
向授予在 Logs 中写入日志的Amazon IoT权限的 CloudWatch 角色 ARN。
- --default-log-level
-
要使用的日志级别。有效值为:
ERROR、WARN、INFO、DEBUG或DISABLED。 - --no-disable-all-logs
-
启用所有 Amazon IoT 日志记录的可选参数。使用此参数可在当前禁用日志记录时启用日志记录。
- --disable-all-logs
-
禁用所有 Amazon IoT 日志记录的可选参数。使用此参数可在当前启用日志记录时禁用日志记录。
-
使用 set-v2-logging-level
命令为事物组配置资源特定的日志记录。 aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name\ --log-levellog_level- --log-target
-
您要配置日志记录的资源的类型和名称。
target_type值必须是下列项之一:THING_GROUP|CLIENT_ID|SOURCE_IP|PRINCIPAL_ID。log-target 参数值可以是文本(如前面的命令示例所示),也可以是 JSON 字符串,如以下示例所示。aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-levellog_level - --log-level
-
为指定资源生成日志时使用的日志记录级别。有效值为:DEBUG、INFO、ERROR、WARN 和 DISABLED
aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=ClientId1\ --log-levelDEBUG
-
使用 list-v2-logging-levels
命令列出当前配置的日志记录级别。 aws iot list-v2-logging-levels -
使用 delete-v2-logging-level
命令删除资源特定的日志记录级别,比如下面的例子。 aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1- --targetType
-
target_type值必须是下列项之一:THING_GROUP|CLIENT_ID|SOURCE_IP|PRINCIPAL_ID。 - --targetName
-
要删除日志记录级别的事物组的名称。
启用日志记录后,请访问 在 CloudWatch 控制台中查看Amazon IoT日志 以了解有关查看日志条目的更多信息。
日志级别
这些日志级别确定记录的事件,并应用于默认日志级别和资源特定的日志级别。
- ERROR (错误)
-
导致操作失败的任何错误。
日志仅包含 ERROR 信息。
- WARN
-
可能导致系统中出现不一致问题,但不会导致操作失败的所有情况。
日志包括 ERROR 和 WARN 信息。
- INFO
-
有关事物流的高级别信息。
日志包括 INFO、ERROR 和 WARN 信息。
- DEBUG
-
可能有助于调试问题的信息。
日志包括 DEBUG、INFO、ERROR 和 WARN 信息。
- DISABLED
-
所有日志记录均处于禁用状态。