View a markdown version of this page

CloudWatch 日志 Amazon IoT 日志条目 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudWatch 日志 Amazon IoT 日志条目

的每个组件 Amazon IoT 都会生成自己的日志条目。每个日志条目都有一个 eventType 指定导致生成日志条目的操作。本部分介绍以下 Amazon IoT 组件所生成的日志条目。

消息代理日志条目

Amazon IoT 消息代理生成以下事件的日志条目:

Connect 日志条目

当 MQTT 客户端连接Connect时, Amazon IoT 消息代理会生成一个带有eventType的日志条目。

Connect 日志条目示例

{ "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": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

除了常用 CloudWatch 日志属性Connect日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

Disconnect 日志条目

当 MQTT 客户端断开连接Disconnect时, Amazon IoT 消息代理会生成一个带有eventType的日志条目。

Disconnect 日志条目示例

{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "Disconnect", "protocol": "MQTT", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490, "reason": "DUPLICATE_CLIENT_ID", "details": "A new connection was established with the same client ID", "disconnectReason": "CLIENT_INITIATED_DISCONNECT" }

除了常用 CloudWatch 日志属性Disconnect日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

reason

客户端断开连接的原因。

details

错误的简要说明。

disconnectReason

客户端断开连接的原因。

Ping 日志条目

当 Amazon IoT 消息代理处理来自已连接客户端的 MQTT P eventType INGREQ 并发送相应的 PINGRESP Ping 时,它会生成一个带有的日志条目。每次 Ping 操作都会发出一个日志条目。

重要

Ping 日志条目是可选的,默认情况下是禁用的。发射阈值与每个条目的结果相匹配:成功条目在DEBUG关卡发射,失败条目在关卡发射。ERROR因此,每当适用于连接的事件级别或 Resource-specific覆盖设置为或更详细的级别(、或DEBUG)时,您都会看到 ERROR Ping 失败条目 WARNINFO,但是只有当该级别设置为时,才会发布 Ping 成功条目。DEBUG要配置这些设置,请参阅配置账户并 Event-level 登录 Amazon IoT (CLI)在中配置 Resource-specific 替代 Amazon IoT (CLI)

成功时,logLevelDEBUGstatusSuccess。失败时(例如,当客户端连接在发送 PINGRESP 之前终止时),logLevelERROR,是。status Failure

Ping 日志条目示例(成功)

{ "timestamp": "2025-10-31 15:37:23.476", "logLevel": "DEBUG", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "Ping", "protocol": "MQTT", "latency": 128, "requestTimestamp": "2025-10-31 15:37:23.348", "responseTimestamp": "2025-10-31 15:37:23.476", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

Ping 日志条目示例(失败)

{ "timestamp": "2025-10-31 15:37:23.476", "logLevel": "ERROR", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Failure", "eventType": "Ping", "protocol": "MQTT", "requestTimestamp": "2025-10-31 15:37:23.476", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490, "reason": "CONNECTION_ALREADY_CLOSED", "details": "Connection has already closed" }

除了 常用 CloudWatch 日志属性 之外,Ping 日志条目还包含以下属性:

protocol

用于提出请求的协议。此值始终为 MQTT

延迟

从接收 PINGREQ 到发送 PINGRESP 之间的时间,以毫秒为单位。仅当为时,此字段status才会出现Success

请求时间戳

Amazon IoT Core 收到来自客户端的 PINGREQ 时的时间戳。

响应时间戳

将 PINGRESP Amazon IoT Core 发送给客户端时的时间戳。仅当为时,此字段status才会出现Success

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

reason

Ping 操作失败的原因。仅当为时,此字段status才会出现Failure

details

错误的简要说明。仅当为时,此字段status才会出现Failure

Connection.AuthNError 日志条目

当由于身份验证失败而导致客户端连接尝试被拒绝Connection.AuthNError时, Amazon IoT 消息代理会生成一个eventType带有的日志条目。此日志条目的 “始终” ERROR 和 “始终status是” FailurelogLevel此日志条目与Connection.AuthNError CloudWatch指标相对应。

重要

Connection.AuthNError默认情况下,日志条目是选择加入和禁用的。它们是在ERROR日志级别发出的,因此只有当适用于连接的事件级别或Resource-specific 覆盖设置为或更详细的级别(WARNERROR或)时,才会发布Connection.AuthNError日志条目。INFO DEBUG要配置这些设置,请参阅配置账户并 Event-level 登录 Amazon IoT (CLI)在中配置 Resource-specific 替代 Amazon IoT (CLI)

注意

此日志条目发布到拥有 TLS 握手中提供的服务器名称指示 (SNI) 的。 Amazon Web Services 账户 如果客户端未提供 SNI,或者无法将 SNI 解析到账户,则不会发出任何日志条目或指标。

Connection.AuthNError 日志条目示例

{ "timestamp": "2025-10-31 15:37:23.476", "logLevel": "ERROR", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Failure", "eventType": "Connection.AuthNError", "protocol": "MQTT", "authenticationType": "AWS_X509", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490, "targetIp": "52.94.236.10", "targetPort": 8883, "serverNameIndication": "a1b2c3d4e5f6g7-ats.iot.us-east-1.amazonaws.com", "reason": "DEVICE_CERTIFICATE_NOT_REGISTERED", "details": "Device certificate is not registered" }

除了 常用 CloudWatch 日志属性 之外,Connection.AuthNError 日志条目还包含以下属性:

protocol

用于提出请求的协议。有效值为 MQTTHTTP

身份验证类型

用于连接尝试的身份验证类型。有效值为 AWS_X509AWS_SIGV4CUSTOM_AUTHCUSTOM_AUTH_X509

clientId

发出请求的客户的 ID(如果有)。

principalId

提出请求的委托人的 ID(如果有)。

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

targetIp

连接的目标 IP 地址。并非所有日志条目中都存在此字段。

TargetPort

连接的目标端口。

服务器 NameIndication

客户端提供的 TLS 服务器名称指示 (SNI) 扩展主机名。

reason

客户端身份验证失败的原因。Connection.AuthNError 错误代码有关可能值的列表,请参阅。

details

身份验证失败的简要描述。

Connection.AuthNError 错误代码

下表列出了Connection.AuthNError日志条目中可能出现的reason错误代码和相应details消息。将来可能会添加其他错误代码。

错误代码 错误消息
CUSTOM_AUTHORIZER_LAMBDA_EXECUTION_ERROR 自定义授权方 Lambda 调用失败
CUSTOM_AUTHORIZER_NOT_FOUND 找不到自定义授权方
CUSTOM_AUTHORIZER_PARAMETER_INVALID 自定义身份验证参数无效
DEVICE_CERTIFICATE_INACTIVE 设备证书未激活
DEVICE_CERTIFICATE_NOT_REGISTERED 设备证书未注册
DEVICE_CERTIFICATE_REVOKED 设备证书已被吊销
DOMAIN_CONFIGURATION_DISABLED 提供的服务器名称指示 (SNI) 的域配置已禁用
DOMAIN_CONFIGURATION_INVALID 域配置中的终端节点类型无效
INTERNAL_SERVER_ERROR 内部服务器错误
NOT_AUTHENTICATED 无法对提供的凭证进行身份验证
SECURITY_TOKEN_EXPIRED 安全令牌已过期
SECURITY_TOKEN_INVALID 请求中包含的安全令牌无效
SECURITY_TOKEN_SIGNATURE_MISMATCH 请求签名与提供的签名不匹配
SNI_MISUSED 客户使用了与此账户无关的 SNI

DeleteConnection 日志条目

删除 MQTT 客户端连接DeleteConnection时, Amazon IoT 消息代理会生成一个带有eventType的日志条目。

DeleteConnection 日志条目示例

{ "timestamp": "2025-08-09 15:37:23.476", "logLevel": "INFO", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "DeleteConnection", "protocol": "HTTP", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

除了常用 CloudWatch 日志属性DeleteConnection日志条目还包含以下属性:

clientId

将被断开连接的客户端的 ID。

principalId

发出请求的委托人的 ID。有关如何使用主体 ID 识别主体的信息,请参阅《IAM 用户指南》中的比较 IAM 身份和凭证

protocol

用于提出请求的协议。有效值为 HTTP

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

GetRetainedMessage 日志条目

Amazon IoT 消息代理生成一个日志条目,eventType其中包含GetRetainedMessage何时GetRetainedMessage被调用。

GetRetainedMessage 日志条目示例

{ "timestamp": "2017-08-07 18:47:56.664", "logLevel": "INFO", "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", "accountId": "123456789012", "status": "Success", "eventType": "GetRetainedMessage", "protocol": "HTTP", "topicName": "a/b/c", "qos": "1", "lastModifiedDate": "2017-08-07 18:47:56.664" }

除了常用 CloudWatch 日志属性GetRetainedMessage日志条目还包含以下属性:

最后一次 ModifiedDate

存储保留消息的 Epoch 日期和时间(以毫秒为单位)。 Amazon IoT

protocol

用于提出请求的协议。有效值:HTTP

qos

发布请求中使用的服务质量(QoS)级别。有效值为 01

topicName

已订阅主题的名称。

ListRetainedMessage 日志条目

Amazon IoT 消息代理生成一个日志条目,eventType其中包含ListRetainedMessage何时ListRetainedMessages被调用。

ListRetainedMessage 日志条目示例

{ "timestamp": "2017-08-07 18:47:56.664", "logLevel": "INFO", "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", "accountId": "123456789012", "status": "Success", "eventType": "ListRetainedMessage", "protocol": "HTTP" }

除了常用 CloudWatch 日志属性ListRetainedMessage日志条目还包含以下属性:

protocol

用于提出请求的协议。有效值:HTTP

ListSubscriptions 日志条目

当收到列出客户端订阅eventType的请求ListSubscriptions时, Amazon IoT 消息代理会生成一个带有的日志条目。

ListSubscriptions 日志条目示例

{ "timestamp": "2025-08-22 19:57:46.587", "logLevel": "INFO", "traceId": "5bea658a-0752-bf20-770f-ad17c8dabb95", "accountId": "987654321", "status": "Success", "eventType": "ListSubscriptions", "protocol": "HTTP", "clientId": "abc", "principalId": "AIDAZPOK3C3545MCMYATF", "sourceIp": "52.94.133.137", "sourcePort": 13490, "maxResults": 100 }

除了 常用 CloudWatch 日志属性 之外,ListSubscriptions 日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值:HTTP

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

maxResults

请求的最大结果数。

GetConnection 日志条目

当收到获取连接信息的请求GetConnection时, Amazon IoT 消息代理会生成一个eventType带有的日志条目。

GetConnection 日志条目示例

{ "timestamp": "2025-08-22 19:19:50.679", "logLevel": "INFO", "traceId": "7a04de1a-d1a3-50bc-3ca5-96b1ee293dae", "accountId": "987654321", "status": "Success", "eventType": "GetConnection", "protocol": "HTTP", "clientId": "aClient", "principalId": "AIDAZPOK3C3545MCMYATF", "sourceIp": "52.94.133.137", "sourcePort": 31983 }

除了 常用 CloudWatch 日志属性 之外,GetConnection 日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值:HTTP

sourceIp

发起 API 请求的 IP 地址。

sourcePort

API 请求的起源端口。

Publish-In 日志条目

当 Amazon IoT 消息代理收到 MQTT 消息时,它会生成一个带有为eventTypePublish-In日志条目。

Publish-In 日志条目示例

{ "timestamp": "2017-08-10 15:39:30.961", "logLevel": "INFO", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "status": "Success", "eventType": "Publish-In", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/get", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490, "retain": "True" }

除了常用 CloudWatch 日志属性Publish-In日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

保留

当消息的 REATIN 标志的值设置为 True 时使用的属性。如果消息未设置 REATIN 标志,则该属性不会显示在日志条目中。有关更多信息,请参阅 MQTT 保留消息

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

topicName

已订阅主题的名称。

Publish-Out 日志条目

当消息代理发布 MQTT 消息时,它会生成一个 eventTypePublish-Out 的日志条目

Publish-Out 日志条目示例

{ "timestamp": "2017-08-10 15:39:30.961", "logLevel": "INFO", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "status": "Success", "eventType": "Publish-Out", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/get", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

除了常用 CloudWatch 日志属性Publish-Out日志条目还包含以下属性:

clientId

接收有关该 MQTT 主题的消息的订阅客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

topicName

已订阅主题的名称。

排队的日志条目

当具有持续会话的设备断开连接时,MQTT 消息代理会存储该设备的消息并 Amazon IoT 生成事件类型为的日志条目。Queued有关 MQTT 持久会话的更多信息,请参阅MQTT 持久会话

排队的服务器错误日志条目示例

{ "timestamp": "2022-08-10 15:39:30.961", "logLevel": "ERROR", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "topicName": "$aws/things/MyThing/get", "clientId": "123123123", "qos": "1", "protocol": "MQTT", "eventType": "Queued", "status": "Failure", "details": "Server Error" }

除了常用 CloudWatch 日志属性Queued服务器错误日志条目还包含以下属性:

clientId

消息排队的客户端的 ID。

details
服务器错误

服务器错误导致无法存储消息。

protocol

用于提出请求的协议。该值始终为 MQTT

qos

请求的服务质量(QoS)级别。该值将始终为 1,因为不存储 QoS 为 0 的消息。

topicName

已订阅主题的名称。

排队的成功日志条目示例

{ "timestamp": "2022-08-10 15:39:30.961", "logLevel": "INFO", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "topicName": "$aws/things/MyThing/get", "clientId": "123123123", "qos": "1", "protocol": "MQTT", "eventType": "Queued", "status": "Success" }

除此之外常用 CloudWatch 日志属性Queued成功日志条目还包含以下属性:

clientId

消息排队的客户端的 ID。

protocol

用于提出请求的协议。该值始终为 MQTT

qos

请求的服务质量(QoS)级别。该值将始终为 1,因为不存储 QoS 为 0 的消息。

topicName

已订阅主题的名称。

排队的限制日志条目示例

{ "timestamp": "2022-08-10 15:39:30.961", "logLevel": "ERROR", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "topicName": "$aws/things/MyThing/get", "clientId": "123123123", "qos": "1", "protocol": "MQTT", "eventType": "Queued", "status": "Failure", "details": "Throttled while queueing offline message" }

除了常用 CloudWatch 日志属性,受Queued限制的日志条目还包含以下属性:

clientId

消息排队的客户端的 ID。

details
排队离线消息时已受限制

客户端超出了 Queued messages per second per account 限制,因此未存储消息。

protocol

用于提出请求的协议。该值始终为 MQTT

qos

请求的服务质量(QoS)级别。该值将始终为 1,因为不存储 QoS 为 0 的消息。

topicName

已订阅主题的名称。

Subscribe 日志条目

当 MQTT 客户端订阅主题Subscribe时, Amazon IoT 消息代理会生成一个eventType带有的日志条目。

MQTT 3 订阅日志条目示例

{ "timestamp": "2017-08-10 15:39:04.413", "logLevel": "INFO", "traceId": "7aa5c38d-1b49-3753-15dc-513ce4ab9fa6", "accountId": "123456789012", "status": "Success", "eventType": "Subscribe", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/#", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

除了常用 CloudWatch 日志属性Subscribe日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

protocol

用于提出请求的协议。该值始终为 MQTT

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

topicName

已订阅主题的名称。

MQTT 5 订阅日志条目示例

{ "timestamp": "2022-11-30 16:24:15.628", "logLevel": "INFO", "traceId": "7aa5c38d-1b49-3753-15dc-513ce4ab9fa6", "accountId": "123456789012", "status": "Success", "eventType": "Subscribe", "protocol": "MQTT", "topicName": "test/topic1,$invalid/reserved/topic", "subscriptions": [ { "topicName": "test/topic1", "reasonCode": 1 }, { "topicName": "$invalid/reserved/topic", "reasonCode": 143 } ], "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

对于 MQTT 5 订阅操作,除了 常用 CloudWatch 日志属性MQTT 3 订阅日志条目属性外,MQTT 5 Subscribe 日志条目还包含以下属性:

订阅

订阅请求中的已请求主题与各个 MQTT 5 原因代码之间的映射列表。有关更多信息,请参阅 MQTT 原因代码

取消订阅日志条目

当 MQTT 客户端取消订阅 MQTT eventType 主题Unsubscribe时, Amazon IoT 消息代理会生成一个带有的日志条目。

MQTT 3 取消订阅日志条目示例

{ "timestamp": "2024-08-20 22:53:32.844", "logLevel": "INFO", "traceId": "db6bd09a-2c3f-1cd2-27cc-fd6b1ce03b58", "accountId": "123456789012", "status": "Success", "eventType": "Unsubscribe", "protocol": "MQTT", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

除了常用 CloudWatch 日志属性Unsubscribe日志条目还包含以下属性:

protocol

用于提出请求的协议。该值始终为 MQTT

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

SendDirectMessage 日志条目

当发出 SendDirectMessage API 请求SendDirectMessage时, Amazon IoT 消息代理会生成一个带有为eventType的日志条目。

Amazon IoT Core 启用 IoT CloudWatch 日志记录时,将 SendDirectMessage 事件记录到日志。有关配置日志记录的更多信息,请参阅配置 Amazon IoT 日志记录

SendDirectMessage 成功日志条目示例

{ "timestamp": "2026-01-20 20:44:00.123", "logLevel": "INFO", "traceId": "1a2b3c4d-1234-3214-abcd-1a2b3c4d5e6f", "accountId": "123456789012", "status": "Success", "eventType": "SendDirectMessage", "protocol": "HTTP", "topicName": "commands/reboot", "clientId": "mydevice-002", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "confirmation": true, "sourceIp": "203.0.113.45", "sourcePort": 52847, "timeout": 3 }

SendDirectMessage 失败日志条目示例

{ "timestamp": "2026-01-15 20:30:00.123", "logLevel": "ERROR", "traceId": "1a2b3c4d-1234-5678-abcd-1a2b3c4d5e6f", "accountId": "123456789012", "status": "Failure", "eventType": "SendDirectMessage", "protocol": "HTTP", "topicName": "commands/reboot", "clientId": "myDevice", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "confirmation": true, "sourceIp": "203.0.113.45", "sourcePort": 52847, "reason": "DELIVERY_CONFIRMATION_TIMEOUT", "details": "The delivery confirmation was not received within the specified timeout period", "timeout": 2 }

除了 常用 CloudWatch 日志属性 之外,SendDirectMessage 日志条目还包含以下属性:

clientId

接收私信的客户端 ID。

topicName

发送消息的主题。

protocol

用于提出请求的协议。有效值:HTTP

确认

是否要求确认配送。有效值为 truefalse

timeout

等待接收客户确认送达的最长时间(以秒为单位)。只有在存在的时候才会confirmation出现true

reason

失败的原因代码。

details

错误的简要说明。

principalId

发出请求的委托人的 ID。

sourceIp

请求的源 IP 地址。

sourcePort

请求的源端口。

原因代码

以下原因代码和详细信息将出现在失败日志条目中:

SendDirectMessage 原因代码
Reason 说明
MALFORMED_CLIENTID 此客户端 ID 无效。客户端 ID 不得超过 128 个字符,并且不能以美元符号 ($) 开头。输入不同的客户端 ID
INVALID_TOPIC 这个话题无效。主题大小必须在 256 字节以内,应包含少于 9 个部分,并且不应以美元符号 ($) 开头
INVALID_TIMEOUT_PARAMETER 超时值无效。必须是 1 到 15 之间的整数
INVALID_CONFIRMATION_PARAMETER 确认值无效。必须是 “真” 或 “假”
RECEIVE_AUTHORIZATION_FAILURE 目标客户机授权失败。验证您的策略是否授予了必要的权限
TARGET_CLIENT_ID_NOT_FOUND 找不到客户端 ID。请确认客户端已连接并重试
TARGET_CLIENT_NOT_CONNECTED 目标客户端 ID 未连接,但其持续会话处于活动状态
SEND_DIRECT_MESSAGE_THROTTLED 由于已超出发送私信请求速率,请求被拒绝
RECEIVE_SESSION_THROTTLED 请求被拒绝,因为请求速率超过了每个连接的每秒出站发布请求数
RECEIVER_MAX_UNACKED_QOS1_EXCEEDED 接收方客户端已达到未确认的 QoS 1 消息的最大数量
DELIVERY_CONFIRMATION_TIMEOUT 在指定的超时时间内未收到配送确认
DELIVERY_CONFIRMATION_SENDER_DISCONNECT 在收到送达确认之前,发件人已断开连接
CLIENT_ENDPOINT_NOT_WRITABLE 接收方客户端端点不可写
INTERNAL_SERVER_ERROR 内部服务器错误

服务器证书 OCSP 日志条目

Amazon IoT Core 为以下事件生成日志条目:

RetrieveOCSPStapleData 日志条目

Amazon IoT Core 当服务器检索 OCSP 装订数据RetrieveOCSPStapleData时,会生成一个eventType带有的日志条目。

RetrieveOCSPStapleData 日志条目示例

以下是 Success 示例日志条目。

{ "timestamp": "2024-01-30 15:39:30.961", "logLevel": "INFO", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "accountId": "123456789012", "status": "Success", "eventType": "RetrieveOCSPStapleData", "domainConfigName": "test-domain-config-name", "connectionDetails": { "httpStatusCode": "200", "ocspResponderUri": "http://ocsp.example.com", "sourceIp": "205.251.233.181", "targetIp": "250.15.5.3" }, "ocspRequestDetails": { "requesterName": "iot.amazonaws.com", "requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01" }, "ocspResponseDetails": { "responseCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01", "ocspResponseStatus": "successful", "certStatus": "good", "signature": "4C:6F:63:61:6C:20:52:65:73:70:6F:6E:64:65:72:20:53:69:67:6E:61:74:75:72:65", "thisUpdateTime": "Jan 31 01:21:02 2024 UTC", "nextUpdateTime": "Feb 02 00:21:02 2024 UTC", "producedAtTime": "Jan 31 01:37:03 2024 UTC", "stapledDataPayloadSize": "XXX" } }

以下是 Failure 示例日志条目。

{ "timestamp": "2024-01-30 15:39:30.961", "logLevel": "ERROR", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "accountId": "123456789012", "status": "Failure", "reason": "A non 2xx HTTP response was received from the OCSP responder.", "eventType": "RetrieveOCSPStapleData", "domainConfigName": "test-domain-config-name", "connectionDetails": { "httpStatusCode": "444", "ocspResponderUri": "http://ocsp.example.com", "sourceIp": "205.251.233.181", "targetIp": "250.15.5.3" }, "ocspRequestDetails": { "requesterName": "iot.amazonaws.com", "requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01" } }

对于该RetrieveOCSPStaple操作,除了常用 CloudWatch 日志属性,日志条目还包含以下属性:

reason

操作失败的原因。

域 ConfigName

域配置的名称。

connectionDetails

连接详情的简要说明。

  • HTTP StatusCode

    OCSP 响应程序为响应客户端向服务器发出的请求而返回的 HTTP 状态码。

  • ocsp ResponderUri

    从服务器证书中 Amazon IoT Core 获取的 OCSP 响应器 URI。

  • sourceIp

    Amazon IoT Core 服务器的源 IP 地址。

  • targetIp

    OCSP 响应程序的目标 IP 地址。

ocsp RequestDetails

OCSP 请求的详细信息。

  • requesterName

    向 OCSP 响应者发送请求的 Amazon IoT Core 服务器的标识符。

  • 请求 CertId

    请求的证书 ID。这是正在请求 OCSP 响应的证书的 ID。

ocsp ResponseDetails

OCSP 响应的详细信息。

  • 响应 CertId

    OCSP 响应的证书 ID。

  • ocsp ResponseStatus

    OCSP 响应的状态。

  • certStatus

    证书的状态。

  • signature

    可信实体应用于响应的签名。

  • 这个 UpdateTime

    已知所指示状态正确的时间。

  • 下一步 UpdateTime

    在此时间或此时间之前,将提供有关证书状态的更新的信息。

  • 制作 AtTime

    OCSP 响应程序签署此响应的时间。

  • 装订 DataPayloadSize

    已绑定数据的有效载荷大小。

RetrieveOCSPStapleData 私有端点的日志条目

Amazon IoT Core 当服务器检索 OCSP 装订数据RetrieveOCSPStapleData时,会生成一个eventType带有的日志条目。

RetrieveOCSPStapleData 私有端点的日志条目示例

以下是 Success 示例日志条目。

{ "timestamp": "2024-01-30 15:39:30.961", "logLevel": "INFO", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "accountId": "123456789012", "status": "Success", "eventType": "RetrieveOCSPStapleData", "domainConfigName": "test-domain-config-name", "lambdaDetails": { "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "sourceArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/testDomainConfigure/6bzfg" }, "authorizedResponderArn": "arn:aws:acm:us-west-2:123456789012:certificate/certificate_ID", "ocspRequestDetails": { "requesterName": "iot.amazonaws.com", "requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01" }, "ocspResponseDetails": { "responderId": "04:C1:3F:8F:27:D6:49:13:F8:DE:B2:36:9D:85:8E:F8:31:3B:A6:D0" "responseCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01", "ocspResponseStatus": "successful", "certStatus": "good", "signature": "4C:6F:63:61:6C:20:52:65:73:70:6F:6E:64:65:72:20:53:69:67:6E:61:74:75:72:65", "thisUpdateTime": "Jan 31 01:21:02 2024 UTC", "nextUpdateTime": "Feb 02 00:21:02 2024 UTC", "producedAtTime": "Jan 31 01:37:03 2024 UTC", "stapledDataPayloadSize": "XXX" } }

以下是 Failure 示例日志条目。

{ "timestamp": "2024-01-30 15:39:30.961", "logLevel": "ERROR", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "accountId": "123456789012", "status": "Failure", "reason": "The payload returned by the Lambda function exceeds the maximum response size of 7 kilobytes.", "eventType": "RetrieveOCSPStapleData", "domainConfigName": "test-domain-config-name", "lambdaDetails": { "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "sourceArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/testDomainConfigure/6bzfg" }, "authorizedResponderArn": "arn:aws:acm:us-west-2:123456789012:certificate/certificate_ID", "ocspRequestDetails": { "requesterName": "iot.amazonaws.com", "requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01" } }

对于该RetrieveOCSPStaple操作,除了RetrieveOCSPStapleData 日志条目中的常用 CloudWatch 日志属性和属性外,私有终端节点的日志条目还包含以下属性:

lambdaDetails

Lambda 函数的详细信息。

  • lambdaArn

    Lambda 函数的 ARN。

  • sourceArn

    域配置的 ARN。

已授权 ResponderArn

如果在域配置中配置了授权响应者,则为其 ARN。

设备影子日志条目

Amazon IoT Device Shadow 服务会为以下事件生成日志条目:

DeleteThingShadow 日志条目

当收到删除设备影子的请求时,Device Shadow 服务会生成一个 eventTypeDeleteThingShadow 的日志条目。

DeleteThingShadow 日志条目示例

{ "timestamp": "2017-08-07 18:47:56.664", "logLevel": "INFO", "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", "accountId": "123456789012", "status": "Success", "eventType": "DeleteThingShadow", "protocol": "MQTT", "deviceShadowName": "Jack", "topicName": "$aws/things/Jack/shadow/delete" }

除了常用 CloudWatch 日志属性DeleteThingShadow日志条目还包含以下属性:

设备 ShadowName

要更新的影子的名称。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发布请求时所基于的主题的名称。

GetThingShadow 日志条目

当收到影子的获取请求时,Device Shadow 服务会生成一个 eventTypeGetThingShadow 的日志条目。

GetThingShadow 日志条目示例

{ "timestamp": "2017-08-09 17:56:30.941", "logLevel": "INFO", "traceId": "b575f19a-97a2-cf72-0ed0-c64a783a2504", "accountId": "123456789012", "status": "Success", "eventType": "GetThingShadow", "protocol": "MQTT", "deviceShadowName": "MyThing", "topicName": "$aws/things/MyThing/shadow/get" }

除了常用 CloudWatch 日志属性GetThingShadow日志条目还包含以下属性:

设备 ShadowName

所请求的影子的名称。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发布请求时所基于的主题的名称。

UpdateThingShadow 日志条目

当收到更新设备影子的请求时,Device Shadow 服务会生成一个 eventTypeUpdateThingShadow 的日志条目。

UpdateThingShadow 日志条目示例

{ "timestamp": "2017-08-07 18:43:59.436", "logLevel": "INFO", "traceId": "d0074ba8-0c4b-a400-69df-76326d414c28", "accountId": "123456789012", "status": "Success", "eventType": "UpdateThingShadow", "protocol": "MQTT", "deviceShadowName": "Jack", "topicName": "$aws/things/Jack/shadow/update" }

除了常用 CloudWatch 日志属性UpdateThingShadow日志条目还包含以下属性:

设备 ShadowName

要更新的影子的名称。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发布请求时所基于的主题的名称。

规则引擎日志条目

Amazon IoT 规则引擎为以下事件生成日志:

FunctionExecution 日志条目

当规则的 SQL 查询调用外部函数时,规则引擎会生成一个 eventTypeFunctionExecution 的日志条目。当规则的操作向或其他 Web 服务发出 HTTP 请求(例如,调用 Amazon IoT get_thing_shadowmachinelearning_predict)时,就会调用外部函数。

FunctionExecution 日志条目示例

{ "timestamp": "2017-07-13 18:33:51.903", "logLevel": "DEBUG", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "status": "Success", "eventType": "FunctionExecution", "clientId": "N/A", "topicName":"rules/test", "ruleName": "ruleTestPredict", "ruleAction": "MachinelearningPredict", "resources": { "ModelId": "predict-model" }, "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

除了常用 CloudWatch 日志属性FunctionExecution日志条目还包含以下属性:

clientId

N/A(针对 FunctionExecution 日志)。

principalId

发出请求的委托人的 ID。

资源

规则的操作所使用的资源的集合。

ruleName

匹配规则的名称。

topicName

已订阅主题的名称。

RuleExecution 日志条目

当 Amazon IoT 规则引擎触发规则的操作时,它会生成一个RuleExecution日志条目。

RuleExecution 日志条目示例

{ "timestamp": "2017-08-10 16:32:46.070", "logLevel": "INFO", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "RuleExecution", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "ruleAction": "RepublishAction", "resources": { "RepublishTopic": "rules/republish" }, "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

RuleExecution 带有批处理日志条目示例

{ "logLevel": "INFO", "accountId": "123456789012", "status": "Success", "eventType": "RuleExecution", "ruleName": "rule_test", "ruleAction": "HttpAction", "resources": { "Url": "https://example.com", "ConfirmationUrl": "https://example.com" }, "details": "HttpAction made a request to the specified endpoint", "batchDetails": { "timestamps": [ "1234567890123", "1234567890123", "1234567890123" ], "traceIds": [ "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "30aa7ccc-1d23-0b97-aa7b-76196d83537c", "30aa7ccc-1d23-0b97-aa7b-76196d83537d" ], "clientIds": [ "N/A", "N/A", "N/A" ], "topicNames": [ "topic/ruletest", "topic/ruletest", "topic/ruletest" ], "principalIds": [ "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" ], "batchSize": 3, "batchSizeInBytes": 114 } }

除了 常用 CloudWatch 日志属性 之外,RuleExecution 日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

资源

规则的操作所使用的资源的集合。

ruleAction

所触发的操作的名称。

ruleName

匹配规则的名称。

topicName

已订阅主题的名称。

RuleMatch 日志条目

当消息代理收到与 Amazon IoT 规则匹配eventType的消息RuleMatch时,规则引擎会生成一个带有的日志条目。

RuleMatch 日志条目示例

{ "timestamp": "2017-08-10 16:32:46.002", "logLevel": "INFO", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "RuleMatch", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

除了常用 CloudWatch 日志属性RuleMatch日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

ruleName

匹配规则的名称。

topicName

已订阅主题的名称。

RuleExecutionThrottled 日志条目

当执行受到限制时, Amazon IoT 规则引擎会生成一个eventType带有为的日志条目。RuleExecutionThrottled

RuleExecutionThrottled 日志条目示例

{ "timestamp": "2017-10-04 19:25:46.070", "logLevel": "ERROR", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Failure", "eventType": "RuleExecutionThrottled", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "$aws/rules/example_rule", "ruleName": "example_rule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "reason": "RuleExecutionThrottled", "details": "Exection of Rule example_rule throttled" }

除了常用 CloudWatch 日志属性RuleExecutionThrottled日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

details

错误的简要说明。

principalId

发出请求的委托人的 ID。

reason

字符串 “RuleExecutionThrottled”。

ruleName

要触发的规则的名称。

topicName

已发布的主题的名称。

RuleNotFound 日志条目

当 Amazon IoT 规则引擎找不到具有给定名称的规则时,它会生成一个带为eventType的日志条目RuleNotFound

RuleNotFound 日志条目示例

{ "timestamp": "2017-10-04 19:25:46.070", "logLevel": "ERROR", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Failure", "eventType": "RuleNotFound", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "$aws/rules/example_rule", "ruleName": "example_rule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "reason": "RuleNotFound", "details": "Rule example_rule not found" }

除了常用 CloudWatch 日志属性RuleNotFound日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

details

错误的简要说明。

principalId

发出请求的委托人的 ID。

reason

字符串 “RuleNotFound”。

ruleName

找不到的规则的名称。

topicName

已发布的主题的名称。

StartingRuleExecution 日志条目

当 Amazon IoT 规则引擎开始触发规则的操作时,它会生成一个带为eventType的日志条目StartingRuleExecution

StartingRuleExecution 日志条目示例

{ "timestamp": "2017-08-10 16:32:46.002", "logLevel": "DEBUG", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "StartingRuleExecution", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "ruleAction": "RepublishAction", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

除了常用 CloudWatch 日志属性rule-日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

principalId

发出请求的委托人的 ID。

ruleAction

所触发的操作的名称。

ruleName

匹配规则的名称。

topicName

已订阅主题的名称。

任务日志条目

Amazon IoT Job 服务为以下事件生成日志条目。当从设备收到 MQTT 或 HTTP 请求时,将生成日志条目。

DescribeJobExecution 日志条目

当服务收到描述 Amazon IoT 任务执行eventType的请求DescribeJobExecution时,该服务会生成一个带有的日志条目。

DescribeJobExecution 日志条目示例

{ "timestamp": "2017-08-10 19:13:22.841", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "DescribeJobExecution", "protocol": "MQTT", "clientId": "thingOne", "jobId": "002", "topicName": "$aws/things/thingOne/jobs/002/get", "clientToken": "myToken", "details": "The request status is SUCCESS." }

除了常用 CloudWatch 日志属性GetJobExecution日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

clientToken

用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性

details

来自 Jobs 服务的其它信息。

jobId

任务执行的任务 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发出请求所使用的主题。

GetPendingJobExecution 日志条目

当服务收到 Amazon IoT 任务执行请求GetPendingJobExecution时,该服务会生成一个eventType带有的日志条目。

GetPendingJobExecution 日志条目示例

{ "timestamp": "2018-06-13 17:45:17.197", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "GetPendingJobExecution", "protocol": "MQTT", "clientId": "299966ad-54de-40b4-99d3-4fc8b52da0c5", "topicName": "$aws/things/299966ad-54de-40b4-99d3-4fc8b52da0c5/jobs/get", "clientToken": "24b9a741-15a7-44fc-bd3c-1ff2e34e5e82", "details": "The request status is SUCCESS." }

除了常用 CloudWatch 日志属性GetPendingJobExecution日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

clientToken

用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性

details

来自 Jobs 服务的其它信息。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

已订阅主题的名称。

ReportFinalJobExecutionCount 日志条目

Amazon IoT 作业完成ReportFinalJobExecutionCount后,作业服务会生成一个带有 “” entryType 的日志条目。

ReportFinalJobExecutionCount 日志条目示例

{ "timestamp": "2017-08-10 19:44:16.776", "logLevel": "INFO", "accountId": "123456789012", "status": "Success", "eventType": "ReportFinalJobExecutionCount", "jobId": "002", "details": "Job 002 completed. QUEUED job execution count: 0 IN_PROGRESS job execution count: 0 FAILED job execution count: 0 SUCCEEDED job execution count: 1 CANCELED job execution count: 0 REJECTED job execution count: 0 REMOVED job execution count: 0" }

除了常用 CloudWatch 日志属性ReportFinalJobExecutionCount日志条目还包含以下属性:

details

来自 Jobs 服务的其它信息。

jobId

任务执行的任务 ID。

StartNextPendingJobExecution 日志条目

当它收到开始下一个待处理的任务执行的请求时, Amazon IoT 作业服务会生成一个带有为eventType的日志条目StartNextPendingJobExecution

StartNextPendingJobExecution 日志条目示例

{ "timestamp": "2018-06-13 17:49:51.036", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "StartNextPendingJobExecution", "protocol": "MQTT", "clientId": "95c47808-b1ca-4794-bc68-a588d6d9216c", "topicName": "$aws/things/95c47808-b1ca-4794-bc68-a588d6d9216c/jobs/start-next", "clientToken": "bd7447c4-3a05-49f4-8517-dd89b2c68d94", "details": "The request status is SUCCESS." }

除了常用 CloudWatch 日志属性StartNextPendingJobExecution日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

clientToken

用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性

details

来自 Jobs 服务的其它信息。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发出请求所使用的主题。

UpdateJobExecution 日志条目

当服务收到更新 Amazon IoT 任务执行eventType的请求UpdateJobExecution时,该服务会生成一个带有的日志条目。

UpdateJobExecution 日志条目示例

{ "timestamp": "2017-08-10 19:25:14.758", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "UpdateJobExecution", "protocol": "MQTT", "clientId": "thingOne", "jobId": "002", "topicName": "$aws/things/thingOne/jobs/002/update", "clientToken": "myClientToken", "versionNumber": "1", "details": "The destination status is IN_PROGRESS. The request status is SUCCESS." }

除了常用 CloudWatch 日志属性UpdateJobExecution日志条目还包含以下属性:

clientId

发出请求的客户端的 ID。

clientToken

用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性

details

来自 Jobs 服务的其它信息。

jobId

任务执行的任务 ID。

protocol

用于提出请求的协议。有效值为 MQTTHTTP

topicName

发出请求所使用的主题。

versionNumber

任务执行的版本。

设备预调配日志条目

Amazon IoT 设备配置服务会生成以下事件的日志。

GetDeviceCredentials 日志条目

当客户端呼叫GetDeviceCredential时, Amazon IoT 设备配置服务会生成一个带有 “” eventType 的日志条目GetDeviceCredential

GetDeviceCredentials 日志条目示例

{ "timestamp" : "2019-02-20 20:31:22.932", "logLevel" : "INFO", "traceId" : "8d9c016f-6cc7-441e-8909-7ee3d5563405", "accountId" : "123456789101", "status" : "Success", "eventType" : "GetDeviceCredentials", "deviceCertificateId" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "details" : "Additional details about this log." }

除了常用 CloudWatch 日志属性GetDeviceCredentials日志条目还包含以下属性:

details

错误的简要说明。

设备 CertificateId

设备证书的 ID。

ProvisionDevice 日志条目

当客户端呼叫ProvisionDevice时, Amazon IoT 设备配置服务会生成一个带有 “” eventType 的日志条目ProvisionDevice

ProvisionDevice 日志条目示例

{ "timestamp" : "2019-02-20 20:31:22.932", "logLevel" : "INFO", "traceId" : "8d9c016f-6cc7-441e-8909-7ee3d5563405", "accountId" : "123456789101", "status" : "Success", "eventType" : "ProvisionDevice", "provisioningTemplateName" : "myTemplate", "deviceCertificateId" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "details" : "Additional details about this log." }

除了常用 CloudWatch 日志属性ProvisionDevice日志条目还包含以下属性:

details

错误的简要说明。

设备 CertificateId

设备证书的 ID。

资源调配 TemplateName

预配置模板的名称。

动态事物组日志条目

Amazon IoT 动态事物组生成以下事件的日志。

AddThingToDynamicThingGroupsFailed 日志条目

Amazon IoT 当无法将事物添加到指定的动态组时,它会生成一个带有为eventType的日志条目AddThingToDynamicThingGroupsFailed。当事物满足要处于动态事物组中的条件时,就会发生此情况;但是,无法将其添加到动态组中,或者无法将其从动态组中删除。这可能是因为:

  • 事物已经属于最大数量的组数。

  • --override-dynamic-groups 选项用于将事物添加到静态事物组中。它已被从一个动态事物组中删除,以便可以再添加。

有关更多信息,请参阅动态事物组限制和冲突

AddThingToDynamicThingGroupsFailed 日志条目示例

此示例显示 AddThingToDynamicThingGroupsFailed 错误的日志条目。在此示例中,TestThing符合中列出的动态事物组的条件dynamicThingGroupNames,但无法添加到这些动态组中,如中所述reason

{ "timestamp": "2020-03-16 22:24:43.804", "logLevel": "ERROR", "traceId": "70b1f2f5-d95e-f897-9dcc-31e68c3e1a30", "accountId": "57EXAMPLE833", "status": "Failure", "eventType": "AddThingToDynamicThingGroupsFailed", "thingName": "TestThing", "dynamicThingGroupNames": [ "DynamicThingGroup11", "DynamicThingGroup12", "DynamicThingGroup13", "DynamicThingGroup14" ], "reason": "The thing failed to be added to the given dynamic thing group(s) because the thing already belongs to the maximum allowed number of groups." }

除了常用 CloudWatch 日志属性AddThingToDynamicThingGroupsFailed日志条目还包含以下属性:

动态的 ThingGroupNames

无法向其中添加该事物的动态事物组的数组。

reason

事物无法添加到动态事物组的原因。

thingName

无法添加到动态事物组的事物的名称。

实例集索引日志条目

Amazon IoT 舰队索引生成以下事件的日志条目。

NamedShadowCountForDynamicGroupQueryLimitExceeded 日志条目

对于动态组中不特定于数据来源的查询术语,每个对象最多处理 25 个命名影子。由于事件而违反该限制时,将发出 NamedShadowCountForDynamicGroupQueryLimitExceeded 事件类型。

NamedShadowCountForDynamicGroupQueryLimitExceeded 日志条目示例

此示例显示 NamedShadowCountForDynamicGroupQueryLimitExceeded 错误的日志条目。在此示例中,所有基于值的 DynamicGroup 结果都可能不准确,如 reason 字段中所述。

{ "timestamp": "2020-03-16 22:24:43.804", "logLevel": "ERROR", "traceId": "70b1f2f5-d95e-f897-9dcc-31e68c3e1a30", "accountId": "571032923833", "status": "Failure", "eventType": "NamedShadowCountForDynamicGroupQueryLimitExceeded", "thingName": "TestThing", "reason": "A maximum of 25 named shadows per thing are processed for non-data source specific query terms in dynamic groups." }

常用 CloudWatch 日志属性

所有 Log CloudWatch s 日志条目都包含以下属性:

accountId

你的 Amazon Web Services 账户 身份证。

eventType

已为其生成日志的事件类型。事件类型的值取决于生成日志条目的事件。每个日志条目描述都包括该日志条目的 eventType 的值。

logLevel

所使用的日志级别。有关更多信息,请参阅 日志级别

status

请求的状态。

timestamp

客户端连接到 Amazon IoT 消息代理的时间的便于阅读的 UNIX 时间戳。

traceId

一个随机生成的标识符,可用于将特定请求的所有日志关联起来。