

# 使用網路分析器即時監控無線資源機群
<a name="network-analyzer-overview"></a>

網路分析儀使用預設的 WebSocket 連線來接收無線連線資源的即時追蹤訊息日誌。藉由使用網路分析器，您可以新增要監控的資源、啟用追蹤訊息工作階段，以及即時開始接收追蹤訊息。

您也可以使用 Amazon CloudWatch 來監控資源。若要使用 CloudWatch，則可以設定 IAM 角色來設定記錄，然後等待主控台中顯示日誌項目。網路分析器可大幅減少設定連線並開始接收追蹤訊息所需的時間，能夠為您的資源叢集提供即時日誌資訊。如需使用 CloudWatch 進行監控的詳細資訊，請參閱 [使用 Amazon CloudWatch Logs 監控您的 AWS IoT Wireless 資源](monitoring-cloudwatch.md)。

藉由縮短設定時間並使用來自追蹤訊息的資訊，可以更有效地監控資源、取得有意義的洞察以及排解錯誤。您可以監控 LoRaWAN 裝置和 LoRaWAN 閘道。例如，可以在加入一個 LoRaWAN 裝置時，快速識別聯結錯誤。若要偵錯，請使用提供的追蹤訊息日誌中的資訊。

**如何使用網路分析器**  
若要監控資源叢集並開始接收追蹤訊息，請執行下列步驟

1. 

**建立網路分析器組態並新增資源**  
請先建立網路分析器組態，並將資源新增至組態，才能啟用追蹤訊息。首先，指定組態設定，其中包括日誌層級和無線裝置框架資訊。然後使用無線閘道和無線裝置識別碼新增要監控的無線資源。

1. 

**使用 WebSockets 串流追蹤訊息**  
您可以使用 IAM 角色的認證來產生預先簽署的請求 URL，以使用 WebSocket 通訊協定串流網路分析器追蹤訊息。

1. 

**啟用追蹤訊息工作階段並監控追蹤訊息**  
若要開始接收追蹤訊息，請啟用追蹤訊息工作階段。若要避免產生額外的成本，您可以停用或關閉網路分析器追蹤訊息工作階段。

 下列影片說明 AWS IoT Core for LoRaWAN 網路分析器的運作方式，以及逐步解說使用網路分析器新增資源和追蹤聯結活動的程序。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Qk9pkhL8xjc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Qk9pkhL8xjc)


下列主題說明如何建立組態、新增資源和啟用追蹤訊息工作階段。

**Topics**
+ [為網路分析器加入必要的 IAM 角色](network-analyzer-iam.md)
+ [建立網路分析器組態並新增資源](network-analyzer-create-resources.md)
+ [串流網路分析器使用 WebSocket 追蹤消息](network-analyzer-api.md)
+ [即時檢視並監控網路分析器追蹤訊息日誌](network-analyzer-logs.md)
+ [使用網路分析器，針對您的多播群組和 FUOTA 任務進行偵錯和疑難排解](lorawan-network-analyzer-fuota.md)

# 為網路分析器加入必要的 IAM 角色
<a name="network-analyzer-iam"></a>

使用網路分析器時，必須授予使用者許可使用 API 操作 [UpdateNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateNetworkAnalyzerConfiguration.html) 和 [GetNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetNetworkAnalyzerConfiguration.html) 存取網路分析器資源。以下顯示您用於授予許可的 IAM 政策。

## 適用於網路分析器的 IAM 政策
<a name="network-analyzer-policies"></a>

使用下列任何一項：
+ 

**完整存取無線政策**  
授予 AWS IoT Core for LoRaWAN 完整存取政策，方法是將 **AWSIoTWirelessFullAccess** 政策連接至您的角色。如需詳細資訊，請參閱 [`AWSIoTWirelessFullAccess` 政策摘要](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTWirelessFullAccess$serviceLevelSummary)。
+ 

