如何在 AWS IoT Core 中为特定资源手动配置日志记录级别?
我想为我的 AWS IoT Core 日志手动配置特定资源的日志记录。
简短描述
**注意:**本文仅涉及 AWS IoT Core V2 日志。
AWS IoT Core 日志允许您为以下对象设置特定资源的日志记录级别:
- 已注册为事物的客户端
- 未注册为事物的客户端
其做法是,为特定目标类型创建日志记录级别并配置其详细级别。目标类型包括 THING_GROUP、CLIENT_ID、SOURCE_IP 或 PRINCIPAL_ID。最佳做法是,将默认日志记录配置为较低的详细级别,并将特定资源的日志记录配置为更高的详细级别。
日志详细级别包括 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 Core 中注册为 IoT 事物,并且必须使用相同客户端 ID 关联的事物名称进行连接。然后,您就可以使用目标类型为 THING_GROUP 的静态事物组来管理该事物组。如果您在层次结构中配置了父事物组,则该配置也适用于该层次结构的子事物组。
**注意:**如果您使用静态事物组作为目标类型,则必须考虑其限额限制。有关详细信息,请参阅 AWS IoT Core 事物组资源限制和限额。
1.创建两个静态事物组。您可以使用 AWS IoT 控制台或使用 AWS CLI 中的 create-thing-group 命令来完成此操作。本示例使用了 AWS CLI。
aws iot create-thing-group --thing-group-name logging_level_info aws iot create-thing-group --thing-group-name logging_level_debug
**注意:**如果您使用的是现有事物组,请将 logging_level_info 和 logging_level_debug 替换为您的事物组的名称。
输出类似于以下消息:
{ "thingGroupName": "logging_level_info", "thingGroupArn": "arn:aws:iot:eu-west1-1:123456789012:thinggroup/logging_level_info", "thingGroupId": "58dd497e-97fc-47d2-8745-422bb21234AA" } { "thingGroupName": "logging_level_debug", "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug", "thingGroupId": "2a9dc698-9a40-4487-81ec-2cb4101234BB" }
2.运行 SetV2LoggingLevel 命令,以为事物组设置日志记录级别: **注意:**日志级别配置更改最多可能需要 10 分钟才能反映出来。
aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=logging_level_info \ --log-level INFO aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=logging_level_debug \ --log-level DEBUG
**注意:**请将 INFO 和 DEBUG 替换为要为每个事物组设置的日志级别。
3.运行以下命令,以确认日志记录级别配置正确:
aws iot list-v2-logging-levels
输出类似于以下消息:
{ "logTargetConfigurations": [ { "logTarget": { "targetType": "DEFAULT" }, "logLevel": "WARN" }, { "logTarget": { "targetType": "THING_GROUP", "targetName": "logging_level_debug" }, "logLevel": "DEBUG" }, { "logTarget": { "targetType": "THING_GROUP", "targetName": "logging_level_info" }, "logLevel": "INFO" } ] }
4.运行 AddThingToThingGroup 命令,以将事物添加到相应的事物组:
aws iot add-thing-to-thing-group \ --thing-name YourThingName1 \ --thing-group-name logging_level_info
**注意:**请将 YourThingName1 替换为要添加到事物组的事物的名称。
为未注册为事物的客户端配置手动日志记录
如果您未在 AWS IoT Core 上注册您的事物,则仍然可以为多个目标类型添加特定资源的日志记录级别。这些目标类型是客户端属性,包括 CLIENT_ID、SOURCE_IP 或 PRINCIPAL_ID。如果您的设备已注册为 AWS IoT Core 事物,则仍然可以使用这些客户端属性来管理日志记录级别。
1.运行 SetV2LoggingLevel 命令,以为特定客户端设置日志记录级别:
aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=YourClientId \ --log-level YourLogLevel
**注意:**要使用不同的目标类型,请将 CLIENT_ID 替换为目标客户端使用的支持的值,例如 SOURCE_IP 或 PRINCIPAL_ID。
2.运行以下命令,以确认日志记录级别配置正确:
aws iot list-v2-logging-levels
输出类似于以下消息:
... { "logTarget": { "targetType": "CLIENT_ID", "targetName": "YourClientId" }, "logLevel": "YourLogLevel" } ...
监控生成的日志
最佳做法是监控 IoT 日志,了解是否存在疑难或问题。您可以使用 Amazon CloudWatch Logs 控制台或 AWS CLI 来监控您的 AWS IoT Core 日志。有关详细信息,请参阅在 AWS IoT Core 中管理 AWS IoT 日志的日志记录级别的最佳做法是什么?中的“监控日志条目”一节
相关信息
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 个月前
- AWS 官方已更新 2 年前