

# 查看 CloudWatch AWS IoT Wireless 日志条目
<a name="cwl-format"></a>

在根据 [为 AWS IoT Wireless 创建日志记录角色和策略](create-logging-role-policy.md) 中所述为 AWS IoT Wireless 配置日志记录并写入部分日志条目时，您可以执行以下步骤以在 CloudWatch 控制台中查看日志条目。

## 在 CloudWatch Logs 组控制台中查看 AWS IoT 日志
<a name="viewing-logs"></a>

在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)中，CloudWatch Logs 显示在名为 **/aws/iotwireless** 的日志组中。有关 CloudWatch Logs 的更多信息，请参阅 [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)。

**要在 CloudWatch 控制台中查看您的 AWS IoT 日志**

导航到 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)，然后选择导航窗格中的 **Log groups**（日志组）。

1. 在 **Filter**（筛选条件）文本框中，输入 **/aws/iotwireless**，然后选择 `/aws/iotwireless` 日志组。

1. 要查看 适用于 LoRaWAN 的 AWS IoT Core 为您的账户生成的完整列表，请选择 **Search all**（搜索全部）。要查看单个日志流，请选择展开图标。

1. 要筛选日志流，您也可以在 **Filter events**（筛选事件）文本框中输入一条查询。以下是可以尝试输入的查询：
   + `{ $.logLevel = "ERROR" }` 

      使用此筛选条件可以查找所有日志级别为 `ERROR` 的日志，您可以展开各个错误流以读取错误消息，这将帮助您解决这些错误。
   + `{ $.resource = "WirelessGateway" }` 

      查找适用于 `WirelessGateway` 资源的所有日志，无论日志级别为何。
   + `{ $.event = "CUPS_Request" && $.logLevel = "ERROR" }`

      查找所有事件状态为 `CUPS_Request` 且日志级别为 `ERROR` 的日志。

## 事件和资源类型
<a name="cwl-format-events-resources"></a>

下表显示了不同类型的事件，而您将看到其日志条目。事件类型还取决于资源类型是无线设备还是无线网关。您可以对资源和事件类型使用默认日志级别，也可以通过为每个资源和事件类型指定日志级别来覆盖默认日志级别。


**基于使用资源的事件类型**  

| 资源 | 资源类型 | 事件类型 | 
| --- | --- | --- | 
| 无线网关 | LoRaWAN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 无线设备 | LoRaWAN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 无线设备 | Sidewalk |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/cwl-format.html)  | 

以下主题包含有关这些事件类型以及无线网关和无线设备日志条目的详细信息。

