如何配置 AWS IoT Core 的默认日志记录设置?
我想要在 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 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前