**用於取得和更新 API 的範圍 IAM 政策**  
建立以下 IAM 政策，方法是前往 IAM 主控台的 [Create policy](https://console.aws.amazon.com/iam/home#/policies$new?step=edit) (建立政策) 頁面，並在 **Visual editor** (視覺化編輯器) 索引標籤：

  1. **Service** (服務) 選擇 **IoTWireless**。

  1. 在 **Access level** (存取層級) 下，展開 **Read** (讀)，選擇 **GetNetworkAnalyzerConfiguration**，然後展開 **Write** (寫)，選擇 **UpdateNetworkAnalyzerConfiguration**。

  1. 選擇 **Next:Tags** (下一步：標籤)，然後輸入政策 **Name** (名稱)，例如 **IoTWirelessNetworkAnalyzerPolicy**。選擇**建立政策**。

  下列顯示您建立的政策 **IoTWirelessNetworkAnalyzerPolicy**。如需建立政策的詳細資訊，請參閱[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create)。

  ```
  {
      "Version": "2012-10-17",
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "iotwireless:GetNetworkAnalyzerConfiguration",
                  "iotwireless:UpdateNetworkAnalyzerConfiguration"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

**用於存取特定資源的範圍政策**  
若要設定更精細的存取控制，您必須將無線閘道和裝置新增至 **Resource** (資源) 欄位。以下政策使用萬用字元 ARN 授予對所有閘道和裝置的存取權限。您可以使用 `WirelessGatewayId` 和 `WirelessDeviceId` 控制對特定閘道和裝置的存取。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iotwireless:GetNetworkAnalyzerConfiguration",
                "iotwireless:UpdateNetworkAnalyzerConfiguration"
            ],
            "Resource": [
                "arn:aws:iotwireless:*:{accountId}:WirelessDevice/*", 
                "arn:aws:iotwireless:*:{accountId}:WirelessGateway/*", 
                "arn:aws:iotwireless:*:{accountId}:NetworkAnalyzerConfiguration/*"
            ]
        }
    ]
}
```

若要授予使用者使用網路分析器但不使用任何無線閘道或裝置的許可，請使用以下政策。除非指定，暗中拒絕使用資源的許可。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iotwireless:GetNetworkAnalyzerConfiguration",
                "iotwireless:UpdateNetworkAnalyzerConfiguration"
            ],
            "Resource": [                
                "arn:aws:iotwireless:*:{accountId}:NetworkAnalyzerConfiguration/*"
            ]
        }
    ]
}
```

## 後續步驟
<a name="network-analyzer-iam-next"></a>

現在您已建立政策，您可以將資源加入網路分析器組態，並接收這些資源的追蹤訊息資訊。如需詳細資訊，請參閱[建立網路分析器組態並新增資源](network-analyzer-create-resources.md)。

# 建立網路分析器組態並新增資源
<a name="network-analyzer-create-resources"></a>

在串流傳輸追蹤訊息之前，請先建立網路分析器組態，並將要監控的資源加入這個組態。建立組態時，您可以：
+ 指定組態名稱和選用描述。
+ 自訂組態設定，例如框架資訊和日誌訊息的詳細資訊層級。
+ 加入希望監控的資源。資源可以是無線裝置、無線閘道或兩者皆是。

您指定的組態設定會決定您將針對加入組態中的資源接收到的追蹤訊息資訊。您可能也需要建立多個組態，具體取決於您的監控使用案例。

以下說明如何建立組態並新增資源。

**Topics**
+ [建立網路分析器組態](network-analyzer-create.md)
+ [新增資源並更新網路分析器組態](network-analyzer-resources.md)

# 建立網路分析器組態
<a name="network-analyzer-create"></a>

您必須先建立網路分析器組態，才能監控無線閘道或無線裝置。建立組態時，您只需要指定組態名稱。您可以自訂您的組態設定，並將您想要監控的資源新增至組態，即使組態已建立之後也是如此。組態設定會決定您將針對這些資源接收到的追蹤訊息資訊。

您可能需要建立多個組態，具體取決於要監控的資源以及您希望接收的資訊層級。例如，您可以建立一個組態，僅顯示 AWS 帳戶 中一組閘道的錯誤資訊。您也可以建立一個組態，顯示要監控之無線裝置的所有資訊。

以下部分介紹各種組態設定以及如何建立組態。

## 組態設定
<a name="network-analyzer-config-settings"></a>

建立或更新網路分析器組態時，您也可以自訂下列參數，以篩選日誌串流資訊。
+ 

**框架資訊**  
這個設定是要追蹤訊息之無線裝置資源的框架資訊。框架資訊可用來偵錯網路伺服器與終端裝置之間的通訊。依預設會啟用此功能。
+ 

**日誌層級**  
您可以檢視 Info (資訊) 或 Error (錯誤) 日誌，也可以關閉記錄功能。
  + 

**Info**  
日誌層級為 **Info** (資訊) 的日誌更詳細，並且同時包含錯誤日誌串流和資訊日誌串流。資訊日誌可用來檢視裝置或閘道狀態的變更。
**注意**  
收集更詳細的日誌串流會產生額外的成本。如需定價的詳細資訊，請參閱 [AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)。
  + 

**錯誤**  
日誌層級為 **Error** (錯誤) 的日誌不夠詳細且只會顯示錯誤資訊。當應用程式發生錯誤 (例如裝置連線錯誤) 時，您就可以使用這些日誌。藉由使用來自日誌串流的資訊，您可以識別並排解機群中資源的錯誤。

## 使用主控台建立組態
<a name="network-analyzer-create-configuration-console"></a>

您可以建立網路分析器組態，並使用 AWS IoT 主控台或 AWS IoT Wireless API 自訂選用參數。您也可以建立多個組態，之後刪除不再使用的任何組態。

**建立網路分析器組態**  


1. 開啟 [AWS IoT 主控台的網路分析器中樞](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)並選擇 **Create configuration** (建立組態)。

1. 指定組態設定
   + 

**名稱、描述和標籤**  
指定一個唯一的**組態名稱**，只能含有字母、數字、連字號或底線。使用選用的 **Description** (描述) 欄位以提供有關組態的資訊，以及 **Tags** (標籤) 欄位加入有關組態之中繼資料的鍵值對。如需有關命名和描述資源的詳細資訊，請參閱 [描述您的 AWS IoT Wireless 資源](iotwireless-describe-resources.md)。
   + 

**組態設定**  
選擇是否停用框架資訊並使用 **Selelct log levels** (選取日誌層級)，以此選擇要用於追蹤訊息的日誌層級。選擇 **Next** (下一步)。

1. 新增資源到組態。您可以立即加入資源，也可以選擇 **Create** (建立)，然後之後加入您的資源。若要之後加入資源，請選擇 **Create** (建立)。

   在 **Network Analyzer hub page** (網路分析器中樞頁面)，您會看到您所建立的組態及其設定。若要檢視新組態的詳細資訊，請選擇組態名稱。

**刪除您的網路分析器組態**  


您可以建立多個網路分析器組態，具體取決於要監控的資源，以及您希望接收的追蹤訊息資訊層級。

**從主控台中移除組態**

1. 前往 [AWS IoT 主控台的網路分析器中樞](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)並選擇您要移除的組態。

1. 選擇**動作**，然後選擇**刪除**。

## 使用 API 建立組態
<a name="network-analyzer-create-configuration-api"></a>

若要使用 API 建立網路分析器組態，請使用 [CreateNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateNetworkAnalyzerConfiguration.html) API 操作或 [create-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-network-analyzer-configuration.html) CLI 命令。

建立組態時，您只需要指定組態名稱。您也可以使用此 API 操作指定組態設定，並在建立組態時加入資源。或者，您可以稍後使用 [UpdateNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateNetworkAnalyzerConfiguration.html) API 操作或 [update-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-network-analyzer-configuration.html) CLI 命令。
+ 

**建立組態**  
建立組態時，您必須指定名稱。例如，下列命令只提供名稱和選用描述來建立組態。預設情況下，組態已啟用框架資訊，並使用 `INFO` 日誌層級。

  ```
  aws iotwireless create-network-analyzer-configuration \ 
      --configuration-name My_Network_Analyzer_Config \ 
      --description "My first network analyzer configuration"
  ```

  執行這個命令會顯示網路分析器組態的 ARN 和 ID。

  ```
  {
      "Arn": "arn:aws:iotwireless:us-east-1:123456789012:NetworkAnalyzerConfiguration/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
      "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
  }
  ```
+ 

**使用資源建立組態**  
若要自訂組態設定，請使用`trace-content` 參數。若要新增資源，請使用 `WirelessDevices` 和 `WirelessGateways` 參數指定您要新增至組態的閘道、裝置或者兩者。例如，以下命令可自訂組態設定，並將無線資源加入您的組態，這些資源由其 `WirelessGatewayID` 和 `WirelessDeviceID` 指定。

  ```
  aws iotwireless create-network-analyzer-configuration \ 
      --configuration-name My_NetworkAnalyzer_Config \ 
      --trace-content WirelessDeviceFrameInfo=DISABLED,LogLevel="ERROR" \ 
      --wireless-gateways "12345678-a1b2-3c45-67d8-e90fa1b2c34d" "90123456-de1f-2b3b-4c5c-bb1112223cd1"   
      --wireless-devices "1ffd32c8-8130-4194-96df-622f072a315f"
  ```

  以下範例顯示執行命令的輸出：

  ```
  {
      "Arn": "arn:aws:iotwireless:us-east-1:123456789012:NetworkAnalyzerConfiguration/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
      "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
  }
  ```

**列出網路分析器組態**  
您可以建立多個網路分析器組態，具體取決於要監控的資源，以及您希望接收的追蹤訊息資訊詳細程度。建立這些組態後，您可以使用 [ListNetworkAnalyzerConfigurations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListNetworkAnalyzerConfigurations.html) API 操作或 [list-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-network-analyzer-configuration.html) CLI 命令取得這些組態的清單。

```
aws iotwireless list-network-analyzer-configurations
```

執行這個命令會顯示您 AWS 帳戶 中的所有網路分析器組態。您也可以使用 `max-results` 參數指定要顯示多少組態。以下顯示執行這個命令的輸出。

```
{
   "NetworkAnalyzerConfigurationList": [ 
      { 
         "Arn": "arn:aws:iotwireless:us-east-1:123456789012:NetworkAnalyzerConfiguration/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
         "Name": "My_Network_Analyzer_Config1"
      },
      { 
         "Arn": "arn:aws:iotwireless:us-east-1:123456789012:NetworkAnalyzerConfiguration/90123456-a1a2-9a87-65b4-c12bf3c2d09a",
         "Name": "My_Network_Analyzer_Config2"
      }
   ]
}
```

**刪除您的網路分析器組態**  
您可以用 [DeleteNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteNetworkAnalyzerConfiguration.html) API 操作或 [delete-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-network-analyzer-configuration.html) CLI 命令刪除不再使用的組態。

```
aws iotwireless delete-network-analyzer-configuration \ 
    --configuration-name My_NetworkAnalyzer_Config
