CloudWatch Logs Amazon IoT 日志条目
Amazon IoT 的每个组件均会生成自己的日志条目。每个日志条目都有一个 eventType
指定导致生成日志条目的操作。本部分介绍以下 Amazon IoT 组件所生成的日志条目。有关监控适用于 LoRaWAN 的 Amazon IoT Core 的更多信息,请参阅 查看 CloudWatch Amazon IoT Wireless 日志条目。
消息代理日志条目
Amazon IoT 消息代理会生成以下事件的日志条目:
主题
Connect 日志条目
当 MQTT 客户端连接时,Amazon IoT 消息代理会生成一个 eventType
为 Connect
的日志条目。
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 Logs 属性 之外,Connect
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - sourceIp
-
请求的源 IP 地址。
- sourcePort
-
请求的源端口。
Disconnect 日志条目
当 MQTT 客户端断开连接时,Amazon IoT 消息代理会生成一个 eventType
为 Disconnect
的日志条目。
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 Logs 属性 之外,Disconnect
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - sourceIp
-
请求的源 IP 地址。
- sourcePort
-
请求的源端口。
- reason
-
客户端断开连接的原因。
- details
-
错误的简要说明。
- disconnectReason
-
客户端断开连接的原因。
GetRetainedMessage 日志条目
调用 GetRetainedMessage
时,Amazon IoT 消息代理会用 GetRetainedMessage
的 eventType
生成一个日志条目。
GetRainedMessage 日志条目示例
{ "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 Logs 属性 之外,GetRetainedMessage
日志条目还包含以下属性:
- lastModifiedDate
-
Amazon IoT 储存保留消息时,Epoch 日期和时间(以毫秒为单位)存储保留的消息的时间。
- protocol
-
用于提出请求的协议。有效值:
HTTP
。 - qos
-
发布请求中使用的服务质量 (QoS) 级别。有效值为
0
或1
。 - 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 Logs 属性 之外,ListRetainedMessage
日志条目还包含以下属性:
- protocol
-
用于提出请求的协议。有效值:
HTTP
。
Publish-In 日志条目
当 Amazon IoT 消息代理收到 MQTT 消息时,它会生成一个 eventType
为 Publish-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 Logs 属性 之外,Publish-In
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - 保留
-
当消息的 REATIN 标志的值设置为
True
时使用的属性。如果消息未设置 REATIN 标志,则该属性不会显示在日志条目中。有关更多信息,请参阅MQTT 保留消息。 - sourceIp
-
请求的源 IP 地址。
- sourcePort
-
请求的源端口。
- topicName
-
已订阅主题的名称。
Publish-Out 日志条目
当消息代理发布 MQTT 消息时,它会生成一个 eventType
为 Publish-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 Logs 属性 之外,Publish-Out
日志条目还包含以下属性:
- clientId
-
接收有关该 MQTT 主题的消息的订阅客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - sourceIp
-
请求的源 IP 地址。
- sourcePort
-
请求的源端口。
- topicName
-
已订阅主题的名称。
排队的日志条目
当具有持久性会话的设备断开连接时,MQTT 消息代理会存储该设备的消息,并且 Amazon IoT 生成 eventType 为 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 Logs 属性之外,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 Logs 属性之外,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 Logs 属性之外,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 客户端订阅主题时,Amazon IoT 消息代理会生成一个 eventType
为 Subscribe
的日志条目。
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 Logs 属性 之外,Subscribe
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - 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 Logs 属性和 MQTT 3 订阅日志条目属性外,MQTT 5 Subscribe
日志条目还包含以下属性:
- 订阅
-
订阅请求中的已请求主题与各个 MQTT 5 原因代码之间的映射列表。有关更多信息,请参阅 MQTT 原因代码。
设备影子日志条目
Amazon IoT Device Shadow 服务会生成以下事件的日志条目:
DeleteThingShadow 日志条目
当收到删除设备影子的请求时,Device Shadow 服务会生成一个 eventType
为 DeleteThingShadow
的日志条目。
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 Logs 属性 之外,DeleteThingShadow
日志条目还包含以下属性:
- deviceShadowName
-
要更新的影子的名称。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - topicName
-
发布请求时所基于的主题的名称。
GetThingShadow 日志条目
当收到影子的获取请求时,Device Shadow 服务会生成一个 eventType
为 GetThingShadow
的日志条目。
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 Logs 属性 之外,GetThingShadow
日志条目还包含以下属性:
- deviceShadowName
-
所请求的影子的名称。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - topicName
-
发布请求时所基于的主题的名称。
UpdateThingShadow 日志条目
当收到更新设备影子的请求时,Device Shadow 服务会生成一个 eventType
为 UpdateThingShadow
的日志条目。
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 Logs 属性 之外,UpdateThingShadow
日志条目还包含以下属性:
- deviceShadowName
-
要更新的影子的名称。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - topicName
-
发布请求时所基于的主题的名称。
规则引擎日志条目
Amazon IoT 规则引擎会生成以下事件的日志:
主题
FunctionExecution 日志条目
当规则的 SQL 查询调用外部函数时,规则引擎会生成一个 eventType
为 FunctionExecution
的日志条目。在规则的操作向 Amazon IoT 或其它 Web 服务发出 HTTP 请求(例如,调用 get_thing_shadow
或 machinelearning_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 Logs 属性 之外,FunctionExecution
日志条目还包含以下属性:
- clientId
-
N/A
(针对FunctionExecution
日志)。 - principalId
-
发出请求的委托人的 ID。
- resources
-
规则的操作所使用的资源的集合。
- 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 Logs 属性 之外,RuleExecution
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- resources
-
规则的操作所使用的资源的集合。
- 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 Logs 属性 之外,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 Logs 属性 之外,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 Logs 属性 之外,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 Logs 属性 之外,rule-
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- principalId
-
发出请求的委托人的 ID。
- ruleAction
-
所触发的操作的名称。
- ruleName
-
匹配规则的名称。
- topicName
-
已订阅主题的名称。
任务日志条目
Amazon IoT 任务服务会生成以下事件的日志条目。当从设备收到 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 Logs 属性 之外,GetJobExecution
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- clientToken
-
用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性。
- details
-
来自 Jobs 服务的其它信息。
- jobId
-
任务执行的任务 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - topicName
-
发出请求所使用的主题。
GetPendingJobExecution 日志条目
当服务收到任务执行请求时,Amazon IoT 任务服务会生成一个 eventType
为 GetPendingJobExecution
的日志条目。
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 Logs 属性 之外,GetPendingJobExecution
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- clientToken
-
用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性。
- details
-
来自 Jobs 服务的其它信息。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - topicName
-
已订阅主题的名称。
ReportFinalJobExecutionCount 日志条目
当任务完成时,Amazon IoT Jobs 服务会生成一个 entryType
为 ReportFinalJobExecutionCount
的日志条目。
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 Logs 属性 之外,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 Logs 属性 之外,StartNextPendingJobExecution
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- clientToken
-
用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性。
- details
-
来自 Jobs 服务的其它信息。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - 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 Logs 属性 之外,UpdateJobExecution
日志条目还包含以下属性:
- clientId
-
发出请求的客户端的 ID。
- clientToken
-
用于确保请求幂等性的唯一、区分大小写的标识符。有关更多信息,请参阅如何确保幂等性。
- details
-
来自 Jobs 服务的其它信息。
- jobId
-
任务执行的任务 ID。
- protocol
-
用于提出请求的协议。有效值为
MQTT
或HTTP
。 - 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 Logs 属性 之外,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 Logs 属性 之外,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 Logs 属性 之外,AddThingToDynamicThingGroupsFailed
日志条目还包含以下属性:
- dynamicThingGroupNames
-
无法向其中添加该事物的动态事物组的数组。
- 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 Logs 属性
所有 CloudWatch Logs 日志条目都包含这些属性:
- accountId
-
您的 Amazon Web Services 账户 ID。
- eventType
-
已为其生成日志的事件类型。事件类型的值取决于生成日志条目的事件。每个日志条目描述都包括该日志条目的
eventType
的值。 - logLevel
-
所使用的日志级别。有关更多信息,请参阅日志级别。
- 状态
-
请求的状态。
- timestamp
-
客户端连接到 Amazon IoT 消息代理的时间的便于阅读的 UNIX 时间戳。
- traceId
-
一个随机生成的标识符,可用于将特定请求的所有日志关联起来。