

# ネットワークアナライザを使用したワイヤレスリソースフリートのリアルタイムでのモニタリング
<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. 

**ネットワークアナライザの設定を作成し、リソースを追加する**  
トレースメッセージングをアクティブ化する前に、ネットワークアナライザ設定を作成し、設定にリソースを追加します。まず、ログレベルとワイヤレスデバイスのフレーム情報を含む設定を指定します。次に、ワイヤレスゲートウェイとワイヤレスデバイス ID を使用して、モニタリングするワイヤレスリソースを追加します。

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)
+ [WebSockets を使用してネットワークアナライザのトレースメッセージをストリーミングする](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>

以下のいずれかを実行してみてください。
+ 

**フルアクセスワイヤレスポリシー**  
ロールにポリシー **AWSIoTWirelessFullAccess** をアタッチして、AWS IoT Core for LoRaWAN にフルアクセスポリシーを付与します。詳細については、「[`AWSIoTWirelessFullAccess` ポリシーの概要](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTWirelessFullAccess$serviceLevelSummary)」を参照してください。
+ 

**API を取得および更新するためのスコープ付き IAM ポリシー**  
IAM コンソールの [[Create policy]](https://console.aws.amazon.com/iam/home#/policies$new?step=edit) (ポリシーの作成) ページで、**[Visual editor]** (ビジュアルエディタ) タブを開き、以下の IAM ポリシーを作成します。

  1. **[Service]** (サービス) には **[IoTWireless]** を選択します。

  1. **[Access level]** (アクセスレベル) で **[Read]** (読み取り) を展開して **[GetNetworkAnalyzerConfiguration]** を選択し、**[Wrtite]** (書き込み) を展開して **[UpdateNetworkAnalyzerConfiguration]** を選択してください。

  1. **[Next:Tags]** (次へ: タグ) を選択し、**[IoTWirelsesNetworkAnalyzerPolicy]** など、ポリシーの **[Name]** (名前) を入力します。[**Create policy**] (ポリシーの作成) を選択します。

  以下は、ユーザーが作成したポリシー **[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]** (情報) のログは冗長性が高く、エラーログストリームと情報ログストリームの両方を含みます。情報ログは、デバイスまたはゲートウェイの状態の変更を表示するために使用できます。
**注記**  
冗長性が高いログストリームを収集すると、追加コストが発生する可能性があります。料金の詳細については、「[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. 設定を指定します。
   + 

**名前、説明、タグ**  
英字、数字、ハイフン、またはアンダースコアのみを含む、一意の [**Configuration name**] (設定名) を指定します。オプションの **[Description]** (説明) フィールドを使用して設定に関する情報を指定し、**[Tags]** (タグ) フィールドを使用して設定に関するメタデータのキーバリューペアを追加します。リソースの命名と説明の詳細については、[AWS IoT Wireless リソースについて説明する](iotwireless-describe-resources.md) を参照してください。
   + 

**構成設定**  
フレーム情報を無効にするかどうかを選択し、**[Select 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>

トレースメッセージングをアクティブ化する前に、設定にリソースを追加する必要があります。使用できるデフォルトのネットワークアナライザ設定は 1 つだけです。AWS IoT Core for LoRaWAN によって、**NetworkAnalyzerConfig\$1Default** という名前がこの設定に割り当てられます。このフィールドは編集できません。この設定は、コンソールからネットワークアナライザを使用する場合、自動的に AWS アカウント に追加されます。

このデフォルト設定に、モニタリングするリソースを追加できます。リソースは、LoRaWAN デバイスと LoRaWAN ゲートウェイのいずれかまたは両方にすることができます。設定に個々のリソースを追加するには、ワイヤレスゲートウェイとワイヤレスデバイス ID を使用します。

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

設定をするには、まずデフォルト設定にリソースを追加し、トレースメッセージングをアクティブにします。トレースメッセージログを受信したら、次のパラメータをカスタマイズしてデフォルト設定を更新し、ログストリームをフィルタリングすることもできます。
+ 

**フレーム情報**  
この設定は、トレースメッセージのワイヤレスデバイスリソースのフレーム情報です。フレーム情報はデフォルトで有効になっており、ネットワークサーバーとエンドデバイス間の通信のデバッグに使用できます。
+ 

**ログレベル**  
情報ログまたはエラーログを表示したり、ログ記録をオフにしたりできます。
  + 

**情報**  
ログレベルが **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 コンソールの [Network Analyzer] (ネットワークアナライザ) ハブ](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)を開き、ネットワークアナライザの設定 **NetworkAnalyzerConfig\$1Default** を選択します。

1. **[Add resources]** (リソースを追加) を選択します。

1. ワイヤレスゲートウェイとワイヤレスデバイス ID を使用して、モニタリングするリソースを追加します。最大 250 のワイヤレスゲートウェイまたはワイヤレスデバイスを追加できます。リソースを追加するには、次の手順に従います。

   1. **[View gateways]** (ゲートウェイを表示) または **[View devices]** (デバイスを表示) タブを使用して、AWS アカウント に追加したゲートウェイとデバイスのリストを表示します。

   1. モニタリングするデバイスまたはゲートウェイの `WirelessDeviceID` または `WirelessGatewayID` をコピーし、対応するリソースの識別子の値を入力します。

   1. リソースの追加を続行するには、**[Add gateway]** (ゲートウェイを追加) または **[Add device]** (デバイスを追加) を選択し、ワイヤレスゲートウェイまたはデバイスを追加します。追加していたリソースをモニタリングする必要がなくなった場合は、**[Remove resource]** (リソースを削除) を選択します。

1. すべてのリソースを追加したら、**[Add]** (追加) をクリックします。

   追加したゲートウェイとデバイスの数が**[Network Analyzer] (ネットワークアナライザ) ハブページ** に表示されます。トレースメッセージングセッションをアクティブにするまで、ゲートウェイとデバイスをさらに続けて追加できます。セッションをアクティブ化した後、リソースを追加するには、セッションを非アクティブ化する必要があります。

**ネットワークアナライザの設定を編集するには (コンソール)**  
ネットワークアナライザの設定を編集して、トレースメッセージログのフレーム情報を無効にするかどうかとそのログレベルを選択することもできます。

1. [AWS IoT コンソールの [Network Analyzer] (ネットワークアナライザ) ハブ](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer)を開き、ネットワークアナライザの設定 **NetworkAnalyzerConfig\$1Default** を選択します。

1. [**編集**] を選択します。

1. フレーム情報を無効にするかどうかを選択し、**[Select 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 との接続を確立し、ネットワークアナライザを使用できるようになります。その後、トレースメッセージをアクティブにして、リソースのトレースメッセージの受信を開始できます。詳細については、「[WebSockets を使用してネットワークアナライザのトレースメッセージをストリーミングする](network-analyzer-api.md)」を参照してください。

# WebSockets を使用してネットワークアナライザのトレースメッセージをストリーミングする
<a name="network-analyzer-api"></a>

WebSocket プロトコルを使用すると、ネットワークアナライザトレースメッセージをリアルタイムでストリーミングできます。リクエストを送信すると、サービスは JSON ストラクチャで応答します。トレースメッセージングをアクティブ化したら、メッセージログを使用してリソースに関する情報を取得し、エラーのトラブルシューティングを行うことができます。詳細については、「[WebSocket protocol](https://tools.ietf.org/html/rfc6455)」を参照してください。

WebSockets を使用してネットワークアナライザのトレースメッセージをストリーミングする方法を次に示します。

**Topics**
+ [WebSocket ライブラリで署名済みリクエストを生成する](network-analyzer-generate-request.md)
+ [WebSocket メッセージとステータスコード](network-analyer-messages-status.md)

# WebSocket ライブラリで署名済みリクエストを生成する
<a name="network-analyzer-generate-request"></a>

WebSocket ライブラリを使用してサービスにリクエストを送信できるように、署名済みリクエストを生成する方法を次に示します。

## IAM ロールに WebSocket リクエストのポリシーを追加する
<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 署名バージョン 4 のプロセスが使用されます。署名バージョン 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
```

署名バージョン 4 パラメータには、次の値を使用します。
+ **X-Amz-Algorithm** – 署名プロセスに使用しているアルゴリズム。唯一の有効な値は `AWS4-HMAC-SHA256` です。
+ **X-Amz-Credential** – アクセスキー ID と認証情報スコープのコンポーネントを連結して形成され、スラッシュ (/) で区切られる文字列。認証情報スコープには、YYYYMMDD 形式の日付、AWS リージョン、サービス名、および終了文字列 (aws4\$1request) が含まれます。
+ **X-Amz-Date** – 署名が作成された日時。*Amazon Web Services 全般リファレンス*の「[署名バージョン 4 の日付の処理](https://docs.aws.amazon.com/general/latest/gr/sigv4-date-handling.html)」の手順に従って、日付と時刻を生成します。
+ **X-Amz-Expires** – 認証情報が有効期限切れになるまでの時間 (秒単位)。最大値は 300 秒 (5 分) です。
+ **X-Amz-Security-Token** – (オプション) 一時的な認証情報用の署名バージョン 4 のトークン。このパラメータを指定する場合は、正規リクエストに含めます。詳細については、*AWS Identity and Access Management ユーザーガイド*の「[一時的なセキュリティ認証情報のリクエスト](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)」を参照してください。
+ **X-Amz-Signature** – リクエストに対して生成した署名バージョン 4 の署名。
+ **X-Amz-SignedHeaders** – リクエストの署名を作成するときに署名されるヘッダー。唯一の有効な値は `host` です。

## リクエスト URL を構築し、署名バージョン 4 署名を作成する
<a name="connect-iot-network-analyzer-construct-url-sign"></a>

リクエストの URL を作成し、署名バージョン 4 の署名を作成するには、次のステップを実行します。例は擬似コードで示しています。

### タスク 1: 正規リクエストを作成する
<a name="canonical-request"></a>

リクエストからの情報を含む文字列を標準化された形式で作成します。これにより、AWS は、リクエストを受け取ると、[タスク 3: 署名を計算する](#calculate-signature) でお客様が計算したものと同じ署名を計算できるようになります。詳細については、*Amazon Web Services 全般のリファレンス*の「[署名バージョン 4 の正規リクエストを作成する](https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html)」を参照してください。

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. 正規クエリ文字列を作成します。クエリ文字列値は、URI エンコードされ、名前順にソートされている必要があります。
   + パラメータ名を文字コードポイントで昇順にソートします。名前が重複しているパラメータは、値でソートする必要があります。たとえば、大文字 F で始まるパラメータ名は、小文字 b で始まるパラメータ名より前に置きます。
   + [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) が定義する非予約文字である A-Z、a-z、0-9、ハイフン (-)、アンダースコア (\$1)、ピリオド (.)、およびチルド (\$1) を、URI でエンコードしないようにします。
   + 他のすべての文字についても、%XY によるパーセントエンコードが必要です。X および Y には 16 進数文字 (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 全般のリファレンス*の「[署名バージョン 4 の署名文字列を作成する](https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html)」を参照してください。

```
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 全般のリファレンス*の「[AWS 署名バージョン 4 の署名を計算する](https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html)」を参照してください。

コードでは、`GetSignatureKey` 関数を実装して署名キーを取得したものとします。詳細と関数の例については、「*Amazon Web Services 全般リファレンス*」の「[署名バージョン 4 の署名キーを取得する方法の例](https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html)」を参照してください。

関数 `HMAC(key, data)` は、バイナリ形式で結果を返す HMAC-SHA 256 関数を表します。

```
#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 全般リファレンス*の「[HTTP リクエストに署名を追加する](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>

WebSocket ライブラリでリクエスト URL を使用して、サービスへのリクエストを実行し、メッセージを確認できるようになりました。詳細については、「[WebSocket メッセージとステータスコード](network-analyer-messages-status.md)」を参照してください。

# WebSocket メッセージとステータスコード
<a name="network-analyer-messages-status"></a>

署名済みリクエストを作成したら、WebSocket ライブラリ、またはプログラミング言語に適したライブラリでリクエスト URL を使用して、サービスへのリクエストを行うことができます。この署名付きリクエストの生成方法の詳細については、「[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 Standard of Normal closure of connections](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 コンソールの [Network Analyzer] (ネットワークアナライザ) ハブ](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 接続が確立され、トレースメッセージが最新のものからリアルタイムで表示されます。プリファレンスをカスタマイズして、各ページに表示するトレースメッセージの数を指定し、各メッセージの関連するフィールドのみを表示させることができます。例えば、トレースメッセージログをカスタマイズして、**ログレベル**が `ERROR` に設定されているワイヤレスゲートウェイリソースのログのみを表示することができます。そうすると、ゲートウェイでエラーをすばやく特定してデバッグできます。トレースメッセージには、次に示す情報が含まれます。
+ **メッセージ番号**: 最後に受信したメッセージが最初になるように付番された一意の番号。
+ **リソース ID**: リソースのワイヤレスゲートウェイまたはワイヤレスデバイス ID。
+ **タイムスタンプ**: メッセージが受信された時刻。
+ **メッセージ ID**: AWS IoT Core for LoRaWAN が受信した各メッセージに割り当てた識別子。
+ **FPort**: WebSocket 接続を使用してデバイスと通信するための周波数ポート。
+ **DevEui**: ワイヤレスデバイスの拡張一意識別子 (EUI)。
+ **リソース**: モニタリング対象リソースがワイヤレスデバイスかワイヤレスゲートウェイか。
+ **イベント**: ワイヤレスデバイスのログメッセージのイベント。**Join**、**Rejoin**、**Uplink\$1Data**、**Downlink\$1Data**、または **Registration**。
+ **ログレベル**: デバイスの `INFO` または `ERROR` ログストリームに関する情報。

## ネットワークアナライザ JSON ログメッセージ
<a name="connect-iot-network-analyzer-trace-logs"></a>

一度に 1 つのトレースメッセージを選択して、そのメッセージの JSON ペイロードを表示することもできます。トレースメッセージログで選択したメッセージに応じて、2 つの部分 (**CustomerLog** と **LoRaFrame**) が含まれていることを示す情報が JSON ペイロードに表示されます。

**CustomerLog**  
JSON の **CustomerLog** 部分には、メッセージを受信したリソースのタイプと識別子、ログレベル、およびメッセージの内容が表示されます。次の例は、**CustomerLog** ログメッセージの例を示しています。JSON の `message` フィールドを使用して、エラーとその解決方法に関する詳細情報を取得できます。

**LoRaFrame**  
JSON の **LoRaFrame** 部分には、**メッセージ 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コンソールの [Network Analyzer details] (ネットワークアナライザの詳細) ページ](https://console.aws.amazon.com/iot/home#/wireless/networkAnalyzer/details/NetworkAnalyzerConfig_Default)を選択し、**[Edit]** (編集) を選択します。その後、新しい設定で設定を更新し、トレースメッセージングをアクティブにして、更新されたメッセージを表示できます。
+ 

**設定にリソースを追加する**  
また、ネットワークアナライザの設定にリソースを追加し、リアルタイムでモニタリングすることもできます。のワイヤレスゲートウェイとワイヤレスデバイスリソースを、合わせて最大 250 個追加できます。リソースを追加するには、[AWS IoT コンソールの [Network Analyzer details] (ネットワークアナライザの詳細) ページ](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` 列が表示されない場合は、この列を表に表示するように設定を調整できます。

**ワイヤレスメタデータ** > アプリケーション情報の 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` およびその他の詳細なメッセージを確認することができます。