**Topics**
+ [在 CloudWatch Logs 组控制台中查看 AWS IoT 日志](#viewing-logs)
+ [事件和资源类型](#cwl-format-events-resources)
+ [无线网关和无线设备资源的日志条目](wireless-log-entries.md)

# 无线网关和无线设备资源的日志条目
<a name="wireless-log-entries"></a>

启用日志记录后，您可以查看无线网关和无线设备的日志条目。以下部分介绍基于您的资源和事件类型的各种日志条目。

## 无线网关日志条目
<a name="gateway-log-entries"></a>

此部分显示了无线网关资源的一些示例日志条目，您可在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)中看到这些资源。这些日志消息的事件类型可以为 `CUPS_Request` 或者 `Certificate`，并且可以配置为在资源级别或事件级别显示 `INFO`、`ERROR` 或者 `DISABLED` 的日志级别。如果您只想查看错误信息，请将日志级别设置为 `ERROR`。`ERROR` 日志条目中的消息将包含有关失败原因的信息。

无线网关资源的日志条目可根据以下事件类型进行分类：
+ 

**CUPS\$1Request**  
网关上运行的 LoRa Base Station 会定期向 Configuration and Updates Server (CUPS) 发送更新请求。对于此事件类型，如果在为您的无线网关资源配置 CLI 时将日志级别设置为 `INFO`，则在日志中：
  + 如果事件成功，您将看到 `logLevel` 为 `INFO` 的日志消息。这些消息将包括有关发送到您的网关的 CUPS 响应的详细信息和网关详细信息。以下是此日志条目的一个示例。有关 `logLevel` 和日志条目中其他字段的更多信息，请参阅 [AWS IoT Wireless 资源和日志级别](configure-resource-logging.md#log-levels-resources)。

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "gatewayEui": "feffff00000000e2",
        "event": "CUPS_Request",
        "logLevel": "INFO",
        "message": "Sending CUPS response of total length 3213 to GatewayEui: feffff00000000e2 with  TC Credentials,"
    }
    ```
  + 如果出现错误，您将看到 `logLevel` 为 `ERROR` 的日志条目，且消息将包含有关错误的详细信息。`CUPS_Request` 事件可能出现的错误包括：缺少 CUPS CRC、网关的 TC Uri 与 适用于 LoRaWAN 的 AWS IoT Core 不匹配、缺少 `IoTWirelessGatewayCertManagerRole`，或者无法获取无线网关记录。以下示例显示了一个丢失的 CRC 日志条目。要解决此错误，请检查您的网关设置以验证您输入的 CUPS CRC 是否正确。

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "gatewayEui": "feffff00000000e2",
        "event": "CUPS_Request",
        "logLevel": "ERROR",
        "message": "The CUPS CRC is missing from the request. Check your gateway setup and enter the CUPS CRC,"
    }
    ```
+ 

**证书**  
这些日志条目将帮助您检查您的无线网关是否提供了正确的证书，用于对与 AWS IoT 的连接进行身份验证。对于此事件类型，如果在为您的无线网关资源配置 CLI 时将日志级别设置为 `INFO`，则在日志中：
  + 如果事件成功，您将看到 `logLevel` 为 `INFO` 的日志消息。这些消息将包括有关证书 ID 和无线网关标识符的详细信息。以下是此日志条目的一个示例。有关 `logLevel` 和日志条目中其他字段的更多信息，请参阅 [AWS IoT Wireless 资源和日志级别](configure-resource-logging.md#log-levels-resources)。

    ```
    {
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "event": "Certificate",
        "logLevel": "INFO",
        "message": "Gateway connection authenticated. 
        (CertificateId: b5942a7aee973eda24314e416889227a5e0aa5ed87e6eb89239a83f515dea17c, WirelessGatewayId: 5da85cc8-3361-4c79-8be3-3360fb87abda)"
    }
    ```
  + 如果出现错误，您将看到 `logLevel` 为 `ERROR` 的日志条目，且消息将包含有关错误的详细信息。`Certificate` 事件可能出现错误的示例包括无效的证书 ID、无线网关标识符，或无线网关标识符与证书 ID 之间不匹配。以下示例显示了由于无线网关标识符无效导致的 `ERROR`。要纠正该错误，请检查网关标识符。

    ```
    {
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "event": "Certificate",
        "logLevel": "INFO",
        "message": "The gateway connection couldn't be authenticated because a provisioned gateway associated with the certificate couldn't be found. 
        (CertificateId: 729828e264810f6fc7134daf68056e8fd848afc32bfe8082beeb44116d709d9e)"
    }
    ```

## 无线设备日志条目
<a name="device-log-entries"></a>

此部分显示了无线设备资源的一些示例日志条目，您将在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch) 中控制这些资源。这些日志消息的事件类型取决于您使用的是 LoRaWAN 还是 Sidewalk 设备。每种无线设备资源或事件类型都可以配置为显示 `INFO`、`ERROR` 或者 `DISABLED` 日志级别。

**注意**  
您的请求不得同时包含 LoRaWAN 和 Sidewalk 无线元数据。要避免 `ERROR` 日志条目出现此状况，请指定 LoRaWAN 或 Sidewalk 无线数据。

### LoRaWAN 设备日志条目
<a name="lorawan-log-entries"></a>

LoRaWAN 无线设备的日志条目可根据以下事件类型进行分类：
+ 

**`Join` 和 `Rejoin`**  
当您添加 LoRaWAN 设备并将其连接到 适用于 LoRaWAN 的 AWS IoT Core 时，在设备可以发送上行链路数据之前，您必须完成 `activation` 或者 `join procedure` 流程。有关更多信息，请参阅[将您的无线设备添加到 适用于 LoRaWAN 的 AWS IoT Core](lorawan-end-devices-add.md)。

  对于此事件类型，如果在为您的无线网关资源配置 CLI 时将日志级别设置为 `INFO`，则在日志中：
  + 如果事件成功，您将看到 `logLevel` 为 `INFO` 的日志消息。这些消息将包含有关您的加入或重新加入请求状态的详细信息。以下是此日志条目的一个示例。有关 `logLevel` 和日志条目中其他字段的更多信息，请参阅 [AWS IoT Wireless 资源和日志级别](configure-resource-logging.md#log-levels-resources)。

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessDevice",
        "wirelessDeviceType": "LoRaWAN",
        "WirelessDeviceId": "5da85cc8-3361-4c79-8be3-3360fb87abda",    
        "devEui": "feffff00000000e2",
        "event": "Rejoin",
        "logLevel": "INFO",
        "message": "Rejoin succeeded"
    }
    ```
  + 如果出现错误，您将看到 `logLevel` 为 `ERROR` 的日志条目，且消息将包含有关错误的详细信息。`Join` 和 `Rejoin` 事件可能出现错误的示例包括无效的 LoRaWAN 区域设置或无效的 Message Integrity Code (MIC) 检查。以下示例显示了由于 MIC 检查引起的加入错误。要解决此错误，请检查您是否输入了正确的根密钥。

    ```
    {
        "timestamp": "2020-11-24T01:46:50.883481989Z",
        "resource": "WirelessDevice",
        "wirelessDeviceType": "LoRaWAN",
        "WirelessDeviceId": "cb4c087c-1be5-4990-8654-ccf543ee9fff",
        "devEui": "58a0cb000020255c",
        "event": "Join",
        "logLevel": "ERROR",
        "message": "invalid MIC. It's most likely caused by wrong root keys."
    }
    ```
+ 

**Uplink\$1Data and Downlink\$1Data**  
当有效负载从 LoRaWAN 或 Sidewalk 设备发送到 AWS IoT 时，事件类型 `Uplink_Data` 可用于由 AWS IoT Wireless 生成的消息。事件类型 `Downlink_Data` 用于与下行链接消息相关的消息，这些消息是从 AWS IoT 发送到无线设备的。

  对于此事件类型，如果在为您的无线设备配置 CLI 时将日志级别设置为 `INFO`，那么在日志中，您将看到：
  + 如果事件成功，您将看到 `logLevel` 为 `INFO` 的日志消息。这些消息将包含有关已发送的上行链路或下行链路消息的状态以及无线设备标识符的详细信息。下面显示了 Sidewalk 设备的此日志条目示例。有关 `logLevel` 和日志条目中其他字段的更多信息，请参阅 [AWS IoT Wireless 资源和日志级别](configure-resource-logging.md#log-levels-resources)。

    ```
    {
        "resource": "WirelessDevice",
        "wirelessDeviceId": "5371db88-d63d-481a-868a-e54b6431845d",
        "wirelessDeviceType": "Sidewalk",
        "event": "Downlink_Data",
        "logLevel": "INFO",
        "messageId": "8da04fa8-037d-4ae9-bf67-35c4bb33da71",
        "message": "Message delivery succeeded.  MessageId: 8da04fa8-037d-4ae9-bf67-35c4bb33da71. AWS IoT Core: {\"message\":\"OK\",\"traceId\":\"038b5b05-a340-d18a-150d-d5a578233b09\"}"
    }
    ```
  + 如果出现错误，您将看到 `logLevel` 为 `ERROR`，并且消息将包含有关错误的详细信息，这将帮助您解决错误。`Registration` 事件可能会出现错误的示例包括：身份验证问题、请求无效或过多、无法加密或解密负载，或者无法使用指定 ID 找到无线设备。以下示例显示了处理消息时遇到的权限错误。

    ```
    {
        "resource": "WirelessDevice",
        "wirelessDeviceId": "cb4c087c-1be5-4990-8654-ccf543ee9fff",
        "wirelessDeviceType": "LoRaWAN",
        "event": "Uplink_Data",
        "logLevel": "ERROR",
        "message": "Cannot assume role MessageId: ef38877f-3454-4c99-96ed-5088c1cd8dee. 
        Access denied: User: arn:aws:sts::005196538709:assumed-role/DataRoutingServiceRole/6368b35fd48c445c9a14781b5d5890ed is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::400232685877:role/ExecuteRules_Role\tstatus code: 403, request id: 471c3e35-f8f3-4e94-b734-c862f63f4edb"
    }
    ```

### Sidewalk 设备日志条目
<a name="sidewalk-log-entries"></a>

您的 Sidewalk 设备的日志条目可以根据以下事件类型进行分类：
+ 

**`Registration`**  
这些日志条目将帮助您监控您使用 AWS IoT Wireless 注册的任何 Sidewalk 设备的状态。对于此事件类型，如果在为您的无线设备资源配置 CLI 时将日志级别设置为 `INFO`，那么在日志中，您将看到 `logLevel` 为 `INFO` 和 `ERROR` 的日志消息。这些消息将包括有关整个注册进度的详细信息。`ERROR` 日志消息将包含有关如何解决注册设备问题的信息。

  下面显示了日志消息的示例，其日志级别为 `INFO`。有关 `logLevel` 和日志条目中其他字段的更多信息，请参阅 [AWS IoT Wireless 资源和日志级别](configure-resource-logging.md#log-levels-resources)。

  ```
  {
      "resource": "WirelessDevice",
      "wirelessDeviceId": "8d0b2775-e19b-4b2a-a351-cb8a2734a504",
      "wirelessDeviceType": "Sidewalk",
      "event": "Registration",
      "logLevel": "INFO",
      "message": "Successfully completed device registration. Amazon SidewalkId = 2000000002"
  }
  ```
+ 

**Uplink\$1Data and Downlink\$1Data**  
Sidewalk 设备的事件类型 `Uplink_Data` 和 `Downlink_Data` 类似于 LoRaWAN 设备的相应事件类型。有关更多信息，请参阅之前 LoRaWAN 设备日志条目中所述的 **Uplink\$1Data and Downlink\$1Data** 部分。

### 后续步骤
<a name="cwl-format-next-steps"></a>

您已经了解了如何查看资源的日志条目以及在启用 AWS IoT Wireless 日志记录后可以在 CloudWatch 控制台中查看的不同日志条目。虽然您可以使用 **Log groups**（日志组）创建筛选条件流，我们建议您使用 CloudWatch Insights 创建和使用筛选条件流。有关更多信息，请参阅[使用 CloudWatch Insights 为 AWS IoT Wireless 筛选日志](cwl-insights.md)。