```

執行這個命令不會產生任何輸出。若要檢視可用的組態，您可以使用 `ListNetworkAnalyzerConfigurations` API 操作。

## 後續步驟
<a name="network-analyzer-create-next"></a>

現在您已建立網路分析器組態，可以在組態加入資源或更新組態設定。如需詳細資訊，請參閱[新增資源並更新網路分析器組態](network-analyzer-resources.md)。

# 新增資源並更新網路分析器組態
<a name="network-analyzer-resources"></a>

必須先將資源新增至組態，才能啟動追蹤訊息。您只能使用一個預設網路分析器組態。AWS IoT Core for LoRaWAN 會將名稱 **NetworkAnalyzerConfig\$1Default** 指派給此組態，且此欄位無法編輯。在從主控台使用網路分析器時，此組態會自動新增至您的 AWS 帳戶。

您可以新增想要監控的資源至此預設組態。資源可以是 LoRaWAN 裝置和 LoRaWAN 閘道。若要將每個資源新增至組態，請使用無線閘道和無線裝置識別碼。

## 組態設定
<a name="resources-config-settings"></a>

若要進行設定，請先將資源新增至預設組態，然後啟用追蹤訊息。收到追蹤訊息日誌之後，您也可以自訂下列參數，以更新預設組態並篩選日誌串流。
+ 

**框架資訊**  
此設定是追蹤訊息用無線裝置資源的框架資訊。框架資訊預設為啟用，可用來偵錯網路伺服器與終端裝置之間的通訊。
+ 

**日誌層級**  
您可以檢視 Info (資訊) 或 Error (錯誤) 日誌，也可以關閉記錄功能。
  + 

**Info**  
日誌層級為 **Info** (資訊) 的日誌更詳細，並且包含資訊豐富且提供錯誤的日誌串流。資訊豐富的日誌可用來檢視裝置或閘道狀態的變更。
**注意**  
收集更詳細的日誌串流會產生額外的成本。如需定價的詳細資訊，請參閱 [AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)。
  + 

**錯誤**  
日誌層級為 **Error** (錯誤) 的日誌不夠詳細且只會顯示錯誤資訊。當應用程式發生錯誤 (例如裝置連線錯誤) 時，您就可以使用這些日誌。藉由使用來自日誌串流的資訊，您可以識別並排解機群中資源的錯誤。

## 必要條件
<a name="resources-prereq"></a>

在新增資源之前，您必須先將想監控的閘道和裝置加入 AWS IoT Core for LoRaWAN。如需詳細資訊，請參閱[將閘道和裝置連接至 AWS IoT Core for LoRaWAN](lorawan-getting-started.md)。

## 新增資源並使用主控台更新網路分析器組態
<a name="add-resources-console"></a>

您可以新增資源，並使用 AWS IoT 主控台或 AWS IoT Wireless API 自訂選用參數。除了資源之外，您還可以編輯組態設定並儲存更新的組態。

**新增資源到組態 (主控台)**  


1. 開啟 [AWS IoT 主控台的網路分析器中樞](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)，然後選擇網路分析器組態 **NetworkAnalyzerConfig\$1Default**。

1. 選擇 **Add resource** (新增資源)。

1. 使用無線閘道和無線裝置識別碼新增要監控的資源。您最多可以新增 250 個無線閘道或無線裝置。若要新增資源：

   1. 使用 **View gateways** (檢視閘道) 或 **View device** (檢視裝置) 索引標籤，查看已新增至 AWS 帳戶 的閘道和裝置清單。

   1. 複製想要監控的裝置或閘道的 `WirelessDeviceID` 或 `WirelessGatewayID`，然後輸入對應資源的識別碼值。

   1. 若要繼續新增資源，請選擇 **Add gateway** (新增閘道) 或 **Add device** (新增裝置)，然後新增無線閘道或裝置。如果不再想要監控新增的資源，請選擇 **Remove resource** (移除資源)。

1. 新增所有資源之後，請選擇 **Add** (新增)。

   您會在**網路分析器中樞頁面**中看到新增的閘道和裝置數目。您仍然可以繼續新增閘道和裝置，直到啟用追蹤訊息工作階段為止。啟動工作階段之後，若要新增資源，則必須停用工作階段。

**編輯網路分析器組態 (主控台)**  
您也可以編輯網路分析器組態，並選擇是否要停用追蹤訊息日誌的框架資訊和日誌層級。

1. 開啟 [AWS IoT 主控台的網路分析器中樞](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)，然後選擇網路分析器組態 **NetworkAnalyzerConfig\$1Default**。

1. 選擇 **Edit** (編輯)。

1. 選擇是否停用框架資訊並使用 **Selelct log levels** (選取日誌層級)，以此選擇要用於追蹤訊息的日誌層級。選擇 **Save** (儲存)。

   您會在網路分析器組態的詳細資訊頁面中看到自己指定的組態設定。

## 新增資源並使用 API 更新網路分析器組態
<a name="network-analyzer-add-resources-api"></a>

您可以使用 [AWS IoT Wireless API 操作](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/)或 [AWS IoT Wireless CLI 命令](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html)來新增資源並更新網路分析器組態的組態設定。
+ 若要新增資源並更新網路分析器組態，請使用 [UpdateNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateNetworkAnalyzerConfiguration.html) API 或 [update-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-network-analyzer-configuration.html) CLI。
  + 

**新增資源**  
對於要新增的無線裝置，請使用 `WirelessDevicesToAdd` 輸入裝置的 `WirelessDeviceID` 作為字串組。對於要新增的無線閘道，請使用 `WirelessGatewaysToAdd` 輸入閘道的 `WirelessGatewayID` 作為字串組。
  + 

**編輯組態**  
若要編輯網路分析器組態，請使用 `TraceContent` 參數來指定 `WirelessDeviceFrameInfo` 是否應為 `ENABLED` 或 `DISABLED`，以及 `LogLevel` 參數是否應為 `INFO`、`ERROR` 或 `DISABLED`。

  ```
  {
     "TraceContent": { 
        "LogLevel": "string",
        "WirelessDeviceFrameInfo": "string"
     },
     "WirelessDevicesToAdd": [ "string" ],
     "WirelessDevicesToRemove": [ "string" ],
     "WirelessGatewaysToAdd": [ "string" ],
     "WirelessGatewaysToRemove": [ "string" ]
  }
  ```
+ 若要取得有關組態和已新增資源的資訊，請使用 [GetNetworkAnalyzerConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateNetworkAnalyzerConfiguration.html) API 操作或 [get-network-analyzer-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-network-analyzer-configuration.html) 命令。提供網路分析器組態的名稱 `NetworkAnalyzerConfig_Default` 作為輸入。

## 後續步驟
<a name="network-analyzer-resources-next"></a>

您已新增資源並為組態指定任何選用組態設定，接下來可以使用 WebSocket 通訊協定建立與 AWS IoT Core for LoRaWAN 的連線以使用網路分析器。然後，您可以啟用追蹤訊息並開始接收資源的追蹤訊息。如需詳細資訊，請參閱[串流網路分析器使用 WebSocket 追蹤消息](network-analyzer-api.md)。

# 串流網路分析器使用 WebSocket 追蹤消息
<a name="network-analyzer-api"></a>

在使用 WebSocket 通訊協定時，您可以即時串流網路分析器追蹤訊息。傳送請求時，服務會用 JSON 結構回應。啟用追蹤訊息之後，您可以使用訊息日誌取得與資源相關的資訊及排解錯誤。如需詳細資訊，請參閱 [WebSocket 通訊協定](https://tools.ietf.org/html/rfc6455)。

以下主題展示串流網路分析器如何使用 WebSocket 追蹤訊息。

**Topics**
+ [使用 WebSocket 庫生成預先簽署的請求](network-analyzer-generate-request.md)
+ [WebSocket 訊息和狀態碼](network-analyer-messages-status.md)

# 使用 WebSocket 庫生成預先簽署的請求
<a name="network-analyzer-generate-request"></a>

下文顯示如何生成預先簽署的請求，以便您可以使用 WebSocket 庫將請求傳送到服務。

## 將 WebSocket 請求的政策新增到 IAM 角色
<a name="network-analyzer-iam"></a>

若要使用 WebSocket 通訊協定呼叫網路分析器，您需要將以下政策附加至提出此請求的 AWS Identity and Access Management (IAM) 角色。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotwireless:StartNetworkAnalyzerStream",
            "Resource": "*"
        }
    ]
}
```

