

# 檢視 CloudWatch AWS IoT Wireless 日誌項目
<a name="cwl-format"></a>

在設定了 AWS IoT Wireless 的記錄 (如 [建立 AWS IoT Wireless 的記錄角色和政策](create-logging-role-policy.md) 所述) 並寫入一些日誌項目之後，您可以執行下列步驟，在 CloudWatch 主控台中檢視記錄項目。

## 在 CloudWatch Log 群組主控台中檢視 AWS IoT 記錄
<a name="viewing-logs"></a>

在 [CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch) 中，CloudWatch 記錄出現在名為 **/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. 若要查看為您帳戶所產生之 AWS IoT Core for LoRaWAN 記錄的完整清單，請選擇 **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_tw/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 無線裝置 | LoRaWAN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 無線裝置 | Sidewalk |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-wireless/latest/developerguide/cwl-format.html)  | 

下列主題包含這些事件類型的詳細資訊，以及無線閘道和無線裝置的記錄項目。

**Topics**
+ [在 CloudWatch Log 群組主控台中檢視 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 Basics Station 會定期將請求傳送至組態與更新伺服器 (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 與 AWS IoT Core for LoRaWAN 不符、缺少 `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 裝置並將其連接到 AWS IoT Core for LoRaWAN，然後您的裝置才能傳送上行資料時，您必須先完成稱為 `activation` 或 `join procedure` 的程序。如需詳細資訊，請參閱[將您的無線裝置新增至 AWS IoT Core for LoRaWAN](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 區域設定，或無效的訊息完整性代碼 (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 與 Downlink\$1Data**  
事件類型 `Uplink_Data` 用於 LoRaWAN 或 Sidewalk 裝置向 AWS IoT 傳送承載時由 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 與 Downlink\$1Data**  
Sidewalk 裝置的事件類型 `Uplink_Data` 和 `Downlink_Data` 類似於 LoRaWAN 裝置的對應事件類型。如需詳細資訊，請參閱先前針對 LoRaWAN 裝置記錄項目所述的 **Uplink\$1Data 與 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)。