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 Core LoRa WAN 监控的信息,请参见查看 CloudWatch Amazon IoT Wireless 日志条目

消息代理日志条目

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

客户端断开连接的原因。

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 日志条目还包含以下属性:

lastModifiedDate

存储保留消息的 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

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
Server Error

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

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
Throttled while queueing offline message

客户端超出了 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

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

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 原因代码

服务器证书 OCSP 日志条目

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

检索 OCSP 日志条目 StapleData

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

检索 OCSP 日志条目示例 StapleData

以下是的日志条目示例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

操作失败的原因。

domainConfigName

您的域名配置的名称。

连接详情

连接详情的简要说明。

  • httpStatusCode

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

  • ocspResponderUri

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

  • sourceIp

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

  • 目标提示

    OCSP 响应者的目标 IP 地址。

ocspRequestDetails

OCSP 请求的详细信息。

  • 请求者姓名

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

  • requestCertId

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

ocspResponseDetails

OCSP 响应的详细信息。

  • responseCertId

    OCSP 响应的证书 ID。

  • ocspResponseStatus

    OCSP 响应的状态。

  • CertStatus

    证书的状态。

  • signature

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

  • thisUpdateTime

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

  • nextUpdateTime

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

  • producedAtTime

    OCSP 响应者签署此响应的时间。

  • stapledDataPayload大小

    装订数据的有效载荷大小。

设备影子日志条目

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 日志条目还包含以下属性:

deviceShadowName

要更新的影子的名称。

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 日志条目还包含以下属性:

deviceShadowName

所请求的影子的名称。

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 日志条目还包含以下属性:

deviceShadowName

要更新的影子的名称。

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" }

除了 常用 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": "RuleMessageThrottled", "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 规则引擎找不到具有给定名称的规则时,它会生成一个带有 of 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

错误的简要说明。

deviceCertificateId

设备证书的 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

错误的简要说明。

deviceCertificateId

设备证书的 ID。

provisioningTemplateName

预配置模板的名称。

动态事物组日志条目

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 日志条目还包含以下属性:

dynamicThingGroup名字

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

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

请求的状态。

时间戳

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

traceId

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