## 建立預先簽署的 URL
<a name="network-analyzer-presigned-url"></a>

為您的 WebSocket 請求建構 URL，其中包含在您的應用程式和網路分析器之間建立通訊時所需的資訊。若要驗證請求的身分，WebSocket 串流使用 Amazon Signature 第 4 版程序來簽署請求。如需有關 Signature 第 4 版的詳細資訊，請參閱《Amazon Web Services 一般參考》**中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

若要呼叫網路分析器，請使用 `StartNetworkAnalyzerStream` 請求 URL。將使用先前提及的 IAM 角色的憑證簽署請求。URL 採用下列格式，並會新增分行符以增加可讀性。

```
GET wss://api.iotwireless.<region>.amazonaws.com/start-network-analyzer-stream?X-Amz-Algorithm=AWS4-HMAC-SHA256
   &X-Amz-Credential=Signature Version 4 credential scope
   &X-Amz-Date=date
   &X-Amz-Expires=time in seconds until expiration
   &X-Amz-Security-Token=security-token
   &X-Amz-Signature=Signature Version 4 signature 
   &X-Amz-SignedHeaders=host
```

使用以下值作為 Singature 第 4 版的參數：
+ **X-Amz-Algorithm**：您在簽署程序中使用的演算法。唯一有效的值為 `AWS4-HMAC-SHA256`。
+ **X-Amz-Credential**：透過串連存取金鑰 ID 和憑證範圍元件所形成的以斜線 (「/」) 分隔的字串。憑證範圍包括 YYYYMMDD 格式的日期、AWS 區域、服務名稱和特殊終止字串 (aws4\$1request)。
+ **X-Amz-Date**：簽章的建立日期與時間。依照《Amazon Web Services 一般參考**》中 [Signature 第 4 版中的處理日期](https://docs.aws.amazon.com/general/latest/gr/sigv4-date-handling.html)指示生成日期與時間。
+ **X-Amz-Expires**：憑證在逾期前尚有多少時間 (以秒為單位)。最大值為 300 秒 (5 分鐘)。
+ **X-Amz-Security-Token**：(選用) 用於臨時安全憑證的 Signature 第 4 版字符。如果您指定此參數，請將其包含在正式請求中。如需詳細資訊，請參閱《AWS Identity and Access Management 使用者指南**》中的[請求臨時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)。
+ **X-Amz-Signature**：您為請求所生成的 Signature 第 4 版簽章。
+ **X-Amz-SignedHeaders**：在為請求建立簽章時，所簽署的標頭。唯一有效的值為 `host`。

## 建構請求 URL 以及建立 Signature 第 4 版簽章
<a name="connect-iot-network-analyzer-construct-url-sign"></a>

若要為請求建構 URL 及建立 Signature 第 4 版簽章，請使用下列步驟。這些範例是虛擬程式碼。

### 任務 1：建立正式請求
<a name="canonical-request"></a>

建立字串，其中包括來自您的請求的資訊 (使用標準化格式)。這可確保當 AWS 收到請求時，可以計算出您在 [任務 3：計算簽章](#calculate-signature) 中計算出的相同簽章。如需詳細資訊，請參閱《[Amazon Web Services 一般參考](https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html)》中的*為 Signature 第 4 版建立正式請求*。

1. 在應用程式中定義請求的變數。

   ```
   # HTTP verb
   method = "GET"
   # Service name
   service = "iotwireless"
   # AWS 區域
   region = "AWS 區域"
   # Service streaming endpoint
   endpoint = "wss://api.iotwireless.region.amazonaws.com"
   # Host
   host = "api.iotwireless.<region>.amazonaws.com"
   # Date and time of request
   amz-date = YYYYMMDD'T'HHMMSS'Z'
   # Date without time for credential scope
   datestamp = YYYYMMDD
   ```

1. 建立正式的 URI (統一資源識別符)。正式 URI 是介於網域與查詢字串之間的部分 URI。

   ```
   canonical_uri = "/start-network-analyzer-stream"
   ```

1. 建立正式標頭和已簽章標頭。請注意正式標頭中的結尾 `\n`。
   + 附加小寫標頭名稱，後面接著冒號。
   + 為該標頭附加逗號分隔的值清單。不要在有多個值的標頭中排序值。
   + 附加新的一行 (`\n`)。

   ```
   canonical_headers = "host:" + host + "\n"
   signed_headers = "host"
   ```

1. 演算法必須符合雜湊演算法。您必須使用 SHA-256。

   ```
   algorithm = "AWS4-HMAC-SHA256"
   ```

1. 建立憑證的範圍，將衍生的金鑰範圍限定於提出請求的日期、區域和服務。

   ```
   credential_scope = datestamp + "/" + region + "/" + service + "/" + "aws4_request"
   ```

1. 建立正式查詢字串。查詢字串值必須是 URL 編碼並以名稱排序。
   + 依照字元字碼指標的參數名稱遞增排序。​具有重複名稱的參數應依數值排序。例如，以大寫字母 F 開頭的參數名稱，放在以小寫字母 b 開頭的參數名稱之前。
   + URI 編碼不能執行 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 所定義的任何未預留字元：A–Z、a–z、0–9、連字號 (-)、底線 (\$1)、句點 ( . ) 和波狀符號 ( \$1 )。
   + 對所有其他含有 %XY 的字元執行百分比編碼，其中 X 和 Y 是十六進位字元 (0-9 和大寫 A-F)。例如，空間字元必須編碼為 %20 (而非像有些編碼結構描述那樣使用「\$1」)，而延伸的 UTF-8 字元必須採用 %XY%ZA%BC 格式。
   + 對參數值中的任何等於 (=) 字元進行雙倍編碼。

   ```
   canonical_querystring  = "X-Amz-Algorithm=" + algorithm
   canonical_querystring += "&X-Amz-Credential="+ URI-encode(access key + "/" + credential_scope)
   canonical_querystring += "&X-Amz-Date=" + amz_date 
   canonical_querystring += "&X-Amz-Expires=300"
   canonical_querystring += "&X-Amz-Security-Token=" + token
   canonical_querystring += "&X-Amz-SignedHeaders=" + signed_headers
   canonical_querystring += "&language-code=en-US&media-encoding=pcm&sample-rate=16000"
   ```

1. 建立承載的雜湊。對於 GET 請求，承載為空字串。

   ```
   payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
   ```

1. 結合所有元素來建立正式請求。

   ```
   canonical_request = method + '\n' 
      + canonical_uri + '\n' 
      + canonical_querystring + '\n' 
      + canonical_headers + '\n' 
      + signed_headers + '\n' 
      + payload_hash
   ```

### 任務 2：建立要簽署的字串
<a name="create-urlsign"></a>

要簽署的字串包含有關您的請求的中繼資料。您在下一個步驟計算請求簽章時，使用此字串登入。如需詳細資訊，請參閱《[Amazon Web Services 一般參考](https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html)》中的*建立 Signature 第 4 版的登入字串*。

```
string_to_sign=algorithm + "\n"
   + amz_date + "\n"
   + credential_scope + "\n"
   + HashSHA256(canonical_request.Encode("utf-8")).HexDigest()
```

### 任務 3：計算簽章
<a name="calculate-signature"></a>

從您的 AWS 私密存取金鑰衍生簽署金鑰。為了提供更大程度的保護，衍生的金鑰有專屬的日期、服務和 AWS 區域。您使用衍生的金鑰來簽署請求。如需詳細資訊，請參閱《[Amazon Web Services 一般參考](https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html)》中的*為 AWS Signature 第 4 版計算簽章*。

此程式碼假設您已實作 `GetSignatureKey` 函數來衍生簽署金鑰。如需詳細資訊和範例函數，請參閱《[Amazon Web Services 一般參考](https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html)》中的*如何衍生 Signature 第 4 版的簽署密鑰範例*。

函數 `HMAC(key, data)` 代表 HMAC-SHA256 函數，它會以二進位格式傳回結果。

```
#Create the signing key
signing_key = GetSignatureKey(secret_key, datestamp, region, service)
                
# Sign the string_to_sign using the signing key
signature = HMAC.new(signing_key, (string_to_sign).Encode("utf-8"), Sha256()).HexDigest
```

### 任務 4：將簽署資訊添加至請求並建立請求 URL
<a name="sign-request"></a>

您計算簽章之後，請將簽章新增到查詢字串。如需詳細資訊，請參閱《[Amazon Web Services 一般參考](https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html)》中的*新增簽章至請求*。

```
#Add the authentication information to the query string
canonical_querystring += "&X-Amz-Signature=" + signature
                
# Sign the string_to_sign using the signing key
request_url = endpoint + canonical_uri + "?" + canonical_querystring
```

## 後續步驟
<a name="network-analyzer-request-next"></a>

您現在可以使用請求 URL 與您的 WebSocket 程式庫，以便向服務提出請求並觀察訊息。如需詳細資訊，請參閱[WebSocket 訊息和狀態碼](network-analyer-messages-status.md)。

# WebSocket 訊息和狀態碼
<a name="network-analyer-messages-status"></a>

建立預先簽署的請求之後，您可以使用請求 URL 與您的 WebSocket 程式庫或適合您程式設計語言的程式庫，向服務提出請求。如需如何產生此預先簽署請求的詳細資訊，請參閱 [使用 WebSocket 庫生成預先簽署的請求](network-analyzer-generate-request.md)。

## WebSocket 訊息
<a name="network-analyer-messages"></a>

可以使用 WebSocket 通訊協定建立雙向連線。訊息可以從用戶端傳輸到服務器，也可以從服務器傳輸到用戶端。不過，網路分析器只支援從伺服器傳送到用戶端的訊息。意外從用戶端接收的任何訊息，若訊息來自用戶端，則伺服器將自動關閉 WebSocket 連線。

當收到請求並啟用追蹤訊息工作階段時，伺服器以 JSON 結構回應，即為承載。如需有關承載的詳細資訊，以及如何從 AWS 管理主控台 啟用追蹤訊息，請參閱 [即時檢視並監控網路分析器追蹤訊息日誌](network-analyzer-logs.md)。

## WebSocket 狀態碼
<a name="network-analyer-status-codes"></a>

下文顯示了伺服器到用戶端的通訊的 WebSocket 狀態碼。WebSocket 狀態碼遵循[連線正常關閉的 RFC 標準](https://datatracker.ietf.org/doc/html/rfc6455#section-7.3)。

下文顯示受支援的狀態碼：
+ 

**1000**  
這個狀態碼表示正常關閉，代表已建立 WebSocket 連線且已完成請求。當工作階段閒置時即可觀察到此狀態，這會造成連線逾時。
+ 

**1002**  
此狀態碼表示端點因通訊協定錯誤而終止連線。
+ 

**1003**  
此狀態碼表示錯誤狀態，其中端點因接收的資料格式無法接受而終止連線。端點僅支援文字資料，如果它收到二進位訊息或來自使用不支援格式的用戶端的訊息，則可能會顯示此狀態碼。
+ 

**1008**  
此狀態碼表示錯誤狀態，其中端點因收到違反其政策的訊息而終止連線。此狀態為一般狀態，會在其他狀態碼 (例如 1003 或 1009) 不適用時顯示。如果需要隱藏政策或授權失敗 (例如簽章過期)，也會顯示此狀態。
+ 

**1011**  
此狀態碼表示錯誤狀態，其中伺服器因遇到未預料的情況或內部錯誤，導致無法滿足請求而終止連線。

## 後續步驟
<a name="network-analyzer-websockets-next"></a>

現在您已經學會了如何生成預先簽署的請求，以及如何使用 WebSocket 連線來觀察伺服器的訊息；接下來，您可以啟用追蹤訊息，並開始接收無線閘道和無線裝置資源的訊息日誌。如需詳細資訊，請參閱[即時檢視並監控網路分析器追蹤訊息日誌](network-analyzer-logs.md)。

# 即時檢視並監控網路分析器追蹤訊息日誌
<a name="network-analyzer-logs"></a>

如果已將資源新增至網路分析器組態，則可以啟動追蹤訊息，開始接收資源的追蹤訊息。您可以使用 AWS 管理主控台、AWS IoT Wireless API 或 AWS CLI。

## 必要條件
<a name="network-analyzer-logs-prereq"></a>

使用網路分析器啟用追蹤訊息之前，您必須具備：
+ 已新增要監控的資源到預設的網路分析器組態。如需詳細資訊，請參閱[新增資源並更新網路分析器組態](network-analyzer-resources.md)。
+ 使用 `StartNetworkAnalyzerStream` 請求 URL 生產預先簽署的請求。將使用提出此請求的 AWS Identity and Access Management 角色憑證來簽署請求。如需詳細資訊，請參閱[建立預先簽署的 URL](network-analyzer-generate-request.md#network-analyzer-presigned-url)。

## 使用主控台啟用追蹤訊息
<a name="network-analyzer-activate-console"></a>

若要啟用追蹤訊息

1. 開啟 [AWS IoT 主控台的網路分析器中樞](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)，然後選擇網路分析器組態 **NetworkAnalyzerConfig\$1Default**。

1. 在網路分析器組態的詳細資料頁面中，選擇 **Activate trace messaging** (啟用追蹤簡訊)，然後選擇 **Activate** (啟用)。

   您會開始接收追蹤訊息，其中最新的追蹤訊息會先出現在主控台中。
**注意**  
訊息工作階段啟動後，接收追蹤訊息可能會產生額外的成本，直到您停用工作階段或離開追蹤工作階段為止。如需定價的詳細資訊，請參閱 [AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)。

## 檢視和監控追蹤訊息
<a name="network-analyzer-view-trace"></a>

啟用追蹤訊息之後，就會建立 WebSocket 連線，並會即時出現追蹤訊息 (最先出現最新訊息)。您可以自訂偏好設定，指定要在每個頁面中顯示的追蹤訊息數目，並僅顯示每個訊息的相關欄位。例如，您可以自訂追蹤訊息日誌，僅顯示將 **Log level** (日誌層級) 設定成 `ERROR` 的無限閘道資源，以便快速識別和偵錯閘道的錯誤。追蹤訊息包含下列資訊。
+ **Message Number** (訊息編號)：唯一的編號，可顯示最先收到的最新訊息。
+ **Resource ID** (資源 ID)：資源的無線閘道或無線裝置 ID。
+ **Timestamp** (時間戳記)：收到訊息的時間。
+ **訊息 ID**：AWS IoT Core for LoRaWAN 指派給每則收到的訊息的識別符。
+ **FPort**：使用 WebSocket 連線與裝置通訊的頻率連接埠。
+ **DevEui**：無線裝置的延伸唯一識別碼 (EUI)。
+ **Resource** (資源)：不論受監控的資源是無線裝置或無線閘道都一樣。
+ **Event** (事件)：無線裝置日誌訊息的事件，可以是 **Join** (加入)、**Rejoin** (重新加入)、**Uplink\$1Data**、**Downlink\$1Data** 或 **Registration** (註冊)。
+ **Log level** (日誌層級)：裝置 `INFO` 或 `ERROR` 日誌串流的相關資訊。

## 網絡分析器 JSON 日誌訊息
<a name="connect-iot-network-analyzer-trace-logs"></a>

您也可以一次選擇一個追蹤訊息，以檢視該訊息的 JSON 承載。根據您在追蹤訊息日誌中選取的訊息，您會在 JSON 承載中看到表示包含 2 個部分的資訊：**CustomerLog** 和 **LoRaFrame**。

**CustomerLog**  
JSON 的 **CustomerLog** 部分會顯示接收訊息的資源類型和識別碼、日誌層級以及訊息內容。下列範例展示 **CustomerLog** 日誌訊息。您可以使用 JSON 中的 `message` 欄位取得有關錯誤以及如何解決錯誤的詳細資訊。

**LoRaFrame**  
JSON 的 **LoRaFrame** 部分具有 **Message ID** (訊息 ID)，並包含裝置實體承載和無線中繼資料的相關資訊。

下列範例顯示追蹤訊息的結構。

```
export type TraceMessage = {
  ResourceId: string;
  Timestamp: string;
  LoRaFrame: 
  {
    MessageId: string;
    PhysicalPayload: any;
    WirelessMetadata: 
    {
      fPort: number;
      dataRate: number;
      devEui: string;
      frequency: number,
      timestamp: string;
    },
  }
  CustomerLog: 
  {
    resource: string;
    wirelessDeviceId: string;
    wirelessDeviceType: string;
    event: string;
    logLevel: string;
    messageId: string;
    message: string;
  },
};
```

## 檢閱和後續步驟
<a name="network-analyzer-review"></a>

在本節中，您已檢視追蹤訊息，並了解如何使用這些資訊來偵錯。檢視所有訊息後，您可以：
+ 

**停用追蹤訊息**  
若要避免產生任何額外成本，您可以停用追蹤訊息工作階段。停用工作階段會中斷 WebSocket 連線，可免於收到其他追蹤訊息。您仍然可以繼續檢視主控台中的現有訊息。
+ 

**編輯組態的框架資訊**  
您可以編輯網路分析器組態、選擇是否要停用框架資訊以及選擇訊息的日誌層級。更新組態之前，請考慮停用追蹤訊息工作階段。若要進行這些編輯，請開啟 [AWS IoT 主控台中的網路分析器詳細資訊頁面](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer/details/NetworkAnalyzerConfig_Default)並選擇 **Edit** (編輯)。然後，您可以使用新的組態設定來更新組態，並啟動追蹤訊息來查看更新訊息。
+ 

**新增資源到組態**  
您也可以在網路分析器組態中新增更多資源，並即時監控這些資源。您最多可以新增總共 250 個無線閘道和無線裝置資源。若要新增資源，請在 [AWS IoT 主控台中的網路分析器詳細資訊頁面](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer/details/NetworkAnalyzerConfig_Default)選擇 **Resources** (資源) 索引標籤，然後選擇 **Add resources** (新增資源)。然後，您可以使用新資源更新組態，並啟動追蹤訊息來查看其他資源的更新訊息。

如需有關透過編輯組態設定和新增資源來更新網路分析器組態的詳細資訊，請參閱 [新增資源並更新網路分析器組態](network-analyzer-resources.md)。

# 使用網路分析器，針對您的多播群組和 FUOTA 任務進行偵錯和疑難排解
<a name="lorawan-network-analyzer-fuota"></a>

您可以監控的無線資源包括 LoRaWAN 裝置、LoRaWAN 閘道和多播群組。您也可以使用網路分析器，針對 FUOTA 任務的任何問題進行偵錯和疑難排解。您也可以在 FUOTA 任務進行時監控並追蹤與設定、資料傳輸和狀態查詢相關的訊息。

若要監控 FUOTA 任務，如果任務包含多播群組，您必須同時將多播群組和該群組中的裝置新增至網路分析器組態。您也必須啟動框架資訊和多播框架資訊，以追蹤在 FUOTA 任務進行時與多播群組和裝置交換的單播和多播上行和下行訊息。

若要監控多播群組，您可以將它們新增至網路分析器組態，並使用多播框架資訊，針對傳送至這些群組的多播下行訊息進行疑難排解。如需針對嘗試加入群組 (其中使用單播通訊) 的裝置進行疑難排解，您也必須在網路分析器組態中包括這些裝置。若要僅監控與群組中裝置的單播通訊，請啟動無線裝置的框架資訊。此方法可確保針對多播群組和加入該群組的裝置進行全方位的監控和診斷。

下列各節描述如何使用網路分析器，針對您的多播群組和 FUOTA 任務進行偵錯和疑難排解。

**Topics**
+ [針對僅包含裝置的 FUOTA 任務進行偵錯](#lorawan-network-analyzer-fuota-devices)
+ [針對具有多播群組的 FUOTA 任務進行偵錯](#lorawan-network-analyzer-fuota-multicast)
+ [針對嘗試加入多播群組的裝置進行偵錯](#lorawan-network-analyzer-fuota-multicast)
+ [針對多播群組工作階段進行偵錯](#lorawan-network-analyzer-fuota-multicastsession)

## 針對僅包含裝置的 FUOTA 任務進行偵錯
<a name="lorawan-network-analyzer-fuota-devices"></a>

您可以使用網路分析器，針對只有 LoRaWAN 裝置新增至任務的 FUOTA 任務進行偵錯。如需將裝置新增至 FUOTA 任務的相關資訊，請參閱 [將裝置和多點傳送群組新增至 FUOTA 任務，並排定 FUOTA 工作階段。](lorawan-fuota-add-devices.md)。若要針對 FUOTA 任務進行偵錯，請執行下列步驟：

1. 啟動無線裝置的框架資訊來建立網路分析器組態，以便您可以在任務進行時監控與裝置交換的 FUOTA 上行和下行訊息。

1. 將 FUOTA 任務中的裝置新增至網路分析器組態，方法為使用其無線裝置識別碼。

1. 啟動追蹤訊息，開始接收網路分析器組態中裝置的追蹤訊息。

在追蹤訊息資訊的 `applicationCommandType` 欄中，您將開始接收與資料傳輸和分段設定相關的單播下行訊息。

**注意**  
如果在追蹤訊息表格中看不到 `applicationCommandType` 欄，您可以調整設定以在表格中顯示此欄。

您也可以在 **WirelessMetadata > ApplicationInfo** 下的 JSON 日誌訊息中看到 `applicationCommandType` 和其他詳細訊息。

## 針對具有多播群組的 FUOTA 任務進行偵錯
<a name="lorawan-network-analyzer-fuota-multicast"></a>

您可以使用網路分析器，針對具有多播群組且 LoRaWAN 裝置新增至群組的 FUOTA 任務進行偵錯。如需將裝置新增至 FUOTA 任務的相關資訊，請參閱 [將裝置和多點傳送群組新增至 FUOTA 任務，並排定 FUOTA 工作階段。](lorawan-fuota-add-devices.md)。若要針對 FUOTA 任務進行偵錯，請執行下列步驟：

1. 啟動無線裝置和多播群組的框架資訊和多播框架資訊設定，以建立網路分析器組態。

1. 將 FUOTA 任務中的多播群組新增至網路分析器組態，方法為使用其多播群組識別碼。透過啟用多播框架資訊，您可以針對在 FUOTA 任務進行時傳送至群組的韌體資料訊息和 FUOTA 狀態查詢訊息進行偵錯。

1. 將多播群組中的裝置新增至網路分析器組態，方法為使用其無線裝置識別碼。透過啟動框架資訊，您可以監控在 FUOTA 任務進行期間直接與裝置交換的上行和下行訊息。

1. 啟動追蹤訊息，開始接收網路分析器組態中裝置和多播群組的追蹤訊息。

然後，您可以檢視追蹤訊息，並對其進行偵錯，方法為使用追蹤訊息表格的 `applicationCommandType` 欄，並使用 JSON 日誌訊息中的詳細資訊，如 [針對僅包含裝置的 FUOTA 任務進行偵錯](#lorawan-network-analyzer-fuota-devices) 中所述。

## 針對嘗試加入多播群組的裝置進行偵錯
<a name="lorawan-network-analyzer-fuota-multicast"></a>

您可以使用網路分析器，針對嘗試加入多播群組的裝置進行偵錯 如需將裝置新增至多播群組的相關資訊，請參閱 [建立多點傳送群組以及將裝置新增至群組](lorawan-create-multicast-groups.md)。若要針對多播群組進行偵錯，請執行下列步驟：

1. 啟動無線裝置的框架資訊來建立網路分析器組態。

1. 將您要監控的裝置新增至網路分析器組態，方法為使用其無線裝置識別碼。

1. 啟動追蹤訊息，開始接收網路分析器組態中裝置的追蹤訊息。

1. 在針對群組中的裝置啟動追蹤訊息之後，開始將裝置與多播群組建立關聯。

## 針對多播群組工作階段進行偵錯
<a name="lorawan-network-analyzer-fuota-multicastsession"></a>

您可以使用網路分析器，針對多播群組工作階段進行偵錯。如需詳細資訊，請參閱[排定將下行訊息傳送至多點傳送群組中的裝置](lorawan-multicast-schedule-downlink.md)。若要針對多播群組工作階段進行偵錯，請執行下列步驟：

1. 啟動多播群組的多播框架資訊來建立網路分析器組態。

1. 將您要監控的多播群組新增至網路分析器組態，方法為使用其多播群組識別碼。

1. 多播工作階段開始之前，請啟動追蹤訊息，開始接收多播群組工作階段的追蹤訊息。

1. 透過檢視追蹤訊息表格中顯示的訊息和 JSON 日誌訊息，啟動多播群組工作階段並監控狀態。

在追蹤訊息表格中，`MulticastAddr` 將會顯示在 `DevAddr` 欄中。在 JSON 日誌訊息中，您可以檢視詳細訊息，例如在 **WirelessMetadata > ApplicationInfo** 下的 `MulticastGroupId`。