如何配置 AWS IoT Core 的默认日志记录设置?

2 分钟阅读
0

我想要在 AWS IoT Core 中配置 AWS IoT 日志的默认日志记录设置,以降低成本和数据流量。

简短描述

**注意:**本文仅涉及 AWS IoT Core V2 日志。

最佳做法是将 AWS IoT Core 的默认日志记录设置为较低的详细级别,并将特定资源的日志记录配置为更高的详细级别。日志详细级别包括 DISABLED(最低)、ERROR、WARN、INFO 和 DEBUG(最高)。

**重要事项:**根据您的 AWS IoT Core 实例集规模,启用更详细的日志级别可能会产生高昂的成本,并使错误排除变得更加困难。启用更详细的日志级别还会产生更高的数据流量。最佳做法是仅在进行错误排除时将 INFO 或 DEBUG 作为一种临时手段来使用。错误排除完成后,请将日志记录级别重置回详细级别较低的设置。

解决方法

先决条件

确保使用 IoT 管理员权限凭证在本地安装了 AWS 命令行界面 (AWS CLI)。AWS CLI 的默认 AWS 区域必须指向目标 AWS 区域。您必须让客户端作为已注册或未注册的 IoT 事物连接到您的 AWS IoT Core 端点并与之交互。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

设置默认日志记录级别

通过将 AWS IoT 日志的默认日志记录级别设置为 ERROR 或 WARN,您可以在日志错误或警告发生时查看它们。

**注意:**如果向 AWS Support 寻求帮助,您必须提供 AWS IoT Core 日志供他们进行错误排除。这些信息被视为客户数据,AWS Support 无法访问它们。

1.运行 list-v2-logging-levels AWS CLI 命令来查找您当前应用的日志记录级别配置:

aws iot list-v2-logging-levels

如果由于未设置日志记录级别而未配置 AWS IoT 日志,您将收到 NotConfiguredException 错误。

如果 AWS IoT Core 日志已配置但已关闭,您将收到类似于以下内容的输出:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "DISABLED"
 }
 ]
}

2.运行以下命令确认当前为 AWS IoT Core 日志配置的 AWS Identity and Access Management (IAM) 角色:

aws iot get-v2-logging-options

如果配置了 IAM 角色,您将收到类似于以下内容的输出:

{
"roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
"defaultLogLevel": "DISABLED",
"disableAllLogs": false
}

**注意:**如果未配置 IAM 角色,则 AWS IoT Core 无法向 Amazon CloudWatch 发送日志,并且您无法使用此功能。

3.将 AWS IoT Core 默认日志记录设置为一个不太详细的日志记录级别,如 ERROR 或 WARN。此操作可以使用 AWS IoT 控制台或 AWS CLI 来完成:

**注意:**如果您正在排查问题,并且没有特定的客户端属性,则可以暂时将默认日志记录级别设置为 DEBUG。将级别设置为 DEBUG 会产生大量成本和数据流量,具体取决于实例集规模及其在此级别花费的持续时间。

AWS IoT 控制台

1.登录 AWS IoT 控制台。**注意:**确保选择要配置的 AWS 区域。

2.在导航窗格中,选择设置

3.在日志下,选择管理日志

4.在日志角色下,选择创建角色。输入角色的名称,然后选择创建

5.在日志级别下,选择一个不太详细的日志记录级别(ERROR 或 WARN)。

6.选择更新

7.打开 IAM 控制台

8.在导航窗格中,选择角色

9.在搜索框中输入您创建的日志角色的名称,然后选择该角色。

10.在摘要下,记下日志角色的 ARN。它看起来类似于 arn:aws:iam::123456789012:role/service-role/iot-log-role

AWS CLI

1.使用特定 IAM policy 创建 IAM 角色,供您的 AWS IoT Core 日志服务使用。

2.运行以下命令将默认日志记录级别设置为 WARN:

aws iot set-v2-logging-options \
 --role-arn arn:aws:iam::123456789012:role/service-role/iot-log-role \
 --default-log-level WARN

**注意:**在此示例中,请将 --role-arn 替换为您创建的 IAM 角色的 ARN。请将 WARN 替换为要设置为默认级别的日志记录级别。

3.运行以下命令,以确认更改已反映在您的日志记录级别中:

aws iot list-v2-logging levels

输出应类似于以下消息:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 }
 ]
}

4.运行以下命令,以确认更改已反映在您的日志记录选项上:

aws iot list-v2-logging-options

输出应类似于以下消息:

{
 "roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
 "defaultLogLevel": "WARN",
 "disableAllLogs": false
}

监控生成的日志

最佳做法是监控 IoT 日志,了解是否存在疑难或问题。您可以使用 Amazon CloudWatch Logs 控制台或 AWS CLI 来监控您的 AWS IoT Core 日志。有关详细信息,请参阅在 AWS IoT Core 中管理 AWS IoT 日志的日志记录级别的最佳做法是什么?中的“监控日志条目”一节

相关信息

监控 AWS IoT

如何为 AWS IoT Core 中的特定资源动态配置日志记录级别?

如何为 AWS IoT Core 中的特定资源手动配置日志记录级别?

AWS 官方
AWS 官方已更新 1 年前
没有评论