

# CloudWatch Insights を使用して AWS IoT Wireless のログをフィルタリングする
<a name="cwl-insights"></a>

CloudWatch Logs を使用してフィルター式を作成することもできますが、CloudWatch Insights を使用して、アプリケーションに応じてフィルター式をより効果的に作成し、使用することをお勧めします。

コンソールでログエントリを表示するために使用できるさまざまなタイプのリソース、イベントタイプ、ログレベルについて学習するために、最初に CloudWatch **ロググループ**を使用することをお勧めします。その後、このページに記載されたいくつかのフィルター式の例を参照として使用して、AWS IoT Wireless リソースの独自のフィルターを作成できます。

## CloudWatch Logs insights コンソールでの 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 Insights**] (ログインサイト) を選択します。

1. [**Filter**] (フィルター) テキストボックスに **/aws/iotwireless** と入力して、`/aws/iotwireless` Logs Insights を選択します。

1. ロググループの完全なリストを表示するには、[**Select log group(s)**] (ロググループを選択) を選択します。AWS IoT Wireless のロググループを表示するには、`/aws/iotwireless` を選択します。

これで、ロググループをフィルターするためのクエリの入力を開始できます。以下のセクションでは、リソースメトリクスに関するインサイトを得るのに役立つ、いくつかの便利なクエリについて説明します。

## フィルタリングするための便利なクエリを作成して AWS IoT Wireless のインサイトを得る
<a name="insights-resource-filter"></a>

フィルター式を使用して、CloudWatch Insights で追加の有用なログ情報を表示できます。以下に、サンプルのクエリをいくつか示します。

### 特定のリソースタイプのログのみを表示する
<a name="insights-gateway-filter"></a>

LoRaWAN ゲートウェイや Sidewalk デバイスなど、特定のリソースタイプのログのみを表示するのに役立つクエリを作成できます。例えば、Sidewalk デバイスのメッセージのみを表示するようにログをフィルターするには、次のクエリを入力し、[**Run query**] (クエリの実行) を選択します。このクエリを保存するには、[**保存**] を選択します。

```
fields @message
| filter @message like /Sidewalk/
```

クエリの実行後、[**Logs**] (ログ) タブに結果が表示され、アカウント内の Sidewalk デバイスに関連するログのタイムスタンプが表示されます。また、Sidewalk デバイスに関して以前発生したイベントがある場合は、そのイベントの発生時刻を示す棒グラフも表示されます。以下に、[**Logs**] (ログ) タブのいずれかの結果を展開した場合の例を示します。また、Sidewalk デバイスに関連するエラーのトラブルシューティングを行う場合は、ログレベルを `ERROR` に設定してエラー情報のみを表示するフィルターを追加できます。

```
Field	          Value
@ingestionTime      1623894967640
@log	             954314929104:/aws/iotwireless
@logStream	   WirelessDevice-Downlink_Data-715adccfb34170214ec2f6667ddfa13cb5af2c3ddfc52fbeee0e554a2e780bed
@message	     {                    
                    "resource": "WirelessDevice",
                    "wirelessDeviceId": "3b058d05-4e84-4e1a-b026-4932bddf978d",
                    "wirelessDeviceType": "Sidewalk",
                    "devEui": "feffff000000011a",
                    "event": "Downlink_Data",
                    "logLevel": "INFO",
                    "messageId": "7e752a10-28f5-45a5-923f-6fa7133fedda",
                    "message": "Successfully sent downlink message. Amazon SidewalkId = 2000000006, Sequence number = 0"
                    }
@timestamp          1623894967640
devEui	           feffff000000011a
event	        Downlink_Data
logLevel            INFO
message	          Successfully sent downlink message. Amazon SidewalkId = 2000000006, Sequence number = 0
messageId	    7e752a10-28f5-45a5-923f-6fa7133fedda
resource	     WirelessDevice
wirelessDeviceId    3b058d05-4e84-4e1a-b026-4932bddf978d
wirelessDeviceType  Sidewalk
```

### 特定のメッセージまたはイベントを表示する
<a name="insights-gateway-filter"></a>

特定のメッセージを表示し、いつイベントが発生したかを確認するのに役立つクエリを作成できます。例えば、LoRaWAN ワイヤレスデバイスからダウンリンクメッセージがいつ送信されたかを確認するには、次のクエリを入力し、[**Run query**] (クエリの実行) を選択します。このクエリを保存するには、[**保存**] を選択します。

```
filter @message like /Downlink message sent/
```

クエリの実行後、[**Logs**] (ログ) タブに結果が表示され、ダウンリンクメッセージがワイヤレスデバイスに正常に送信された時刻のタイムスタンプが表示されます。また、以前ワイヤレスデバイスに送信されたダウンリンクメッセージがある場合、ダウンリンクメッセージが送信された時刻を示す棒グラフも表示されます。以下に、[**Logs**] (ログ) タブのいずれかの結果を展開した場合の例を示します。ダウンリンクメッセージが送信されなかった場合は、問題をデバッグできるように、メッセージが送信されなかったときの結果のみが表示されるようにクエリを変更できます。

```
Field	          Value
@ingestionTime      1623884043676
@log	             954314929104:/aws/iotwireless
@logStream	   WirelessDevice-Downlink_Data-42d0e6d09ba4d7015f4e9756fcdc616d401cd85fe3ac19854d9fbd866153c872
@message	     {
                    "timestamp": "2021-06-16T22:54:00.770493863Z",
                    "resource": "WirelessDevice",
                    "wirelessDeviceId": "3b058d05-4e84-4e1a-b026-4932bddf978d",
                    "wirelessDeviceType": "LoRaWAN",
                    "devEui": "feffff000000011a",
                    "event": "Downlink_Data",
                    "logLevel": "INFO",
                    "messageId": "7e752a10-28f5-45a5-923f-6fa7133fedda",
                    "message": "Downlink message sent. MessageId: 7e752a10-28f5-45a5-923f-6fa7133fedda"
                    }
@timestamp          1623884040858
devEui	           feffff000000011a
event	        Downlink_Data
logLevel            INFO
message	          Downlink message sent. MessageId: 7e752a10-28f5-45a5-923f-6fa7133fedda
messageId	    7e752a10-28f5-45a5-923f-6fa7133fedda
resource	     WirelessDevice
timestamp	    2021-06-16T22:54:00.770493863Z
wirelessDeviceId    3b058d05-4e84-4e1a-b026-4932bddf978d
wirelessDeviceType  LoRaWAN
```

## 次のステップ
<a name="insights-next-steps"></a>

CloudWatch Insights を使用してログメッセージをフィルターするクエリを作成することで、より役立つ情報を取得する方法を学びました。前述のフィルターをいくつか組み合わせて、モニタリングするリソースに応じて独自のフィルタを設計できます。CloudWatch Logs Insights の詳細については、「[CloudWatch Logs Insights を使用したログデータの分析](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData)」を参照してください。

CloudWatch Insights を使用してクエリを作成した後に保存した場合、必要に応じて、保存されたクエリをロードして実行できます。または、CloudWatch **Logs Insights** コンソールの [**History**] (履歴) ボタンをクリックすると、以前に実行したクエリを表示して必要に応じて再実行したり、追加のクエリを作成してさらに変更したりできます。