在 AWS IoT Core 中配置我的 AWS IoT 日志时,我想遵循最佳实践,以降低成本和数据流量。
简短描述
**注意:**以下解决方法仅适用于 AWS IoT Core 日志 v2。
最佳做法是了解必须监控哪些 AWS IoT Core 资源以及监控级别。先对 AWS IoT Core 资源进行分段,然后为每段分配合适的日志级别。您可以为资源设置默认日志级别或特定日志级别。
例如,默认日志记录,获取详细程度较低的日志记录级别,例如 ERROR 或 WARN。配置默认日志记录时,该配置将应用于所有资源,除非资源配置了特定的日志记录。要获得更详细的级别(例如 INFO 或 DEBUG),请配置资源特定的日志记录。可以为不同的目标类型配置资源级别的日志记录,如 THING_GROUP、CLIENT_ID、SOURCE_IP 或 PRINCIPAL_ID。
可以同时使用默认日志记录和特定于某资源的日志记录。
**重要事项:**根据您的 AWS IoT Core 实例集大小,日志级别越详细,可能产生的成本越高,且可能更难进行故障排查。日志级别越详细,产生的数据流量也会更高。最佳做法是仅使用 INFO 或 DEBUG 作为临时手段进行故障排查。排除故障后,将日志级别重置为详细程度较低的级别。有关日志级别的更多信息,请参阅日志级别。
解决方法
先决条件:
- 本地计算机上安装了 AWS 命令行界面(AWS CLI)且拥有 AWS IoT 管理员权限凭证。AWS CLI 的默认 AWS 区域必须指向目标 AWS 区域。
- 客户端已以注册或未注册的 AWS IoT 物品身份连接到您的 AWS IoT Core。
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI。
使用默认日志记录来降低成本和数据流量
将 AWS IoT 日志的默认日志记录级别设置为 ERROR 或 WARN 后,可以查看日志错误或警告。详细的级别可以降低成本和数据流量。有关详细信息,请参阅如何配置 AWS IoT Core 的默认日志记录设置?
**注意:**如果创建了 AWS Support 案例,则必须提供 AWS IoT Core 日志。
手动记录资源
有关如何手动记录资源的信息,请参阅如何在 AWS IoT Core 中为特定资源手动配置日志记录级别?
动态记录资源
有关如何动态记录资源的更多信息,请参阅如何为 AWS IoT Core 中的特定资源动态配置日志记录级别?
监控日志条目
您可以使用 Amazon CloudWatch 控制台或 AWS CLI 监控您的 AWS IoT 日志条目。
CloudWatch 控制台
要在 CloudWatch 控制台中监控 AWS IoT 日志,请参阅 Viewing AWS IoT logs in the CloudWatch console。
AWS CLI
要在 AWS CLI 中获取日志,请运行 filter-log-events 命令。将 YourStartTimeInMilliseconds 替换为以毫秒为单位的开始时间:
aws logs filter-log-events --log-group-name AWSIotLogsV2 \
--start-time YourStartTimeInMilliseconds
**注意:**可以使用 --filter-pattern 搜索特定的日志属性。有关更多信息,请参阅 Filter and pattern syntax for metric filters, subscription filters, filter log events, and Live Tail。
logLevel 值是为目标配置的日志级别。在此示例中,目标的日志级别为 INFO:
{
"timestamp": "2017-08-10 15:37:23.476",
"logLevel": "INFO",
"traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
"accountId": "123456789012",
"status": "Success",
"eventType": "Connect",
"protocol": "MQTT",
"clientId": "abf27092886e49a8a5c1922749736453",
"principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a123456",
"sourceIp": "123.123.123.123",
"sourcePort": 13490
}
**注意:**只有通过 WSS 协议使用 MQTT 或 MQTT 连接到 AWS IoT Core 时,CLIENT_ID 才可用。HTTPS 协议不支持客户端 ID。改用 SOURCE_IP 或 PRINCIPAL_ID 目标类型。
编辑或删除日志级别
您可以随时更改默认日志级别和特定于某资源的日志级别。最多可能需要 10 分钟才能完成更改。
运行 delete-v2-logging-level AWS CLI 命令。将 YourTargetName 替换为目标名称:
aws iot delete-v2-logging-level \
--target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \
--target-name YourTargetName
相关信息
AWS IoT Device Management 端点和限额
监控 AWS IoT
AWS IoT Device Management 定价