

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# モニタリング AWS IoT
<a name="monitoring_overview"></a>

モニタリングは、 および AWS IoT AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。

マルチポイント障害が発生した場合にデバッグしやすくするために、 AWS ソリューションのすべての部分からモニタリングデータを収集することを強くお勧めします。まず、以下の質問に答えて監視計画を作成します。どのように答えるべきかわからない場合でも、引き続き [ログ記録を有効化](configure-logging.md)して、パフォーマンスのベースラインを確立できます。
+ どのような目的でモニタリングしますか?
+ どのリソースをモニタリングしますか?
+ どのくらいの頻度でこれらのリソースをモニタリングしますか?
+ どのモニタリングツールを使用しますか?
+ 誰がモニタリングタスクを実行しますか?
+ 問題が発生したときに誰が通知を受け取りますか?

次のステップでは、[ログ記録を有効に](configure-logging.md)し、さまざまな時間や負荷条件で AWS IoT パフォーマンスを測定することで、環境で通常のパフォーマンスのベースラインを確立します。モニタリング中は AWS IoT、現在のパフォーマンスデータと比較できるように、モニタリングデータの履歴を保持します。これにより、通常のパフォーマンスパターンとパフォーマンスの異常を特定し、問題に対処するための方法を考えることができます。

のベースラインパフォーマンスを確立するには AWS IoT、これらのメトリクスをモニタリングして開始する必要があります。監視対象のメトリクスは、必要時にいつでも増やすことができます。
+  [`PublishIn.Success`](metrics_dimensions.md#message-broker-metrics) 
+  [`PublishOut.Success`](metrics_dimensions.md#message-broker-metrics) 
+  [`Subscribe.Success`](metrics_dimensions.md#message-broker-metrics) 
+  [`Ping.Success`](metrics_dimensions.md#message-broker-metrics) 
+  [`Connect.Success`](metrics_dimensions.md#message-broker-metrics) 
+  [`GetThingShadow.Accepted`](metrics_dimensions.md#shadow-metrics) 
+  [`UpdateThingShadow.Accepted`](metrics_dimensions.md#shadow-metrics) 
+  [`DeleteThingShadow.Accepted`](metrics_dimensions.md#shadow-metrics) 
+  [`RulesExecuted`](metrics_dimensions.md#iot-metrics) 

このセクションのトピックは、ログ記録と AWS IoTの監視を開始するために役立ちます。

**Topics**
+ [AWS IoT ログ記録の設定](configure-logging.md)
+ [Amazon CloudWatch を使用して AWS IoT アラームとメトリクスをモニタリングする](monitoring-cloudwatch.md)
+ [CloudWatch Logs AWS IoT を使用したモニタリング](cloud-watch-logs.md)
+ [Amazon CloudWatch にデバイス側のログをアップロード](upload-device-logs-to-cloudwatch.md)
+ [を使用した AWS IoT API コールのログ記録 AWS CloudTrail](iot-using-cloudtrail.md)

# AWS IoT ログ記録の設定
<a name="configure-logging"></a>

 AWS IoT アクティビティをモニタリングおよびログ記録する前に、 AWS IoT コンソール、CLI、または API を使用してログ記録を有効にする必要があります。のログ記録は、アカウントレベル、イベントレベル、またはリソース固有の AWS IoT 3 つのレベルで設定できます。イベントレベルとリソース固有のログ記録は、V2 ログ記録でのみ使用できます。V1 ログ記録を使用するお客様は、これらの機能にアクセスするには V2 への移行を実行する必要があります。[詳細については](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#migration-v1-v2)、「」を参照してください。

 AWS IoT ログ記録の設定方法を検討する場合、特に指定がない限り、アカウントレベルのログ記録設定によって AWS IoT アクティビティのログ記録方法が決まります。最初は、INFO または DEBUG のデフォルトのログ[レベルで詳細なログ](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#log-level)を取得できます。初期ログを確認したら、デフォルトのログレベルをアカウントまたはイベントレベルで WARN や ERROR などのより詳細なレベルに変更し、より注意が必要なリソースに対してより詳細なリソース固有のログレベルを設定できます。ログレベルはいつでも変更できます。

このトピックでは、クラウド側のログインについて説明します AWS IoT。デバイス側のログ記録とモニタリングについては、「[CloudWatch にデバイス側のログをアップロード](https://docs.aws.amazon.com/iot/latest/developerguide/upload-device-logs-to-cloudwatch.html)」を参照してください。

ログ記録とモニタリングの詳細については AWS IoT Greengrass、「 [でのログ記録とモニタリング AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/logging-and-monitoring.html)」を参照してください。

## V2 ログインの設定 AWS IoT
<a name="configuring-v2-logging"></a>

### ログ記録のバージョンの確認
<a name="determing-your-logging-version"></a>

V[GetV2LoggingOptions API](https://docs.aws.amazon.com/iot/latest/apireference/API_GetV2LoggingOptions.html) は NotConfiguredException を返します。 V2 このエラーは、V1 ログ記録が使用中であるか、ログ記録が設定されていない場合に発生します。

### V2 ログ記録機能について
<a name="understanding-v2-logging-features"></a>

V2 ログ記録には、イベントレベルのログ記録とリソース固有のログ記録の 2 つの主要な機能があります。イベントレベルのログ記録により、カスタマイズ可能なログレベルと CloudWatch ロググループの送信先を使用して、ターゲットを絞ったログ記録設定が可能になります。リソース固有のログ記録を使用すると、モノのグループ、ソース IP、クライアント ID、またはプリンシパル ID でログをフィルタリングできます。これらの機能により、IoT オペレーションをきめ細かく制御し、包括的に可視化できるため、不要なログ記録アクティビティがなくなるため、ログの検索可能性が向上し、コストを削減できます。

### V1 から V2 への移行
<a name="migration-v1-v2"></a>

 AWS [CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-options.html) または SDK を使用して、SetV2LoggingOptions API を使用して V2 ログ記録に移行できます。 SetV2LoggingOptions 移行後、 はすべてのログを CloudWatch ロググループAWSIotLogsV2 AWS IoT 」に自動的にルーティングします。重要: ダウンストリームアプリケーションまたはリソースがAWSIotLogs」の情報を使用する場合は、対応するロググループパスを使用するように更新します。

## ログ記録ロールとポリシーの構成
<a name="configure-logging-role-and-policy"></a>

 ログインを有効にする前に AWS IoT、ユーザーに代わって CloudWatch ロググループに AWS IoT ログアクティビティを書き込む AWS IoT アクセス許可を付与する IAM ロールとポリシーを作成する必要があります。[AWS IoT コンソールの Logs セクション](https://console.aws.amazon.com/iot/home#/settings/logging)で必要なポリシーを使用して IAM ロールを生成することもできます。

**注記**  
 AWS IoT ログ記録を有効にする前に、CloudWatch Logs アクセス許可を理解していることを確認してください。CloudWatch Logs に対するアクセス許可のあるユーザーはデバイスからのデバッグ情報を表示できます。詳細については、「[Amazon CloudWatch Logs に対する認証とアクセスコントロール](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)」を参照してください。  
負荷テスト AWS IoT Core により でトラフィックパターンが高くなることが予想される場合は、スロットリングを防ぐために IoT ログ記録を無効にすることを検討してください。大量のトラフィックが検出された場合、当社のサービスはアカウントでのログ記録を無効にする場合があります。

 AWS IoT Core リソースのログ記録ロールとポリシーを作成する方法を以下に示します。

### ログ記録ロールの作成
<a name="create-logging-role"></a>

ログ記録ロールを作成するには、[IAM コンソールの [Roles] (ロール) ハブ](https://console.aws.amazon.com/iam/home#/roles)を開き、[**Create role**] (ロールの作成) を選択します。

1. **[信頼されたエンティティを選択]** で、**[AWS サービス]** を選択します。次に、**[Use case]** (ユースケース) で **[IoT]** を選択します。**[IoT]** が表示されない場合は、**[他の AWS サービスのユースケース]** ドロップダウンメニューで **[IoT]** と入力して検索してください。**[次へ]** を選択してください。

1. **[Add permissions]** (権限の追加) ページでは、サービスロールに自動的に付加されるポリシーが表示されます。[**次へ**] を選択します。

1. **[Name, review, and create]** (名前、確認、作成) ページで、ロールの **[Role name]** (ロール名) と **[Role description]** (ロールの説明) を入力し、次に **[Create role]** (ロールの作成) を選択します。

### ログ記録ロールのポリシー
<a name="logging-role-policy"></a>

以下のポリシードキュメントは、お客様に代わって AWS IoT から CloudWatch にログエントリを送信するためのロールポリシーと信頼ポリシーを示しています。カスタム CloudWatch ロググループでイベントレベルのログ記録を設定する場合は、ロールポリシーを更新してカスタムリソース ARN を含める必要があります。

ログエントリ AWS IoT Core for LoRaWAN の送信も許可されている場合は、両方のアクティビティをログに記録するポリシードキュメントが作成されます。

**注記**  
これらのドキュメントは、ログ記録ロールを作成したときに作成されたものです。ドキュメントには変数 * `${partition}`、**`${region}`*、 * `${accountId}` *があり、 を値に置き換える必要があります。  
partition をリージョンのパーティションに置き換えます。
region を、使用する AWS リージョンに置き換えます。デバイスで CLI AWS の設定に使用したリージョンと同じ AWS リージョンを使用していることを確認してください。
account-id を自分の AWS アカウント ID に置き換えます。

ロールポリシー:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutMetricFilter",
                "logs:PutRetentionPolicy",
                "iot:GetLoggingOptions",
                "iot:SetLoggingOptions",
                "iot:SetV2LoggingOptions",
                "iot:GetV2LoggingOptions",
                "iot:SetV2LoggingLevel",
                "iot:ListV2LoggingLevels",
                "iot:DeleteV2LoggingLevel"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:AWSIotLogsV2:*"
            ]
        }
    ]
}
```

 AWS IoT Core アクティビティのみをログに記録する信頼ポリシー:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "iot.amazonaws.com"
        },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

AWS IoT IAM ロールのアクセス許可が不十分なため、ログ記録が CloudWatch Logs へのログ記録の発行に失敗する可能性があります。これが発生した場合は、[CloudWatch ログ記録メトリクス](https://docs.aws.amazon.com/iot/latest/developerguide/metrics_dimensions.html#logging-metrics)をチェックして、障害を調査およびトラブルシューティングします。

## でログ記録を設定する AWS IoT (コンソール)
<a name="configure-logging-console"></a>

このセクションでは、 AWS IoT コンソールを使用して AWS IoT ログ記録を設定する方法について説明します。アカウントレベル、イベントレベル、リソース固有のログ記録を設定できます。

**AWS IoT ログ記録を設定するには:**

1.  AWS IoT コンソールにサインインします。詳細については、「[AWS IoT コンソールを開く](setting-up.md#iot-console-signin)」を参照してください。

1. 左側のナビゲーションペインで、**ログ** (以前の設定のセクション) を選択します。

1. アカウントレベルのログ記録を設定する: イベントレベルまたはリソース固有の設定によって上書きされない限り、アカウントレベルのログ記録はすべての AWS IoT フリート (デバイスまたはエンドポイント) に適用されます。

   1. アカウントレベルのログ記録で、**アカウントレベルのログ記録の管理**を選択して更新を行います。

   1. CloudWatch へのログの送信を開始するには、「ログ記録を有効にする」チェックボックスを選択します。「ログ記録を有効にする」がチェックされていない場合、イベントレベルまたはリソースレベルのログ記録設定に関係なく、 AWS IoT は CloudWatch ロググループにログを送信しません。

   1. **IAM ログロール**で、ドロップダウンリストから既存のロールを選択します。**ロールの詳細を表示**して、ロールのアクセス許可を検査できます。または、**新しいロールの作成**を選択して新しい IAM ロールを設定します。ログ記録ロールは、 がユーザーに代わって CloudWatch AWS IoT にログエントリを送信できるようにするポリシーを提供します。カスタム CloudWatch ロググループでイベントレベルのログ記録を設定する場合は、ロールポリシーを更新して、このロググループの ARN を含める必要があります。

   1. CloudWatch **Logs に表示するログエントリの詳細レベルに対応するデフォルトのログレベル**を選択します。 [https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#log-level](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#log-level)注: ログレベル「DEBUG」は最も詳細ですが、CloudWatch のコストが増加します。CloudWatch ロググループの送信先をアカウントレベルで設定することはできません。ただし、次のセクションで説明するように、個々のイベントタイプのカスタムロググループを指定できます。

   1. **ログ記録の更新**を選択して変更を保存します。

1. イベントレベルのログ記録を使用すると、関連するイベントのログを選択的にキャプチャし、専用の CloudWatch ロググループに転送できます。これにより、ログを有効にし、イベントの重要度に基づいてログレベルを設定することで、検出可能性を高め、さまざまな対象者と共有し、CloudWatch コストを削減するために、ユースケースごとにログを柔軟に整理できます。

   **イベントレベルのログ**記録を設定する: イベントレベルのログ記録は、クライアント認証の試行などの特定の AWS IoT イベントをキャプチャします。これらの設定は、アカウントレベルのログ記録を上書きします。

   1. **イベントレベルのログ記録**セクションで、**イベントレベルのログ記録の管理**を選択して更新を行います。

   1. デフォルトでは、イベントタイプはアカウントレベルのログ記録設定を継承します。注: リソース固有のログ記録を設定すると、アカウントとイベントレベルの設定が上書きされます。

   1. 個々のイベントの設定を変更するには、対応するイベント行の値をクリックします。ログレベルと CloudWatch ロググループの送信先の両方を調整できます。カスタム CloudWatch ロググループの送信先を指定するときは、IAM ロールポリシーに新しいロググループのアクセス許可が含まれていることを確認する必要があります。ロールポリシーを更新しないと、 AWS IoT はカスタムロググループにログを書き込むことができません。選択したら、チェックマークをクリックして選択を確定します。**「Is Modified**」列に「Yes」と表示され、保留中の変更を示します。

   1. **ログ記録の更新**をクリックして変更を適用するか、**キャンセル**を選択して破棄します。

1. リソース固有のオーバーライドを設定する: リソース固有のオーバーライドは、選択したリソースにログ記録設定を適用します。リソースには、モノのグループ、ソース IP、クライアント ID、またはプリンシパル ID を指定できます。リソース固有のログ記録設定は、アカウントレベルとイベントレベルの両方の設定を上書きします。有効にすると、指定されたリソースに対して設定されたログ記録レベルですべてのイベントタイプのログが生成されます。たとえば、他のすべてのモノの情報レベルのログ記録を維持しながら、特定のモノのデバッグレベルのログ記録を設定できます。

   1. **「リソース固有のオーバーライドの追加**」セクションの「リソース固有のオーバーライドの追加」を選択します。

   1. ログターゲットを選択します: モノのグループ、ソース IP、クライアント ID、またはプリンシパル ID。

   1. 選択したターゲットタイプに対応するログターゲット値を入力します。

   1. リソース固有のログレベルセクションのドロップダウンメニューから目的のログレベルを選択します。

   1. **Submit** をクリックしてオーバーライドを追加するか、**Cancel **をクリックして変更を破棄します。

   1. 既存のリソース固有のオーバーライドを変更するには、リソースの横にあるチェックボックスを選択し、「削除」をクリックしてオーバーライドを削除するか、「編集」をクリックして変更します。

ログ記録を有効にしたら、[CloudWatch コンソールでの AWS IoT ログの表示](cloud-watch-logs.md#viewing-logs) にアクセスして、ログエントリの表示方法の詳細を確認します。

## アカウントとイベントレベルのログインを設定する AWS IoT (CLI)
<a name="global-logging-cli"></a>

このセクションでは、 CLI AWS IoT を使用して のグローバルログ記録を設定する方法について説明します。

オプションで、イベントレベルのログ記録を設定できます。イベントレベルのログ記録は、認証、認可、証明書作成イベントなど、イベントレベルでのログ記録情報をキャプチャします。ログレベルと CloudWatch ロググループの送信先の両方をイベントレベルでカスタマイズできます。イベントレベルのログ記録は、アカウントレベルのログ記録よりもターゲットを絞ったレベルで動作するため、アカウントレベルのログ記録設定を上書きします。この階層的アプローチにより、運用上の重要性とコストの考慮事項に基づいて、さまざまなタイプのイベントに対してさまざまなログ記録戦略を維持できます。

**注記**  
使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「[ログ記録ロールの作成](#create-logging-role)」を参照してください。任意のイベントタイプにカスタム CloudWatch ロググループを指定する場合は、ログ記録ロールにターゲットロググループに必要なアクセス許可があることを確認してください。  
 API を呼び出すために使用されるプリンシパルには、ログ記録ロール用の[ロールのアクセス許可の適用](pass-role.md)が必要です。

ここに示す CLI コマンドに対応する API のメソッドを使用して、 AWS API でこの手順を実行することもできます。

**CLI を使用して のデフォルトログ記録を設定するには AWS IoT**

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-options.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-options.html) コマンドを使用して､アカウントのログ記録オプションを設定します。

   ```
   aws iot set-v2-logging-options \
       --event-configurations event-configuration-list \
       --role-arn logging-role-arn \
       --default-log-level log-level
   ```

   各パラメータの意味は次のとおりです。  
**--role-arn**  
CloudWatch Logs のログに書き込むアクセス AWS IoT 許可を付与するロール ARN。初期設定には Role-arn 設定が必要です。  
**--default-log-level**  
使用する[ログレベル](#log-level)。有効な値は、`ERROR`、、`WARN`、`INFO``DEBUG`、または です`DISABLED`。初期設定には、Default-log-level設定が必要です。  
**--no-disable-all-logs**  
すべての AWS IoT ログ記録を有効にするオプションのパラメータ。このパラメータは、現在無効になっているログ記録を有効にする場合に使用します。  
 **--disable-all-logs**   
すべての AWS IoT ログ記録を無効にするオプションのパラメータ。このパラメータは、現在有効になっているログ記録を無効にする場合に使用します。  
**--event-configurations**  
このパラメータはオプションであり、個々のイベントタイプのログ記録設定をカスタマイズできます。  
   + eventType: アカウントレベルの設定を上書きするイベントのタイプ
   + logLevel: DEBUG、INFO、ERROR、WARN、または DISABLED でアカウントレベルの設定を上書きする
   + logDestination: ログ配信用のカスタム CloudWatch ロググループを指定する

   ログ記録レベルとログ送信先は、イベントタイプごとに個別に設定できます。指定しない場合、イベントはアカウントレベルの設定を継承します。

   ```
   aws iot set-v2-logging-options \
       --event-configurations "[{\"eventType\":\"Publish-In\",\"logLevel\":\"INFO\",\"logDestination\":\"examplePublishInLogGroup\"}]"
   ```

1. 現在のログ記録オプションを取得するには、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/get-v2-logging-options.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/get-v2-logging-options.html) コマンドを使用します。

   ```
   aws iot get-v2-logging-options \
       --verbose
   ```

   各パラメータの意味は次のとおりです。  
**--verbose**  
すべての eventTypes とその設定を取得できるオプションのパラメータ。

ログ記録を有効にしたら、[CloudWatch コンソールでの AWS IoT ログの表示](cloud-watch-logs.md#viewing-logs) にアクセスして、ログエントリの表示方法の詳細を確認します。

**注記**  
AWS IoT は、 アカウントでグローバルログを設定および取得するための古いコマンド (**set-logging-options** および **get-logging-options**) を引き続きサポートします。これらのコマンドを使用すると、作成されるログには JSON ペイロードではなくプレーンテキストが含まれ、一般的にログ記録のレイテンシーが高くなることに注意してください。これらの古いコマンドの実装は今後強化されません。[「v2」バージョン](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#migration-v1-v2)を使用してログ記録オプションを設定し、可能であれば古いバージョンを使用するレガシーアプリケーションを変更することをお勧めします。

## AWS IoT (CLI) でリソース固有のオーバーライドを設定する
<a name="fine-logging-cli"></a>

このセクションでは、 CLI AWS IoT を使用して のリソース固有のオーバーライドを設定する方法について説明します。リソース固有のオーバーライドを使用すると、モノのグループ、クライアント ID、ソース IP、またはプリンシパル ID で識別される特定のリソースのログ記録レベルを指定できます。リソース固有のログ記録を有効にすると、アカウントレベルとイベントレベルの両方の設定が上書きされます。すべてのイベントタイプは、イベントレベルの設定でそれらのイベントが無効になっている場合でも、設定されたログ記録レベルで指定されたリソースのログを生成します。

モノグループには別のモノグループを含めて、階層的な関係を作成することができます。この手順では、単一のモノグループのログ記録を設定する方法について説明します。階層内の親モノグループにこの手順を適用することにより、階層内のすべてのモノグループに対してログ記録を設定することもできます。この手順を子モノグループに適用して、親のログ記録設定をオーバーライドすることもできます。

モノはモノグループのメンバーにすることができます。メンバーになることで、そのモノのグループに適用される設定、ポリシー、および設定をモノが継承できるようになります。モノのグループは、各モノを個別に処理するのではなく、複数のモノをまとめて管理および適用するために使用されます。クライアント ID がモノの名前と一致すると、 AWS IoT Core はクライアントセッションを対応するモノのリソースに自動的に関連付けます。これによりクライアントセッションは、モノが属するモノのグループに適用される構成や設定 (ログ記録レベルなど) を継承できるようになります。クライアント ID がモノの名前と一致しない場合は、排他的なモノのアタッチメントを有効にして関連付けを確立することができます。詳細については、「[AWS IoT モノを MQTT クライアント接続に関連付ける](exclusive-thing.md)」を参照してください。

モノグループに加えて、デバイスのクライアント ID、ソース IP、プリンシパル ID などのターゲットをログに記録することもできます。

**注記**  
使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「[ログ記録ロールの作成](#create-logging-role)」を参照してください。  
API を呼び出すために使用されるプリンシパルには、ログ記録ロール用の[ロールのアクセス許可の適用](pass-role.md)が必要です。

ここに示す CLI コマンドに対応する API のメソッドを使用して、 AWS API でこの手順を実行することもできます。

**CLI を使用して のリソース固有のオーバーライドを設定するには AWS IoT**

1. 次のコマンドを使用してリソース固有のログ記録を設定する前に、アカウントレベルのログ記録を有効にします。aws iot set-v2-logging-options コマンド

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-level.html) コマンドを使用して、リソース固有のオーバーライドを設定します。モノのグループ設定については、次の例を参照してください。

   ```
   aws iot set-v2-logging-level \
                 --log-target targetType=THING_GROUP,targetName=thing_group_name \
                 --log-level log_level
   ```  
**--log-target**  
ログ記録を設定するリソースの名前とタイプ。`targetType`の値は次のいずれかである必要があります : `THING_GROUP` \$1 `CLIENT_ID` \$1 `SOURCE_IP` \$1 `PRINCIPAL_ID`。log-target パラメータ値には、前のコマンド例で示したテキストや、次の例のような JSON 文字列を指定できます。  

   ```
   aws iot set-v2-logging-level \
                 --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \
                 --log-level log_level
   ```  
**--log-level**  
指定されたリソースのログを生成する際に使用されるログ記録レベル。有効な値は、**DEBUG**、**INFO**、**ERROR**、**WARN**、**DISABLED** です。

1. 現在設定されているログ記録レベルを一覧表示するには、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-v2-logging-levels.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-v2-logging-levels.html) コマンドを使用します。

   ```
   aws iot list-v2-logging-levels
   ```

1. 次の例のように、リソース固有のログ記録レベルを削除するには、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/delete-v2-logging-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/delete-v2-logging-level.html) コマンドを使用します。

   ```
   aws iot delete-v2-logging-level \
                 --target-type "THING_GROUP" \
                 --target-name "thing_group_name"
   ```

   ```
   aws iot delete-v2-logging-level \
                 --target-type=CLIENT_ID 
                 --target-name=ClientId1
   ```  
**--target-type**  
`target-type`の値は次のいずれかである必要があります : `THING_GROUP` \$1 `CLIENT_ID` \$1 `SOURCE_IP` \$1 `PRINCIPAL_ID`。  
**--target-name**  
ログ記録レベルを削除するモノグループの名前。

## ログレベル
<a name="log-level"></a>

以下のログレベルは、ログにどのイベントを記録するかを決定します。デフォルトおよびリソース固有のログレベルに適用されます。

ERROR  
オペレーションの失敗につながるすべてのエラー。  
例: 証明書の有効期限が切れたため、デバイスの認証に失敗しました。  
ログには ERROR 情報のみが含まれます。

WARN  
オペレーションの失敗につながるわけではないが、システムの不整合を引き起こす可能性のあるすべての要因。  
例: メッセージレート制限に近づいています。  
ログには ERROR および WARN 情報が含まれます。

INFO  
モノのフローに関する概要。  
例: クライアントが MQTT トピックに正常にサブスクライブしました。  
ログには INFO､ERROR および WARN 情報が含まれます。

DEBUG  
問題のデバッグに役立つ場合のある情報。  
例: IoT Rules Engine がルールトピック「rule/test」に発行されたメッセージを検出し、正常に実行を開始しました。ルールは RepublishAction で設定されます。  
ログには DEBUG、INFO、ERROR、WARN 情報が含まれます。

DISABLED  
すべてのロギングが無効です。

# Amazon CloudWatch を使用して AWS IoT アラームとメトリクスをモニタリングする
<a name="monitoring-cloudwatch"></a>

CloudWatch AWS IoT を使用してCloudWatch は から raw データを収集し、ほぼリアルタイムの読み取り可能なメトリクス AWS IoT に加工します。これらの統計は 2 週間記録されるため、履歴情報にアクセスしてウェブアプリケーションまたはサービスの動作をより的確に把握することができます。デフォルトでは、 AWS IoT メトリクスデータは 1 分間隔で CloudWatch に自動的に送信されます。詳細については、*Amazon CloudWatch ユーザーガイド*の [Amazon CloudWatch、Amazon CloudWatch Events、Amazon CloudWatch Logs とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)をご覧ください。

## AWS IoT メトリクスの使用
<a name="how_to_use_metrics"></a>

によってレポートされるメトリクスは、さまざまな方法で分析できる情報 AWS IoT を提供します。以下のユースケースは、10 個のモノが 1 日に 1 回インターネットに接続するというシナリオに基づいています。毎日:
+ 10 AWS IoT 個のモノがほぼ同時に に接続します。
+ 各モノはトピックフィルタにサブスクライブし、接続を切断するまで 1 時間待機します。この期間中、モノは相互に情報をやり取りし、現在の状態について詳細を取得します。
+ 各モノは、`UpdateThingShadow` を使用して、その新たに取得したデータに基づいて、何らかのパーセプションをパブリッシュします。
+ 各モノは から切断されます AWS IoT。

これらのトピックでは、作業を開始しやすくするために、いくつかの質問について解説します。
+  [モノが毎日正常に接続していない場合に通知されるようにするには?](creating_alarms.md#how_to_detect_connection_failures)
+  [モノが毎日正常にデータをパブリッシュしていない場合に通知されるようにするには?](creating_alarms.md#how_to_detect_publish_failures)
+  [Thing Shadow の更新が毎日拒否されている場合に通知されるようにするには?](creating_alarms.md#detect_rejected_updates)
+  [ジョブ用の CloudWatch アラームを作成するにはどうすればよいですか。](creating_alarms.md#cw-jobs-alarms)

**Topics**
+ [AWS IoT メトリクスの使用](#how_to_use_metrics)
+ [モニタリングする CloudWatch アラームの作成 AWS IoT](creating_alarms.md)
+ [AWS IoT メトリクスとディメンション](metrics_dimensions.md)

# モニタリングする CloudWatch アラームの作成 AWS IoT
<a name="creating_alarms"></a>

アラームの状態が変わったら、Amazon SNS メッセージを送信する Amazon CloudWatch のアラームを作成することができます。1 つのアラームで、指定した期間中、1 つのメトリクスを監視します。複数の期間にわたってメトリクスの値が一定のしきい値を超えると、1 つ以上のアクションが実行されます。アクションは、Amazon SNS のトピックまたは Auto Scaling のポリシーに送信される通知とすることができます。アラームは、持続している状態変化に対してのみアクションをトリガーします。CloudWatch のアラームは、メトリクスが特定の状態になっただけではアクションをトリガーしません。アクションを呼び出すには、状態が変化して、指定した期間継続している必要があります。

**Topics**
+ [モノが毎日正常に接続していない場合に通知されるようにするには?](#how_to_detect_connection_failures)
+ [モノが毎日正常にデータをパブリッシュしていない場合に通知されるようにするには?](#how_to_detect_publish_failures)
+ [Thing Shadow の更新が毎日拒否されている場合に通知されるようにするには?](#detect_rejected_updates)
+ [ジョブ用の CloudWatch アラームを作成するにはどうすればよいですか?](#cw-jobs-alarms)

 CloudWatch アラームがモニタリングできるすべてのメトリクスは、 [AWS IoT メトリクスとディメンション](metrics_dimensions.md) で確認できます。

## モノが毎日正常に接続していない場合に通知されるようにするには?
<a name="how_to_detect_connection_failures"></a>

1. `things-not-connecting-successfully` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name ConnectSuccessAlarm \
       --alarm-description "Alarm when my Things don't connect successfully" \
       --namespace AWS/IoT \
       --metric-name Connect.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. アラームのテストを行います。

   ```
   aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## モノが毎日正常にデータをパブリッシュしていない場合に通知されるようにするには?
<a name="how_to_detect_publish_failures"></a>

1. `things-not-publishing-data` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name PublishInSuccessAlarm\
       --alarm-description "Alarm when my Things don't publish their data \
       --namespace AWS/IoT \
       --metric-name PublishIn.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. アラームのテストを行います。

   ```
   aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## Thing Shadow の更新が毎日拒否されている場合に通知されるようにするには?
<a name="detect_rejected_updates"></a>

1. `things-shadow-updates-rejected` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name UpdateThingShadowSuccessAlarm \
       --alarm-description "Alarm when my Things Shadow updates are getting rejected" \
       --namespace AWS/IoT \
       --metric-name UpdateThingShadow.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --unit Count \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. アラームのテストを行います。

   ```
   aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## ジョブ用の CloudWatch アラームを作成するにはどうすればよいですか?
<a name="cw-jobs-alarms"></a>

ジョブサービスは、ジョブをモニタリングするための CloudWatch メトリクスを提供します。CloudWatch アラームを作成して、任意の [ジョブのメトリクス](metrics_dimensions.md#jobs-metrics) をモニタリングできます。

次のコマンドは、Job *SampleOTAJob* の失敗したジョブ実行の合計数を監視する CloudWatch アラームを作成し、20 を超えるジョブ実行が失敗した場合に通知します。アラームは、レポートされた値を 300 秒ごとにチェックして、ジョブメトリクス `FailedJobExecutionTotalCount` をモニタリングします。報告された単一の値が 20 より大きい場合にアクティブになります。つまり、ジョブの開始以降、ジョブの実行が 20 回以上失敗したことを示します。アラームがオフになると、提供された Amazon SNS トピックに通知が送信されます。

```
aws cloudwatch put-metric-alarm \
    --alarm-name TotalFailedJobExecution-SampleOTAJob \
    --alarm-description "Alarm when total number of failed job execution exceeds the threshold for SampleOTAJob" \
    --namespace AWS/IoT \
    --metric-name FailedJobExecutionTotalCount \
    --dimensions Name=JobId,Value=SampleOTAJob \
    --statistic Sum \
    --threshold 20 \
    --comparison-operator GreaterThanThreshold \
    --period 300 \
    --unit Count \
    --evaluation-periods 1 \
    --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions
```

次のコマンドは、CloudWatch アラームを作成して、特定の期間に Job *SampleOTAJob* の失敗したジョブの実行数を監視します。その後、その期間中に 5 つ以上のジョブの実行が失敗すると通知します。アラームは、レポートされた値を 3600 秒ごとにチェックして、ジョブメトリクス `FailedJobExecutionCount` をモニタリングします。レポートされた単一の値が 5 より大きい場合にアクティブになります。つまり、過去 1 時間で 5 回以上ジョブ実行に失敗したということです。アラームがオフになると、提供された Amazon SNS トピックに通知が送信されます。

```
aws cloudwatch put-metric-alarm \
    --alarm-name FailedJobExecution-SampleOTAJob \
    --alarm-description "Alarm when number of failed job execution per hour exceeds the threshold for SampleOTAJob" \
    --namespace AWS/IoT \
    --metric-name FailedJobExecutionCount \
    --dimensions Name=JobId,Value=SampleOTAJob \
    --statistic Sum \
    --threshold 5 \
    --comparison-operator GreaterThanThreshold \
    --period 3600 \
    --unit Count \
    --evaluation-periods 1 \
    --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions-per-hour
```

# AWS IoT メトリクスとディメンション
<a name="metrics_dimensions"></a>

を操作すると AWS IoT、サービスはメトリクスとディメンションを 1 分ごとに CloudWatch に送信します。CloudWatch コンソールまたは を使用して AWS IoT、これらのメトリクス AWS CLI を表示できます。

CloudWatch コンソールを使用してメトリクスを表示するには、[[CloudWatch コンソール]](https://console.aws.amazon.com/cloudwatch) を開きます。ナビゲーションペインで、**[Metrics]** (メトリクス) を選択し、次に、**[All metrics]** (すべてのメトリクス) を選択します。**参照**タブで、 を検索 AWS IoT してメトリクスのリストを表示します。メトリクスはまずサービスの名前空間ごとにグループ化され、次に各名前空間内のさまざまなディメンションの組み合わせごとにグループ化されます。

を使用してメトリクスを表示するには AWS CLI、次のコマンドを実行します。

```
1. aws cloudwatch list-metrics --namespace "AWS/IoT"
```

**Topics**
+ [AWS IoT メトリクス](#iot-metrics)
+ [AWS IoT Core 認証情報プロバイダーメトリクス](#credential-provider-metrics)
+ [認証メトリクス](#authentication-metrics)
+ [サーバー証明書の OCSP ステープリングメトリクス](#server-ocsp-metrics)
+ [ルールのメトリクス](#rulemetrics)
+ [ルールアクションのメトリクス](#rule-action-metrics)
+ [HTTP アクション固有のメトリクス](#http-action-metrics)
+ [メッセージブローカーのメトリクス](#message-broker-metrics)
+ [Device Shadow のメトリクス](#shadow-metrics)
+ [メトリクスのログ記録](#logging-metrics)
+ [ジョブのメトリクス](#jobs-metrics)
+ [Device Defender の監査メトリクス](#device-defender-audit-metrics)
+ [Device Defender の検出メトリクス](#device-defender-detect-metrics)
+ [デバイスプロビジョニングのメトリクス](#provisioning-metrics)
+ [LoRaWAN メトリクス](#lorawan-metrics)
+ [フリートのインデックス作成メトリクス](#fleet-indexing-metrics)
+ [メトリクスのディメンション](#aws-iot-metricdimensions)

## AWS IoT メトリクス
<a name="iot-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `AddThingToDynamicThingGroupsFailed`   |  モノの動的グループへのモノの追加に関連する失敗イベントの数。`DynamicThingGroupName` ディメンションには、モノの追加に失敗した動的グループの名前が含まれています。  | 
|   `NumLogBatchesFailedToPublishThrottled`   |  スロットリングエラーのために発行に失敗したログイベントの単数のバッチ。  | 
|   `NumLogEventsFailedToPublishThrottled`   |  バッチ内でスロットリングエラーのために発行に失敗したログイベントの数。  | 

## AWS IoT Core 認証情報プロバイダーメトリクス
<a name="credential-provider-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `CredentialExchangeSuccess`   |   AWS IoT Core 認証情報プロバイダーへの `AssumeRoleWithCertificate` リクエストが成功した数。  | 

## 認証メトリクス
<a name="authentication-metrics"></a>

**注記**  
認証メトリクスは、CloudWatch コンソールの **[プロトコルメトリクス]** に表示されます。


| メトリクス | 説明 | 
| --- | --- | 
|   `Connection.AuthNError`   | 認証の失敗により が AWS IoT Core 拒否する接続試行の数。このメトリクスは、 AWS アカウントのエンドポイントに一致するサーバー名表示 (SNI) 文字列を送信する接続のみを考慮します。このメトリクスには、インターネットスキャンツールやプローブアクティビティなどの外部ソースからの接続試行が含まれます。Protocol ディメンションには、接続の試行の送信に使用されたプロトコルが含まれます。 | 

## サーバー証明書の OCSP ステープリングメトリクス
<a name="server-ocsp-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
| RetrieveOCSPStapleData.Success | OCSP レスポンスは正常に受信および処理されました。このレスポンスは、設定されたドメインの TLS ハンドシェイク中に含まれます。DomainConfigurationName ディメンションには、サーバー証明書 OCSP ステープリングが有効になっている設定済みドメインの名前が含まれます。 | 

## ルールのメトリクス
<a name="rulemetrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `ParseError`   |  ルールがリッスンしているトピックで発行されたメッセージで発生した JSON 解析エラーの数。`RuleName` ディメンションにはルールの名前が含まれます。  | 
|   `RuleExecutionThrottled`   |  悪意のある動作のため、またはメッセージの数がルールエンジンのスロットル制限を超えているために、ルールエンジンによってスロットリングされたメッセージの数。`RuleName` ディメンションには、トリガーされるルールの名前が入っています。  | 
|   `RuleNotFound`   |  トリガーされるルールが見つかりませんでした。`RuleName` ディメンションにはルールの名前が含まれます。  | 
|   `RulesExecuted`   |  実行された AWS IoT ルールの数。  | 
|   `TopicMatch`   |  ルールがリッスンしているトピックで発行された受信メッセージの数。`RuleName` ディメンションにはルールの名前が含まれます。  | 

## ルールアクションのメトリクス
<a name="rule-action-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `Failure`   |  失敗したルールアクションの呼び出しの数。`RuleName` ディメンションには、アクションを指定するルールの名前が含まれます。`ActionType` ディメンションには、呼び出されたアクションのタイプが含まれます。  | 
|   `Success`   |  正常なルールアクションの呼び出しの数。`RuleName` ディメンションには、アクションを指定するルールの名前が含まれます。`ActionType` ディメンションには、呼び出されたアクションのタイプが含まれます。  | 
|  ErrorActionFailure  | 失敗したエラーアクションの数。RuleName ディメンションには、アクションを指定するルールの名前が含まれます。ActionTypeディメンションには、呼び出されたアクションのタイプが含まれます。 | 
|  ErrorActionSuccess  | 成功したエラーアクションの数。RuleNameディメンションには、アクションを指定するルールの名前が含まれます。ActionType ディメンションには、呼び出されたアクションのタイプが含まれます。 | 

## HTTP アクション固有のメトリクス
<a name="http-action-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `HttpCode_Other`   |  ダウンストリームウェブサービス/アプリケーションからの応答のステータスコードが 2xx、4xx、または 5xx でない場合に生成されます。  | 
|   `HttpCode_4XX`   |  ダウンストリームウェブサービス/アプリケーションからの応答のステータスコードが 400 ～ 499 の場合に生成されます。  | 
|   `HttpCode_5XX`   |  ダウンストリームウェブサービス/アプリケーションからの応答のステータスコードが 500 ～ 599 の場合に生成されます。  | 
|   `HttpInvalidUrl`   |  置換テンプレートが置き換えられた後にエンドポイント URL が `https://` で始まらない場合に生成されます。  | 
|   `HttpRequestTimeout`   |  ダウンストリームウェブサービス/アプリケーションが要求タイムアウト制限内で応答を返さない場合に生成されます。詳細については、「[Service Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#limits_iot)」を参照してください。  | 
|   `HttpUnknownHost`   |  URL が有効であるが、サービスが存在しないか、到達不能である場合に生成されます。  | 

## メッセージブローカーのメトリクス
<a name="message-broker-metrics"></a>

**注記**  
メッセージブローカーのメトリクスは、CloudWatch コンソールの [**Protocol Metrics**] (プロトコルメトリクス) に表示されます。


| メトリクス | 説明 | 
| --- | --- | 
|   `Connect.AuthError`   |  メッセージブローカーが承認できなかった接続リクエストの数。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Connect.ClientError`   |  MQTT メッセージが で定義された要件を満たさなかったために拒否された接続リクエストの数[AWS IoT のクォータ](limits-iot.md)。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Connect.ClientIDThrottle`   |  特定のクライアント ID で許可された接続リクエストの頻度をクライアントが超えたために調整された接続リクエストの数。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Connect.ServerError`   |  内部エラーが発生したために失敗した接続リクエストの数。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Connect.Success`   |  メッセージブローカーへ正常な接続の数。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Connect.Throttle`   |  許可された接続リクエストの頻度をアカウントが超えたために調整された接続リクエストの数。`Protocol` ディメンションには、`CONNECT` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Ping.Success`   |  メッセージブローカーによって受け取られた ping メッセージの数。`Protocol` ディメンションには、ping メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishIn.AuthError`   |  メッセージブローカーが承認できなかった発行リクエストの数。`Protocol` ディメンションには、メッセージの発行に使用されたプロトコルが含まれます。HTTP Publish はこのメトリクスをサポートしていません。  | 
|   `PublishIn.ClientError`   |  メッセージが で定義された要件を満たさなかったためにメッセージブローカーによって拒否された発行リクエストの数[AWS IoT のクォータ](limits-iot.md)。`Protocol` ディメンションには、メッセージの発行に使用されたプロトコルが含まれます。  | 
|   `PublishIn.ServerError`   |  内部エラーが発生したためにメッセージブローカーが処理に失敗した発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishIn.Success`   |  メッセージブローカーによって正常に処理された発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishIn.Throttle`   |  許可されたインバウンドメッセージの頻度をクライアントが超えたために調整された発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。HTTP Publish はこのメトリクスをサポートしていません。  | 
|   `PublishOut.AuthError`   |   AWS IoTが承認できなかった、メッセージブローカーによって行われた発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishOut.ClientError`   |  メッセージブローカーによって行われた発行リクエストのうち、メッセージが [AWS IoT のクォータ](limits-iot.md) で定義された要件を満たしていないために拒否されたものの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishOut.Success`   |  メッセージブローカーによって正常に行われた発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|  PublishOut.Throttle  |  許可されたアウトバウンドメッセージの頻度をクライアントが超えたために調整された発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishRetained.AuthError`   |  メッセージブローカーが承認できなかった、`RETAIN` フラグが設定されている発行リクエストの数。`Protocol` ディメンションには、`PUBLISH`メッセージの送信に使用されたプロトコルが含まれます。  | 
|  PublishRetained.ServerError  |  内部エラーが発生したためにメッセージブローカーが処理に失敗した、保持されている発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishRetained.Success`   |  メッセージブローカーによって正常に処理された、`RETAIN` フラグが設定されている発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `PublishRetained.Throttle`   |  クライアントが許可されたインバウンドメッセージレートを超過したためにスロットルされた、`RETAIN` フラグが設定されている発行リクエストの数。`Protocol` ディメンションには、`PUBLISH` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Queued.Success`   |  永続セッションから切断されたクライアントのメッセージブローカーによって正常に処理された、保存されているメッセージの数。QoS が 1 のメッセージは、クライアントの永続セッションが切断されている間も保存されます。  | 
|   `Queued.Throttle`   |  クライアントの永続セッションが接続が切断されている間に保存できず、スロットリングされたメッセージの数。これは、クライアントの[アカウントごとの 1 秒あたりのキューメッセージ数](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#genref_queued_messages_per_second_per_account)が上限を超えた場合に発生します。QoS が 1 のメッセージは、クライアントの永続セッションが切断されている間も保存されます。  | 
|   `Queued.ServerError`   |  内部エラーのために永続セッションに保存されなかったメッセージの数。クライアントの永続セッションが切断されると、サービス品質 (QoS) が 1 のメッセージが保存されます。  | 
|   `Subscribe.AuthError`   |  クライアントによって行われ、承認できなかったサブスクリプションリクエストの数。`Protocol` ディメンションには、`SUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Subscribe.ClientError`   |  `SUBSCRIBE` メッセージが で定義された要件を満たさなかったために拒否されたサブスクライブリクエストの数[AWS IoT のクォータ](limits-iot.md)。`Protocol` ディメンションには、`SUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Subscribe.ServerError`   |  内部エラーが発生したために拒否されたサブスクリプションのリクエストの数。`Protocol` ディメンションには、`SUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Subscribe.Success`   |  メッセージブローカーによって正常に処理されたサブスクリプションのリクエストの数。`Protocol` ディメンションには、`SUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Subscribe.Throttle`   |  許可されたサブスクリプションリクエストの頻度が AWS アカウントに対して超えたためにスロットリングされたサブスクリプションリクエストの数。これらの制限には、「[AWS IoT Core メッセージブローカーとプロトコルの制限とクォータ](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits)」に記載されている、アカウントごとの 1 秒あたりのサブスクリプション、アカウントごとのサブスクリプション、接続あたりのサブスクリプションが含まれます。`Protocol` ディメンションには、`SUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|  Throttle.Exceeded  | このメトリクスは、MQTT クライアントが[接続レベルの制限ごとに 1 秒あたり](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits)のパケット数をスロットリングされている場合に CloudWatch に表示されます。このメトリクスは HTTP 接続には適用されません。 | 
|   `Unsubscribe.ClientError`   |  `UNSUBSCRIBE` メッセージが で定義された要件を満たさなかったために拒否されたサブスクリプション解除リクエストの数[AWS IoT のクォータ](limits-iot.md)。`Protocol` ディメンションには、`UNSUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Unsubscribe.ServerError`   |  内部エラーが発生したために拒否されたサブスクリプション解除リクエストの数。`Protocol` ディメンションには、`UNSUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Unsubscribe.Success`   |  メッセージブローカーによって正常に処理されたサブスクリプション解除リクエストの数。`Protocol` ディメンションには、`UNSUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 
|   `Unsubscribe.Throttle`   |  許可されたサブスクリプション解除リクエストの頻度をクライアントが超えたために拒否されたサブスクリプション解除リクエストの数。`Protocol` ディメンションには、`UNSUBSCRIBE` メッセージの送信に使用されたプロトコルが含まれます。  | 

## Device Shadow のメトリクス
<a name="shadow-metrics"></a>

**注記**  
Device Shadow メトリクスは、CloudWatch コンソールの [**Protocol Metrics**] (プロトコルメトリクス) に表示されます。


| メトリクス | 説明 | 
| --- | --- | 
|   `DeleteThingShadow.Accepted`   |  正常に処理された `DeleteThingShadow` リクエストの数。`Protocol` ディメンションには、リクエストの作成に使用されたプロトコルが含まれます。  | 
|   `GetThingShadow.Accepted`   |  正常に処理された`GetThingShadow` リクエストの数。`Protocol` ディメンションには、リクエストの作成に使用されたプロトコルが含まれます。  | 
|   `ListThingShadow.Accepted`   |  正常に処理された`ListThingShadow` リクエストの数。`Protocol` ディメンションには、リクエストの作成に使用されたプロトコルが含まれます。  | 
|   `UpdateThingShadow.Accepted`   |  正常に処理された`UpdateThingShadow` リクエストの数。`Protocol` ディメンションには、リクエストの作成に使用されたプロトコルが含まれます。  | 

## メトリクスのログ記録
<a name="logging-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|  `CloudwatchLogs:LogGroupCreationFailed`  |  `CreateLogGroup` リクエストの失敗の数。AWS IoT ログ記録は、CloudWatch ロググループが存在しない場合に作成します。`LogGroup` ディメンションには、リクエストの実行に使用されるロググループが含まれます。  | 
|  `CloudwatchLogs:LogStreamCreationFailed`  |  `CreateLogStream` リクエストの失敗の数。AWS IoT ログ記録は、ログイベントをプッシュするための CloudWatch ログストリームを作成します。`LogGroup` ディメンションには、リクエストの実行に使用されるロググループが含まれます。  | 
|  `CloudwatchLogs:PutRetentionPolicyFailed`  |  `PutRetentionPolicy` リクエストの失敗の数。AWS IoT ログ記録では、CloudWatch ロググループが存在しない場合は作成され、保持ポリシーは 30 日間に設定されます。`LogGroup` ディメンションには、リクエストの実行に使用されるロググループが含まれます。  | 
|  `CloudwatchLogs:PutLogEventsFailed`  |  `PutLogEvents` リクエストの失敗の数。`LogGroup` ディメンションには、リクエストの実行に使用される CloudWatch ロググループが含まれます。  | 

## ジョブのメトリクス
<a name="jobs-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|  `CanceledJobExecutionCount`  |  CloudWatch によって決定された期間中にステータスが `CANCELED` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `CanceledJobExecutionTotalCount`   |  指定されたジョブのステータスが `CANCELED` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `ClientErrorCount`   |  ジョブの実行中に生成されたクライアントエラーの数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `FailedJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `FAILED` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `FailedJobExecutionTotalCount`   |  指定されたジョブのステータスが `FAILED` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `InProgressJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `IN_PROGRESS` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `InProgressJobExecutionTotalCount`   |  指定されたジョブのステータスが `IN_PROGRESS` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `RejectedJobExecutionTotalCount`   |  指定されたジョブのステータスが `REJECTED` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `RemovedJobExecutionTotalCount`   |  指定されたジョブのステータスが `REMOVED` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `QueuedJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `QUEUED` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `QueuedJobExecutionTotalCount`   |  指定されたジョブのステータスが `QUEUED` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `RejectedJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `REJECTED` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `RemovedJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `REMOVED` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `ServerErrorCount`   |  ジョブの実行中に生成されたサーバーエラーの数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `SuccededJobExecutionCount`   |  CloudWatch によって決定された期間中にステータスが `SUCCESS` に変更されたジョブ実行の数。(CloudWatch メトリクスの詳細については、「[Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)」を参照してください。) `JobId` ディメンションには､ジョブの ID が含まれます。  | 
|   `SuccededJobExecutionTotalCount`   |  指定されたジョブのステータスが `SUCCESS` であるジョブ実行の総数。`JobId` ディメンションには､ジョブの ID が含まれます。  | 

## Device Defender の監査メトリクス
<a name="device-defender-audit-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `NonCompliantResources`   |  チェックの結果、準拠していないことが判明したリソースの数。システムは実行した各監査のチェックごとに非準拠のリソースの数を報告します。  | 
|   `ResourcesEvaluated`   |  準拠状況を評価したリソースの数。システムは実行した各監査のチェックごとに評価したリソースの数を報告します。  | 
|   `MisconfiguredDeviceDefenderNotification`   |  の SNS 設定 AWS IoT Device Defender が正しく設定されていない場合に通知します。  [ディメンション](#aws-iot-metricdimensions)   | 

## Device Defender の検出メトリクス
<a name="device-defender-detect-metrics"></a>


| メトリクス | 説明 | 
| --- | --- | 
|   `NumOfMetricsExported`    |  クラウド側、デバイス側、またはカスタムメトリクスにエクスポートされたメトリクスの数。システムは、特定のメトリクスについて、アカウントにエクスポートされたメトリクスの数を報告します。このメトリクスは、メトリクスのエクスポートを使用するカスタマーのみが使用できます。  | 
|   `NumOfMetricsSkipped`   |  クラウド側、デバイス側、またはカスタムメトリクスでスキップされたメトリクスの数。Device Defender Detect が mqtt トピックに発行するアクセス許可が不十分であるために、システムはアカウントでスキップされたメトリクスの数を特定のメトリクスについてレポートします。このメトリクスは、メトリクスのエクスポートを使用するカスタマーのみが使用できます。  | 
|   `NumOfMetricsExceedingSizeLimit`   |  サイズが MQTT メッセージサイズの制約を超えたために、クラウド側、デバイス側、またはカスタムメトリクスのエクスポートのためにスキップされたメトリクスの数。サイズが MQTT メッセージサイズの制約を超えたために、特定のメトリクスについて、 アカウントのエクスポートでスキップされたメトリクスの数が報告されます。このメトリクスは、メトリクスのエクスポートを使用するカスタマーのみが使用できます。  | 
|   `Violations`   |  前回実施した評価以降に判明したセキュリティプロファイル動作の新しい違反の数。システムは、セキュリティプロファイル別およびその動作別に、アカウントの新しい違反の数を報告します。  | 
|   `ViolationsCleared`   |  前回実施した評価以降に解決されたセキュリティプロファイル動作の違反の数。システムは、セキュリティプロファイル別およびその動作別に、アカウントの解決された違反の数を報告します。  | 
|   `ViolationsInvalidated`   |  前回実施した評価以降に (レポートデバイスがレポートを停止したか、何らかの理由でモニタリングが中止されたために) 情報が使用できなくなったセキュリティプロファイル動作の違反の数。システムは、セキュリティプロファイル別およびその動作別に、アカウント全体の無効化された違反の数を報告します。  | 
|   `MisconfiguredDeviceDefenderNotification`   |  の SNS 設定 AWS IoT Device Defender が正しく設定されていない場合に通知します。  [ディメンション](#aws-iot-metricdimensions)   | 

## デバイスプロビジョニングのメトリクス
<a name="provisioning-metrics"></a>


**AWS IoT フリートプロビジョニングメトリクス**  

| メトリクス | 説明 | 
| --- | --- | 
|   `ApproximateNumberOfThingsRegistered`   |  フリートプロビジョニングによって登録されたモノの数。 カウントは一般的に正確ですが、 AWS IoT Core の分散アーキテクチャでは、登録されたモノの正確なカウントを維持することが難しくなります。 このメトリクスに使用する統計は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/metrics_dimensions.html)  ディメンション: [ClaimCertificateId](#aws-iot-metricdimensions)   | 
|   `CreateKeysAndCertificateFailed`   |  `CreateKeysAndCertificate` MQTT API の呼び出しで発生した失敗の数。 このメトリクスは、成功した場合 (値 = 0) と失敗した場合 (値 = 1) の両方で出力されます。このメトリクスを使用して、CloudWatch がサポートする集計期間中 (5 分、あるいは 1 時間など) に作成および登録された証明書の数を追跡できます。 このメトリクスに使用できる統計は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/metrics_dimensions.html)  | 
|   `CreateCertificateFromCsrFailed`   |  `CreateCertificateFromCsr` MQTT API の呼び出しで発生した失敗の数。 このメトリクスは、成功した場合 (値 = 0) と失敗した場合 (値 = 1) の両方で出力されます。このメトリクスを使用して、CloudWatch がサポートする集計期間中 (5 分、あるいは 1 時間など) に登録されたモノの数を追跡できます。 このメトリクスに使用できる統計は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/metrics_dimensions.html)  | 
|   `RegisterThingFailed`   |  `RegisterThing` MQTT API の呼び出しで発生した失敗の数。 このメトリクスは、成功した場合 (値 = 0) と失敗した場合 (値 = 1) の両方で出力されます。このメトリクスを使用して、CloudWatch がサポートする集計期間中 (5 分、あるいは 1 時間など) に登録されたモノの数を追跡できます。登録されたモノの総数については、`ApproximateNumberOfThingsRegistered` メトリクスを参照してください。 このメトリクスに使用できる統計は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/metrics_dimensions.html) ディメンション: [TemplateName](#aws-iot-metricdimensions)   | 


**ジャストインタイムのプロビジョニングメトリクス**  

| メトリクス | 説明 | 
| --- | --- | 
|   `ProvisionThing.ClientError`   |  クライアントエラーが原因でデバイスがプロビジョニングに失敗した回数。例えば、テンプレートで指定されたポリシーが存在しませんでした。  | 
|  ProvisionThing.ServerError  |  サーバーエラーが原因でデバイスがプロビジョニングに失敗した回数。お客様は待機してからデバイスのプロビジョニングを再試行することができるとともに、問題が解決しない場合は AWS IoT に問い合わせることができます。  | 
|  ProvisionThing.Success  |  デバイスが正常にプロビジョニングされた回数。  | 

## LoRaWAN メトリクス
<a name="lorawan-metrics"></a>

次の表は、 のメトリクスを示しています AWS IoT Core for LoRaWAN。詳細については、「[AWS IoT Core for LoRaWAN メトリクス](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/iot-lorawan-metrics.html)」を参照してください。


**AWS IoT Core for LoRaWAN メトリクス**  

| メトリクス | 説明 | 
| --- | --- | 
|  アクティブなデバイス/ゲートウェイ  |  アカウント内のアクティブな LoRaWAN デバイスとゲートウェイの数。  | 
|  アップリンクメッセージ数  |   AWS アカウント内のすべてのアクティブなゲートウェイとデバイスで、指定された期間内に送信されるアップリンクメッセージの数。アップリンクメッセージは、デバイスから に送信されるメッセージです AWS IoT Core for LoRaWAN。  | 
|  ダウンリンクメッセージ数  |   AWS アカウント内のすべてのアクティブなゲートウェイとデバイスで、指定された期間内に送信されるダウンリンクメッセージの数。ダウンリンクメッセージは、 からデバイスに送信されるメッセージ AWS IoT Core for LoRaWAN です。  | 
|  メッセージロス率  |  デバイスを追加して に接続すると AWS IoT Core for LoRaWAN、デバイスはアップリンクメッセージを開始して、クラウドとのメッセージの交換を開始できます。このメトリクスを使用して、アップリンクメッセージのロス率を追跡できます。  | 
|  結合メトリクス  |  デバイスとゲートウェイを追加したら、参加手順を実行して、デバイスがアップリンクデータを送信して と通信できるようにします AWS IoT Core for LoRaWAN。このメトリクスを使用して、 AWS アカウント内のすべてのアクティブなデバイスの結合メトリクスに関する情報を取得できます。  | 
|  平均受信信号強度インジケータ (RSSI)  |  このメトリクスを使用して、指定された時間内の平均 RSSI (受信信号強度インジケータ) をモニタリングできます。RSSI は、信号が良好なワイヤレス接続に十分な強度があるかどうかを示す測定です。この値は負であり、強力な接続にはゼロに近い必要があります。  | 
|  信号対雑音比 (SNR)  |  このメトリクスを使用して、指定された時間内の平均 SNR (信号対雑音比) をモニタリングできます。SNR は、受信した信号が良好なワイヤレス接続の雑音レベルと比較して十分に強いかどうかを示す測定値です。SNR 値は正であり、信号電力が雑音電力よりも強いことを示すには、0 より大きい必要があります。  | 
|  ゲートウェイの可用性  |  このメトリクスを使用して、指定された期間内にこのゲートウェイの可用性に関する情報を取得できます。このメトリクスは、指定された期間におけるこのゲートウェイのウェブソケット接続時間を表示します。  | 


**ジャストインタイムのプロビジョニングメトリクス**  

| メトリクス | 説明 | 
| --- | --- | 
|   `ProvisionThing.ClientError`   |  クライアントエラーが原因でデバイスがプロビジョニングに失敗した回数。例えば、テンプレートで指定されたポリシーが存在しませんでした。  | 
|  ProvisionThing.ServerError  |  サーバーエラーが原因でデバイスがプロビジョニングに失敗した回数。お客様は待機してからデバイスのプロビジョニングを再試行することができるとともに、問題が解決しない場合は AWS IoT に問い合わせることができます。  | 
|  ProvisionThing.Success  |  デバイスが正常にプロビジョニングされた回数。  | 

## フリートのインデックス作成メトリクス
<a name="fleet-indexing-metrics"></a>


**AWS IoT フリートインデックス作成メトリクス**  

| メトリクス | 説明 | 
| --- | --- | 
|   `NamedShadowCountForDynamicGroupQueryLimitExceeded`   |  動的なモノのグループのデータソース固有ではないクエリ条件については、モノごとに最大 25 の名前付きシャドウが処理されます。モノに対してこの制限に違反すると、`NamedShadowCountForDynamicGroupQueryLimitExceeded` イベントタイプが出力されます。  | 

## メトリクスのディメンション
<a name="aws-iot-metricdimensions"></a>


**メトリクスは名前空間を使用し、以下のディメンションのメトリクスを提供します**  

| ディメンション | 説明 | 
| --- | --- | 
|  ActionType  |  リクエストによってトリガーされたルールで指定された[アクションのタイプ](iot-rule-actions.md)。  | 
|   `BehaviorName`   |  モニタリングされている Device Defender Detect セキュリティプロファイルの動作の名前。  | 
|   `ClaimCertificateId`   |  デバイスのプロビジョニングに使用されるクレームの `certificateId`。  | 
|   `CheckName`   |  結果がモニタリングされている Device Defender 監査チェックの名前。  | 
|   `JobId`   |  進行状況またはメッセージ接続の成功/失敗が監視されているジョブの ID。  | 
|   `Protocol`   |  リクエストを行うために使用されるプロトコル。有効な値: MQTT または HTTP  | 
|   `RuleName`   |  リクエストによってトリガーされたルールの名前。  | 
|   `ScheduledAuditName`   |  チェックの結果がモニタリングされている Device Defender のスケジュールされた監査の名前。オンデマンドで実行された監査の結果がレポートされた場合、この値は `OnDemand` になります。  | 
|   `SecurityProfileName`   |  動作がモニタリングされている Device Defender Detect セキュリティプロファイルの名前。  | 
|   `TemplateName`   |  プロビジョニングテンプレートの名前。  | 
|  SourceArn  | 検出用のセキュリティプロファイルまたは監査用のアカウント ARN を指します。 | 
|   `RoleArn`   |  Device Defender が引き受けようとしたロールを指します。  | 
|   `TopicArn`   |  Device Defender が発行を試みた SNS トピックを指します。  | 
|   `Error`   | SNS トピックに発行しようとしたときに受信したエラーの簡単な説明を提供します。可能な値は以下のとおりです。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/metrics_dimensions.html)  | 

# CloudWatch Logs AWS IoT を使用したモニタリング
<a name="cloud-watch-logs"></a>

[AWS IoT ログ記録を有効にすると](configure-logging.md)、 は、メッセージブローカーとルールエンジンを介してデバイスから送信される各メッセージに関する進行状況イベント AWS IoT を送信します。[CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)で、CloudWatch のログは **AWSIotLogs**という名前のロググループに表示されます。

CloudWatch Logs の詳細については、[CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html) を参照してください。サポートされている AWS IoT CloudWatch Logs の詳細については、[CloudWatch Logs AWS IoT ログエントリ](cwl-format.md)「」を参照してください。

## CloudWatch コンソールでの AWS IoT ログの表示
<a name="viewing-logs"></a>

**注記**  
`AWSIotLogsV2` ロググループは、次の状態になるまで CloudWatch コンソールに表示されません。  
ログインを有効にしました AWS IoT。ログインを有効にする方法の詳細については AWS IoT、「」を参照してください。 [AWS IoT ログ記録の設定](configure-logging.md)
一部のログエントリは AWS IoT オペレーションによって書き込まれています。

**CloudWatch コンソールで AWS IoT ログを表示するには**

1.  [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を参照します。ナビゲーションペインで、[**Log groups**] (ロググループ) を選択します。

1. [**フィルター**] テキストボックスで、「**AWSIotLogsV2**」と入力して、Enter キーを押します。

1. [`AWSIotLogsV2`] ロググループをダブルクリックします。

1. [**Search All**] (すべて検索) を選択します。アカウント用に生成された AWS IoT ログの完全なリストが表示されます。

1. 個々のストリームを表示するには、展開アイコンを選択します。

また、[**フィルタイベント**] テキストボックスにクエリを入力することもできます。興味深いクエリの例がいくつかあります｡
+  `{ $.logLevel = "INFO" }` 

   ログレベルが `INFO` のすべてのログを検索します。
+  `{ $.status = "Success" }` 

   `Success` のステータスを持つすべてのログを検索します。
+  `{ $.status = "Success" && $.eventType = "GetThingShadow" }` 

   ステータスが `Success` で、イベントタイプが `GetThingShadow` であるすべてのログを検索します。

フィルター式の作成の詳細については、[CloudWatch Logs クエリ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)を参照してください｡ 

# CloudWatch Logs AWS IoT ログエントリ
<a name="cwl-format"></a>

の各コンポーネントは、独自のログエントリ AWS IoT を生成します。各ログエントリには、ログエントリが生成される原因となった操作を示す `eventType` が含まれています。このセクションでは、次の AWS IoT コンポーネントによって生成されるログエントリについて説明します。

**Topics**
+ [メッセージブローカーのログエントリ](#message-broker-logs)
+ [サーバー証明書 OCSP ログエントリ](#server-ocsp-logs)
+ [Device Shadow のログエントリ](#device-shadow-logs)
+ [ルールエンジンのログエントリ](#rule-engine-logs)
+ [ジョブのログエントリ](#job-logs)
+ [デバイスプロビジョニングのログエントリ](#provision-logs)
+ [モノの動的グループのログエントリ](#dynamic-group-logs)
+ [フリートのインデックス作成ログエントリ](#fleet-indexing-logs)
+ [CloudWatch Logs の共通属性](#cwl-common-attributes)

## メッセージブローカーのログエントリ
<a name="message-broker-logs"></a>

 AWS IoT メッセージブローカーは、次のイベントのログエントリを生成します。

**Topics**
+ [Connect ログエントリ](#log-mb-connect)
+ [Disconnect ログエントリ](#log-mb-disconnect)
+ [DeleteConnection ログエントリ](#log-mb-delete-connection)
+ [GetRetainedMessage ログエントリ](#log-mb-get-retain)
+ [ListretainedMessage ログエントリ](#log-mb-list-retain)
+ [Publish-In ログエントリ](#log-mb-publish-in)
+ [Publish-Out ログエントリ](#log-mb-publish-out)
+ [キューに保存されたログエントリ](#log-mb-queued)
+ [Subscribe ログエントリ](#log-mb-subscribe)
+ [Unsubscribe ログエントリ](#log-mb-unsubscribe)

### Connect ログエントリ
<a name="log-mb-connect"></a>

 AWS IoT メッセージブローカーは、MQTT クライアントが接続`Connect`すると、 が `eventType` のログエントリを生成します。

#### Connect ログエントリの例
<a name="log-mb-connect.example"></a>

```
{
    "timestamp": "2017-08-10 15:37:23.476",
    "logLevel": "INFO",
    "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "Connect",
    "protocol": "MQTT",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Connect`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

### Disconnect ログエントリ
<a name="log-mb-disconnect"></a>

 AWS IoT メッセージブローカーは、MQTT クライアントが切断`Disconnect`されると、 が `eventType` のログエントリを生成します。

#### Disconnect ログエントリの例
<a name="log-mb-disconnect.example"></a>

```
{
    "timestamp": "2017-08-10 15:37:23.476",
    "logLevel": "INFO",
    "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "Disconnect",
    "protocol": "MQTT",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490,
    "reason": "DUPLICATE_CLIENT_ID",
    "details": "A new connection was established with the same client ID",
    "disconnectReason": "CLIENT_INITIATED_DISCONNECT"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Disconnect`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

理由  
クライアントが切断する理由。

details  
エラーの簡単な説明。

disconnectReason  
クライアントが切断する理由。

### DeleteConnection ログエントリ
<a name="log-mb-delete-connection"></a>

 AWS IoT メッセージブローカーは、MQTT クライアント接続が削除され`eventType``DeleteConnection`ると、 のログエントリを生成します。

#### DeleteConnection ログエントリの例
<a name="log-mb-delete-connection.example"></a>

```
{
    "timestamp": "2025-08-09 15:37:23.476",
    "logLevel": "INFO",
    "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "DeleteConnection",
    "protocol": "HTTP",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`DeleteConnection`ログエントリには次の属性が含まれます。

clientId  
切断されるクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。プリンシパル ID を使用してプリンシパルを識別する方法については、「*IAM ユーザーガイド*」の「[IAM ID と認証情報を比較する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html)」を参照してください。

protocol  
リクエストを行うために使用されるプロトコル。有効値は `HTTP` です。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

### GetRetainedMessage ログエントリ
<a name="log-mb-get-retain"></a>

 AWS IoT メッセージブローカーは、 [https://docs.aws.amazon.com//iot/latest/developerguide/API_iotdata_GetRetainedMessage.html](https://docs.aws.amazon.com//iot/latest/developerguide/API_iotdata_GetRetainedMessage.html)が呼び出`GetRetainedMessage`されると、 `eventType` の でログエントリを生成します。

#### GetRetainedMessage ログエントリの例
<a name="log-mb-get-retain-example"></a>

```
{
    "timestamp": "2017-08-07 18:47:56.664", 
    "logLevel": "INFO", 
    "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", 
    "accountId": "123456789012", 
    "status": "Success", 
    "eventType": "GetRetainedMessage", 
    "protocol": "HTTP",
    "topicName": "a/b/c",
    "qos": "1",
    "lastModifiedDate": "2017-08-07 18:47:56.664"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`GetRetainedMessage`ログエントリには次の属性が含まれます。

lastModifiedDate  
保持されたメッセージが保存されたエポック日時をミリ秒単位で表します AWS IoT。

protocol  
リクエストを行うために使用されるプロトコル。有効な値: `HTTP`。

qos  
発行要求で使用されるサービス品質 (QoS) レベル。有効な値は `0` または `1` です。

topicName  
サブスクライブされたトピックの名前。

### ListretainedMessage ログエントリ
<a name="log-mb-list-retain"></a>

 AWS IoT メッセージブローカーは、 [/iot/latest/developerguide/API_iotdata_ListRetainedMessages.html](/iot/latest/developerguide/API_iotdata_ListRetainedMessages.html)が呼び出`ListRetainedMessage`されると、 `eventType` の を持つログエントリを生成します。

#### ListRetainedMessage ログエントリの例
<a name="log-mb-list-retain-example"></a>

```
{
    "timestamp": "2017-08-07 18:47:56.664", 
    "logLevel": "INFO", 
    "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", 
    "accountId": "123456789012", 
    "status": "Success", 
    "eventType": "ListRetainedMessage", 
    "protocol": "HTTP"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`ListRetainedMessage`ログエントリには次の属性が含まれます。

protocol  
リクエストを行うために使用されるプロトコル。有効な値: `HTTP`。

### Publish-In ログエントリ
<a name="log-mb-publish-in"></a>

 AWS IoT メッセージブローカーは MQTT メッセージを受信すると、 `eventType`の を持つログエントリを生成します`Publish-In`。

#### Publish-In ログエントリの例
<a name="log-mb-publish-in.example"></a>

```
{
        "timestamp": "2017-08-10 15:39:30.961",
        "logLevel": "INFO",
        "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699",
        "accountId": "123456789012",
        "status": "Success",
        "eventType": "Publish-In",
        "protocol": "MQTT",
        "topicName": "$aws/things/MyThing/shadow/get",
        "clientId": "abf27092886e49a8a5c1922749736453",
        "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
        "sourceIp": "205.251.233.181",
        "sourcePort": 13490,
        "retain": "True"
    }
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Publish-In`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

保持  
メッセージに RETAIN フラグが `True` の値で設定されている場合に使用される属性。メッセージに RETAIN フラグが設定されていない場合、この属性はログエントリに表示されません。詳細については、「[保持された MQTT メッセージ](mqtt.md#mqtt-retain)」を参照してください。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

topicName  
サブスクライブされたトピックの名前。

### Publish-Out ログエントリ
<a name="log-mb-publish-out"></a>

メッセージブローカーは、MQTT メッセージを公開する際に、`eventType` という `Publish-Out` のログエントリを生成します。

#### Publish-Out ログエントリの例
<a name="log-mb-publish-out.example"></a>

```
{
    "timestamp": "2017-08-10 15:39:30.961",
    "logLevel": "INFO",
    "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "Publish-Out",
    "protocol": "MQTT",
    "topicName": "$aws/things/MyThing/shadow/get",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Publish-Out`ログエントリには次の属性が含まれます。

clientId  
その MQTT トピックでメッセージを受信するサブスクライブクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

topicName  
サブスクライブされたトピックの名前。

### キューに保存されたログエントリ
<a name="log-mb-queued"></a>

永続セッションを持つデバイスが切断されると、MQTT メッセージブローカーはデバイスのメッセージを保存し、eventType が のログエントリ AWS IoT を生成します`Queued`。MQTT 永続セッションの詳細については、[MQTT 永続的セッション](mqtt.md#mqtt-persistent-sessions)「」を参照してください。

#### キューに保存されたサーバーエラーログエントリの例
<a name="log-mb-queued.server-error.example"></a>

```
{
    "timestamp": "2022-08-10 15:39:30.961",
    "logLevel": "ERROR",
    "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699",
    "accountId": "123456789012",
    "topicName": "$aws/things/MyThing/get",
    "clientId": "123123123",
    "qos": "1",
    "protocol": "MQTT",
    "eventType": "Queued",
    "status": "Failure",
    "details": "Server Error"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Queued`サーバーエラーログエントリには次の属性が含まれます。

clientId  
メッセージがキューに保存されたクライアントの ID。

details  
**`Server Error`**  
サーバーエラーにより、メッセージの保存が妨げられました。

protocol  
リクエストを行うために使用されるプロトコル。値は常に `MQTT` です。

qos  
リクエストのサービス品質 (QoS) レベル。QoS が 0 のメッセージは保存されないため、値は常に 1 になります。

topicName  
サブスクライブされたトピックの名前。

#### キューに保存された成功ログエントリの例
<a name="log-mb-queued.success.example"></a>

```
{
    "timestamp": "2022-08-10 15:39:30.961",
    "logLevel": "INFO",
    "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699",
    "accountId": "123456789012",
    "topicName": "$aws/things/MyThing/get",
    "clientId": "123123123",
    "qos": "1",
    "protocol": "MQTT",
    "eventType": "Queued",
    "status": "Success"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Queued`成功ログエントリには次の属性が含まれます。

clientId  
メッセージがキューに保存されたクライアントの ID。

protocol  
リクエストを行うために使用されるプロトコル。値は常に `MQTT` です。

qos  
リクエストのサービス品質 (QoS) レベル。QoS が 0 のメッセージは保存されないため、値は常に 1 になります。

topicName  
サブスクライブされたトピックの名前。

#### キューに保存されているスロットリングされたログエントリの例
<a name="log-mb-queued.throttled.example"></a>

```
{
    "timestamp": "2022-08-10 15:39:30.961",
    "logLevel": "ERROR",
    "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699",
    "accountId": "123456789012",
    "topicName": "$aws/things/MyThing/get",
    "clientId": "123123123",
    "qos": "1",
    "protocol": "MQTT",
    "eventType": "Queued",
    "status": "Failure",
    "details": "Throttled while queueing offline message"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Queued`スロットリングされたログエントリには次の属性が含まれます。

clientId  
メッセージがキューに保存されたクライアントの ID。

details  
**`Throttled while queueing offline message`**  
クライアントが ` [Queued messages per second per account](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#genref_queued_messages_per_second_per_account) ` 制限を超えたため、メッセージは保存されませんでした。

protocol  
リクエストを行うために使用されるプロトコル。値は常に `MQTT` です。

qos  
リクエストのサービス品質 (QoS) レベル。QoS が 0 のメッセージは保存されないため、値は常に 1 になります。

topicName  
サブスクライブされたトピックの名前。

### Subscribe ログエントリ
<a name="log-mb-subscribe"></a>

 AWS IoT メッセージブローカーは、MQTT クライアントがトピックをサブスクライブ`Subscribe`するときに、 `eventType`の を持つログエントリを生成します。

#### MQTT 3 Subscribe ログエントリの例
<a name="log-mb-connect.example.subscribe"></a>

```
{
    "timestamp": "2017-08-10 15:39:04.413",
    "logLevel": "INFO",
    "traceId": "7aa5c38d-1b49-3753-15dc-513ce4ab9fa6",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "Subscribe",
    "protocol": "MQTT",
    "topicName": "$aws/things/MyThing/shadow/#",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Subscribe`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

protocol  
リクエストを行うために使用されるプロトコル。値は常に `MQTT` です。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

topicName  
サブスクライブされたトピックの名前。

#### MQTT 5 Subscribe ログエントリの例
<a name="log-mb-connect.example.subscribe.mqtt5"></a>

```
{
	"timestamp": "2022-11-30 16:24:15.628",
	"logLevel": "INFO",
	"traceId": "7aa5c38d-1b49-3753-15dc-513ce4ab9fa6",
	"accountId": "123456789012",
	"status": "Success",
	"eventType": "Subscribe",
	"protocol": "MQTT",
	"topicName": "test/topic1,$invalid/reserved/topic",
	"subscriptions": [
		{
			"topicName": "test/topic1",
			"reasonCode": 1
		},
		{
			"topicName": "$invalid/reserved/topic",
			"reasonCode": 143
		}
	],
	"clientId": "abf27092886e49a8a5c1922749736453",
	"principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
	"sourceIp": "205.251.233.181",
	"sourcePort": 13490
}
```

MQTT 5 Subscribe オペレーションでは、[CloudWatch Logs の共通属性](#cwl-common-attributes) および [MQTT 3 Subscribe ログエントリ属性](#log-mb-connect.example.subscribe)に加えて、MQTT 5 `Subscribe` ログエントリに次の属性が含まれます。

サブスクリプション  
Subscribe リクエストでリクエストされたトピックと個々の MQTT 5 理由コード間のマッピングのリスト。詳細については、「[MQTT 理由コード](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html#mqtt5-reason-codes)」を参照してください。

### Unsubscribe ログエントリ
<a name="log-mb-unsubscribe"></a>

 AWS IoT メッセージブローカーは、MQTT クライアントが MQTT トピックのサブスクリプションを解除`Unsubscribe`すると、 `eventType`の でログエントリを生成します。

#### MQTT unsubscribe ログエントリの例
<a name="log-mb-connect.example.unsubscribe"></a>

```
{
    "timestamp": "2024-08-20 22:53:32.844",
    "logLevel": "INFO",
    "traceId": "db6bd09a-2c3f-1cd2-27cc-fd6b1ce03b58",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "Unsubscribe",
    "protocol": "MQTT",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "sourceIp": "205.251.233.181",
    "sourcePort": 13490
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`Unsubscribe`ログエントリには次の属性が含まれます。

protocol  
リクエストを行うために使用されるプロトコル。値は常に `MQTT` です。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

sourceIp  
リクエストが発生した IP アドレス。

sourcePort  
リクエストが発生したポート。

## サーバー証明書 OCSP ログエントリ
<a name="server-ocsp-logs"></a>

AWS IoT Core は、次のイベントのログエントリを生成します。

**Topics**
+ [RetrieveOCSPStapleData ログエントリ](#log-retrieve-ocsp-staple)
+ [プライベートエンドポイントの RetrieveOCSPStapleData ログエントリ](#log-retrieve-ocsp-staple-private-endpoint)

### RetrieveOCSPStapleData ログエントリ
<a name="log-retrieve-ocsp-staple"></a>

AWS IoT Core サーバーが OCSP ステープルデータを取得する`eventType``RetrieveOCSPStapleData`と、 は のログエントリを生成します。

#### RetrieveOCSPStapleData ログエントリの例
<a name="log-retrieve-ocsp-staple.example"></a>

以下は `Success` のログエントリの例です。

```
{
	"timestamp": "2024-01-30 15:39:30.961",
	"logLevel": "INFO",
	"traceId": "180532b7-0cc7-057b-687a-5ca1824838f5",
	"accountId": "123456789012",
	"status": "Success",
	"eventType": "RetrieveOCSPStapleData",
	"domainConfigName": "test-domain-config-name",
	"connectionDetails": {
		"httpStatusCode": "200",
		"ocspResponderUri": "http://ocsp.example.com",
		"sourceIp": "205.251.233.181",
		"targetIp": "250.15.5.3"
	},
	"ocspRequestDetails": {
		"requesterName": "iot.amazonaws.com",
		"requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01"
	},
	"ocspResponseDetails": {
		"responseCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01",
		"ocspResponseStatus": "successful",
		"certStatus": "good",
		"signature": "4C:6F:63:61:6C:20:52:65:73:70:6F:6E:64:65:72:20:53:69:67:6E:61:74:75:72:65",
		"thisUpdateTime": "Jan 31 01:21:02 2024 UTC",
		"nextUpdateTime": "Feb 02 00:21:02 2024 UTC",
		"producedAtTime": "Jan 31 01:37:03 2024 UTC",
		"stapledDataPayloadSize": "XXX"
	}
}
```

以下は `Failure` のログエントリの例です。

```
{
	"timestamp": "2024-01-30 15:39:30.961",
	"logLevel": "ERROR",
	"traceId": "180532b7-0cc7-057b-687a-5ca1824838f5",
	"accountId": "123456789012",
	"status": "Failure",
	"reason": "A non 2xx HTTP response was received from the OCSP responder.",
	"eventType": "RetrieveOCSPStapleData",
	"domainConfigName": "test-domain-config-name",
	"connectionDetails": {
		"httpStatusCode": "444",
		"ocspResponderUri": "http://ocsp.example.com",
		"sourceIp": "205.251.233.181",
		"targetIp": "250.15.5.3"
	},
	"ocspRequestDetails": {
		"requesterName": "iot.amazonaws.com",
		"requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01"
	}
}
```

`RetrieveOCSPStaple` オペレーションでは、 [CloudWatch Logs の共通属性](#cwl-common-attributes) に加えて、ログエントリには次の属性が含まれます。

理由  
オペレーションが失敗する理由。

domainConfigName  
ドメイン構成の名前。

connectionDetails  
接続の詳細の簡潔な説明。  
+ httpStatusCode

  サーバーに対するクライアントのリクエストに応じて OCSP レスポンダーによって返される HTTP ステータスコード。
+ ocspResponderUri

  サーバー証明書から AWS IoT Core 取得する OCSP レスポンダー URI。
+ sourceIp

   AWS IoT Core サーバーのソース IP アドレス。
+ targetIp

  OCSP レスポンダーのターゲット IP アドレス。

ocspRequestDetails  
OCSP リクエストの詳細。  
+ requesterName

  OCSP レスポンダーにリクエストを送信する AWS IoT Core サーバーの識別子。
+ requestCertId

  リクエストの証明書 ID。これは、OCSP レスポンスがリクエストされている証明書の ID です。

ocspResponseDetails  
OCSP レスポンスの詳細。  
+ responseCertId

  OCSP レスポンスの証明書 ID。
+ ocspResponseStatus

  OCSP レスポンスのステータス。
+ certStatus

  証明書のステータス。
+ 署名

  信頼されたエンティティによるレスポンスに適用される署名。
+ thisUpdateTime

  表示されるステータスが正しいことがわかっている時刻。
+ nextUpdateTime

  証明書のステータスに関する新しい情報が利用可能になる時刻またはそれ以前。
+ producedAtTime

  OCSP レスポンダーがこのレスポンスに署名した時刻。
+ stapledDataPayloadSize

  ステープルデータのペイロードサイズ。

### プライベートエンドポイントの RetrieveOCSPStapleData ログエントリ
<a name="log-retrieve-ocsp-staple-private-endpoint"></a>

AWS IoT Core サーバーが OCSP ステープルデータを取得する`eventType``RetrieveOCSPStapleData`と、 は のログエントリを生成します。

#### プライベートエンドポイントの RetrieveOCSPStapleData ログエントリの例
<a name="log-retrieve-ocsp-staple-private-endpoint.example"></a>

以下は `Success` のログエントリの例です。

```
{
	"timestamp": "2024-01-30 15:39:30.961",
	"logLevel": "INFO",
	"traceId": "180532b7-0cc7-057b-687a-5ca1824838f5",
	"accountId": "123456789012",
	"status": "Success",
	"eventType": "RetrieveOCSPStapleData",
	"domainConfigName": "test-domain-config-name",
        "lambdaDetails": {
        "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
        "sourceArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/testDomainConfigure/6bzfg"
      },
        "authorizedResponderArn": "arn:aws:acm:us-west-2:123456789012:certificate/certificate_ID",
	"ocspRequestDetails": {
		"requesterName": "iot.amazonaws.com",
		"requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01"
	},
	"ocspResponseDetails": {
		"responderId": "04:C1:3F:8F:27:D6:49:13:F8:DE:B2:36:9D:85:8E:F8:31:3B:A6:D0"
               "responseCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01",
		"ocspResponseStatus": "successful",
		"certStatus": "good",
		"signature": "4C:6F:63:61:6C:20:52:65:73:70:6F:6E:64:65:72:20:53:69:67:6E:61:74:75:72:65",
		"thisUpdateTime": "Jan 31 01:21:02 2024 UTC",
		"nextUpdateTime": "Feb 02 00:21:02 2024 UTC",
		"producedAtTime": "Jan 31 01:37:03 2024 UTC",
		"stapledDataPayloadSize": "XXX"
	}
}
```

以下は `Failure` のログエントリの例です。

```
{
	"timestamp": "2024-01-30 15:39:30.961",
	"logLevel": "ERROR",
	"traceId": "180532b7-0cc7-057b-687a-5ca1824838f5",
	"accountId": "123456789012",
	"status": "Failure",
	"reason": "The payload returned by the Lambda function exceeds the maximum response size of 7 kilobytes.",
	"eventType": "RetrieveOCSPStapleData",
	"domainConfigName": "test-domain-config-name",
        "lambdaDetails": {
        "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
        "sourceArn": "arn:aws:iot:us-west-2:123456789012:domainconfiguration/testDomainConfigure/6bzfg"
      },
        "authorizedResponderArn": "arn:aws:acm:us-west-2:123456789012:certificate/certificate_ID",
	 "ocspRequestDetails": {
		"requesterName": "iot.amazonaws.com",
		"requestCertId": "30:3A:30:09:06:05:2B:0E:03:02:1A:05:00:04:14:9C:FF:90:A1:97:B0:4D:6C:01:B9:69:96:D8:3E:E7:A2:51:7F:30:C4:04:14:7C:84:78:AE:12:58:71:38:0C:65:FC:17:77:7D:14:DD:69:73:71:46:02:01:01"
	}
}
```

`RetrieveOCSPStaple` オペレーションでは、[CloudWatch Logs の共通属性](#cwl-common-attributes)および [RetrieveOCSPStapleData ログエントリ](https://docs.aws.amazon.com//iot/latest/developerguide/cwl-format.html#log-retrieve-ocsp-staple)の属性に加えて、プライベートエンドポイントのログエントリには次の属性が含まれます。

lambdaDetails  
Lambda 関数の詳細。  
+ LambdaArn

   Lambda 関数の ARN。
+ sourceArn

  ドメイン設定の ARN。

authorizedResponderArn  
ドメイン設定で設定されている場合、オーソライザーレスポンダーの ARN。

## Device Shadow のログエントリ
<a name="device-shadow-logs"></a>

 AWS IoT Device Shadow サービスは、次のイベントのログエントリを生成します。

**Topics**
+ [DeleteThingShadow ログエントリ](#log-shadow-delete-thing-shadow)
+ [GetThingShadow ログエントリ](#log-shadow-get-thing-shadow)
+ [UpdateThingShadow ログエントリ](#log-shadow-update-thing-shadow)

### DeleteThingShadow ログエントリ
<a name="log-shadow-delete-thing-shadow"></a>

Device Shadow サービスは、デバイスのシャドウ削除リクエストを受信すると、`eventType` という `DeleteThingShadow` のログエントリを生成します。

#### DeleteThingShadow ログエントリの例
<a name="log-shadow-delete-thing-shadow.example"></a>

```
{
    "timestamp": "2017-08-07 18:47:56.664",
    "logLevel": "INFO",
    "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "DeleteThingShadow",
    "protocol": "MQTT",
    "deviceShadowName": "Jack",
    "topicName": "$aws/things/Jack/shadow/delete"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`DeleteThingShadow`ログエントリには次の属性が含まれます。

deviceShadowName  
更新する Shadow の名前。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
公開されたリクエストのトピックの名前。

### GetThingShadow ログエントリ
<a name="log-shadow-get-thing-shadow"></a>

デバイスシャドウサービスは、シャドウの取得リクエストを受信すると、`eventType` という `GetThingShadow` のログエントリを生成します。

#### GetThingShadow ログエントリの例
<a name="log-shadow-get-thing-shadow.example"></a>

```
{
    "timestamp": "2017-08-09 17:56:30.941",
    "logLevel": "INFO",
    "traceId": "b575f19a-97a2-cf72-0ed0-c64a783a2504",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "GetThingShadow",
    "protocol": "MQTT",
    "deviceShadowName": "MyThing",
    "topicName": "$aws/things/MyThing/shadow/get"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`GetThingShadow`ログエントリには次の属性が含まれます。

deviceShadowName  
リクエストした Shadow の名前。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
公開されたリクエストのトピックの名前。

### UpdateThingShadow ログエントリ
<a name="log-shadow-update-thing-shadow"></a>

Device Shadow サービスは、デバイスのシャドウ更新リクエストを受信すると、`eventType` という `UpdateThingShadow` のログエントリを生成します。

#### UpdateThingShadow ログエントリの例
<a name="log-shadow-update-thing-shadow.example"></a>

```
{
    "timestamp": "2017-08-07 18:43:59.436",
    "logLevel": "INFO",
    "traceId": "d0074ba8-0c4b-a400-69df-76326d414c28",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "UpdateThingShadow",
    "protocol": "MQTT",
    "deviceShadowName": "Jack",
    "topicName": "$aws/things/Jack/shadow/update"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`UpdateThingShadow`ログエントリには次の属性が含まれます。

deviceShadowName  
更新する Shadow の名前。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
公開されたリクエストのトピックの名前。

## ルールエンジンのログエントリ
<a name="rule-engine-logs"></a>

 AWS IoT ルールエンジンは、次のイベントのログを生成します。

**Topics**
+ [FunctionExecution ログエントリ](#log-rules-fn-exec)
+ [RuleExecution ログエントリ](#log-rules-rule-ex)
+ [RuleMatch ログエントリ](#log-rules-rule-match)
+ [RuleExecutionThrottled ログエントリ](#log-rules-rule-msg-throttled)
+ [RuleNotFound ログエントリ](#log-rules-rule-not-found)
+ [StartingRuleExecution ログエントリ](#log-rules-start-rule-ex)

### FunctionExecution ログエントリ
<a name="log-rules-fn-exec"></a>

ルールエンジンは、ルールの SQL クエリが外部関数を呼び出すと､`eventType` という `FunctionExecution` のログエントリを生成します。外部関数は、ルールのアクションが AWS IoT または他のウェブサービスに対して HTTP リクエストを行うときに呼び出されます (たとえば、 `get_thing_shadow` または を呼び出す)`machinelearning_predict`。

#### FunctionExecution ログエントリの例
<a name="log-rules-fn-exec.example"></a>

```
{
    "timestamp": "2017-07-13 18:33:51.903",
    "logLevel": "DEBUG",
    "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5",
    "status": "Success",
    "eventType": "FunctionExecution",
    "clientId": "N/A",
    "topicName":"rules/test",
    "ruleName": "ruleTestPredict",
    "ruleAction": "MachinelearningPredict",
    "resources": {
        "ModelId": "predict-model"
    },
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`FunctionExecution`ログエントリには次の属性が含まれます。

clientId  
 `N/A` ログの `FunctionExecution`｡

principalId  
リクエストを実行するプリンシパルの ID。

リソース  
ルールのアクションによって使用されるリソースの集合。

ruleName  
一致ルールの名前。

topicName  
サブスクライブされたトピックの名前。

### RuleExecution ログエントリ
<a name="log-rules-rule-ex"></a>

 AWS IoT ルールエンジンがルールのアクションをトリガーすると、`RuleExecution`ログエントリが生成されます。

#### RuleExecution ログエントリの例
<a name="log-rules-rule-ex.example"></a>

```
{
    "timestamp": "2017-08-10 16:32:46.070",
    "logLevel": "INFO",
    "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "RuleExecution",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "topicName": "rules/test",
    "ruleName": "JSONLogsRule",
    "ruleAction": "RepublishAction",
    "resources": {
        "RepublishTopic": "rules/republish"
    },
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167"
}
```

#### バッチログエントリを使用した RuleExecution の例
<a name="log-rules-rule-ex-batching.example"></a>

```
{
    "logLevel": "INFO",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "RuleExecution",
    "ruleName": "rule_test",
    "ruleAction": "HttpAction",
    "resources": {
        "Url": "https://example.com",
        "ConfirmationUrl": "https://example.com"
    },
    "details": "HttpAction made a request to the specified endpoint",
    "batchDetails": {
        "timestamps": [
            "1234567890123",
            "1234567890123",
            "1234567890123"
        ],
        "traceIds": [
            "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
            "30aa7ccc-1d23-0b97-aa7b-76196d83537c",
            "30aa7ccc-1d23-0b97-aa7b-76196d83537d"
        ],
        "clientIds": [
            "N/A",
            "N/A",
            "N/A"
        ],
        "topicNames": [
            "topic/ruletest",
            "topic/ruletest",
            "topic/ruletest"
        ],
        "principalIds": [
            "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
            "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
            "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167"
        ],
        "batchSize": 3,
        "batchSizeInBytes": 114
    }
}
```

[CloudWatch Logs の共通属性](#cwl-common-attributes) に加えて、`RuleExecution` ログ項目には次の属性が含まれています。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

リソース  
ルールのアクションによって使用されるリソースの集合。

ruleAction  
トリガーされるアクションの名前。

ruleName  
一致ルールの名前。

topicName  
サブスクライブされたトピックの名前。

### RuleMatch ログエントリ
<a name="log-rules-rule-match"></a>

 AWS IoT ルールエンジンは、メッセージブローカーがルールに一致するメッセージを受信する`RuleMatch`と、 `eventType` の を持つログエントリを生成します。

#### RuleMatch ログエントリの例
<a name="log-rules-rule-match.example"></a>

```
{
    "timestamp": "2017-08-10 16:32:46.002",
    "logLevel": "INFO",
    "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "RuleMatch",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "topicName": "rules/test",
    "ruleName": "JSONLogsRule",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`RuleMatch`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

ruleName  
一致ルールの名前。

topicName  
サブスクライブされたトピックの名前。

### RuleExecutionThrottled ログエントリ
<a name="log-rules-rule-msg-throttled"></a>

実行がスロットリングされると、 AWS IoT ルールエンジンは `eventType`の を使用してログエントリを生成します`RuleExecutionThrottled`。

#### RuleExecutionThrottled ログエントリの例
<a name="log-rules-rule-msg-throttled.example"></a>

```
{
    "timestamp": "2017-10-04 19:25:46.070",
    "logLevel": "ERROR",
    "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
    "accountId": "123456789012",
    "status": "Failure",
    "eventType": "RuleExecutionThrottled",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "topicName": "$aws/rules/example_rule",
    "ruleName": "example_rule",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "reason": "RuleExecutionThrottled",
    "details": "Exection of Rule example_rule throttled"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`RuleExecutionThrottled`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

details  
エラーの簡単な説明。

principalId  
リクエストを実行するプリンシパルの ID。

理由  
文字列「RuleExecutionThrottled」。

ruleName  
トリガーされるルールの名前。

topicName  
発行されたトピックの名前。

### RuleNotFound ログエントリ
<a name="log-rules-rule-not-found"></a>

 AWS IoT ルールエンジンは、指定された名前のルールを見つけることができない場合、 `eventType`の を持つログエントリを生成します`RuleNotFound`。

#### RuleNotfound ログエントリの例
<a name="log-rules-rule-not-found.example"></a>

```
{
    "timestamp": "2017-10-04 19:25:46.070",
    "logLevel": "ERROR",
    "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
    "accountId": "123456789012",
    "status": "Failure",
    "eventType": "RuleNotFound",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "topicName": "$aws/rules/example_rule",
    "ruleName": "example_rule",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167",
    "reason": "RuleNotFound",
    "details": "Rule example_rule not found"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`RuleNotFound`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

details  
エラーの簡単な説明。

principalId  
リクエストを実行するプリンシパルの ID。

理由  
文字列 "RuleNotFound"。

ruleName  
見つからなかったルールの名前。

topicName  
発行されたトピックの名前。

### StartingRuleExecution ログエントリ
<a name="log-rules-start-rule-ex"></a>

 AWS IoT ルールエンジンがルールのアクションのトリガーを開始すると、 `eventType` の を持つログエントリが生成されます`StartingRuleExecution`。

#### StartingRuleExecution ログエントリの例
<a name="log-rules-start-rule-ex.example"></a>

```
{
    "timestamp": "2017-08-10 16:32:46.002",
    "logLevel": "DEBUG",
    "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "StartingRuleExecution",
    "clientId": "abf27092886e49a8a5c1922749736453",
    "topicName": "rules/test",
    "ruleName": "JSONLogsRule",
    "ruleAction": "RepublishAction",
    "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`rule-`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

principalId  
リクエストを実行するプリンシパルの ID。

ruleAction  
トリガーされるアクションの名前。

ruleName  
一致ルールの名前。

topicName  
サブスクライブされたトピックの名前。

## ジョブのログエントリ
<a name="job-logs"></a>

 AWS IoT ジョブサービスは、次のイベントのログエントリを生成します。デバイスからの MQTT または HTTP リクエストが受信されたときに、ログエントリが生成されます。

**Topics**
+ [DescribeJobExecution ログエントリ](#log-job-describe-job-ex)
+ [GetPendingJobExecution ログエントリ](#log-job-get-pending-job-ex)
+ [ReportFinalJobExecutionCount ログエントリ](#log-job-report-final-job-ex-count)
+ [StartNextPendingJobExecution ログエントリ](#log-job-start-next-pending-job-ex)
+ [UpdateJobExecution ログエントリ](#log-job-update-job-ex)

### DescribeJobExecution ログエントリ
<a name="log-job-describe-job-ex"></a>

 AWS IoT Jobs サービスは、サービスがジョブ実行を記述するリクエストを受信する`DescribeJobExecution`と、 `eventType`の を持つログエントリを生成します。

#### DescribeJobExecution ログエントリの例
<a name="log-job-describe-job-ex.example"></a>

```
{
    "timestamp": "2017-08-10 19:13:22.841",
    "logLevel": "DEBUG",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "DescribeJobExecution",
    "protocol": "MQTT",
    "clientId": "thingOne",
    "jobId": "002",
    "topicName": "$aws/things/thingOne/jobs/002/get",
    "clientToken": "myToken",
    "details": "The request status is SUCCESS."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`GetJobExecution`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

clientToken  
リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、[べき等を確実にする方法](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html)のページを参照してください。

details  
Jobs サービスからの追加情報。

jobId  
ジョブ実行のジョブ ID｡

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
リクエストを行うために使用されるトピック。

### GetPendingJobExecution ログエントリ
<a name="log-job-get-pending-job-ex"></a>

 AWS IoT Jobs サービスは、サービス`GetPendingJobExecution`がジョブ実行リクエストを受信すると、 `eventType` の を持つログエントリを生成します。

#### GetPendingJobExecution ログエントリの例
<a name="log-job-get-pending-job-ex.example"></a>

```
{
    "timestamp": "2018-06-13 17:45:17.197",
    "logLevel": "DEBUG",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "GetPendingJobExecution",
    "protocol": "MQTT",
    "clientId": "299966ad-54de-40b4-99d3-4fc8b52da0c5",
    "topicName": "$aws/things/299966ad-54de-40b4-99d3-4fc8b52da0c5/jobs/get",
    "clientToken": "24b9a741-15a7-44fc-bd3c-1ff2e34e5e82",
    "details": "The request status is SUCCESS."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`GetPendingJobExecution`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

clientToken  
リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、[べき等を確実にする方法](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html)のページを参照してください。

details  
Jobs サービスからの追加情報。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
サブスクライブされたトピックの名前。

### ReportFinalJobExecutionCount ログエントリ
<a name="log-job-report-final-job-ex-count"></a>

 AWS IoT Jobs サービスは、`ReportFinalJobExecutionCount`ジョブが完了すると `entryType` のログエントリを生成します。

#### ReportFinalJobExecutionCount ログエントリの例
<a name="log-job-report-final-job-ex-count.example"></a>

```
{
    "timestamp": "2017-08-10 19:44:16.776",
    "logLevel": "INFO",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "ReportFinalJobExecutionCount",
    "jobId": "002",
    "details": "Job 002 completed. QUEUED job execution count: 0 IN_PROGRESS job execution count: 0 FAILED job execution count: 0 SUCCEEDED job execution count: 1 CANCELED job execution count: 0 REJECTED job execution count: 0 REMOVED job execution count: 0"
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`ReportFinalJobExecutionCount`ログエントリには次の属性が含まれます。

details  
Jobs サービスからの追加情報。

jobId  
ジョブ実行のジョブ ID｡

### StartNextPendingJobExecution ログエントリ
<a name="log-job-start-next-pending-job-ex"></a>

保留中の次のジョブ実行を開始するリクエストを受信すると、 AWS IoT ジョブサービスは `eventType`の を使用してログエントリを生成します`StartNextPendingJobExecution`。

#### StartNextPendingJobExecution ログエントリの例
<a name="log-job-start-next-pending-job-ex.example"></a>

```
{
    "timestamp": "2018-06-13 17:49:51.036",
    "logLevel": "DEBUG",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "StartNextPendingJobExecution",
    "protocol": "MQTT",
    "clientId": "95c47808-b1ca-4794-bc68-a588d6d9216c",
    "topicName": "$aws/things/95c47808-b1ca-4794-bc68-a588d6d9216c/jobs/start-next",
    "clientToken": "bd7447c4-3a05-49f4-8517-dd89b2c68d94",
    "details": "The request status is SUCCESS."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`StartNextPendingJobExecution`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

clientToken  
リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、[べき等を確実にする方法](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html)のページを参照してください。

details  
Jobs サービスからの追加情報。

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
リクエストを行うために使用されるトピック。

### UpdateJobExecution ログエントリ
<a name="log-job-update-job-ex"></a>

 AWS IoT Jobs サービスは、サービス`UpdateJobExecution`がジョブ実行の更新リクエストを受信すると、 `eventType` の を持つログエントリを生成します。

#### UpdateJobExecution ログエントリの例
<a name="log-job-update-job-ex.example"></a>

```
{
    "timestamp": "2017-08-10 19:25:14.758",
    "logLevel": "DEBUG",
    "accountId": "123456789012",
    "status": "Success",
    "eventType": "UpdateJobExecution",
    "protocol": "MQTT",
    "clientId": "thingOne",
    "jobId": "002",
    "topicName": "$aws/things/thingOne/jobs/002/update",
    "clientToken": "myClientToken",
    "versionNumber": "1",
    "details": "The destination status is IN_PROGRESS. The request status is SUCCESS."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`UpdateJobExecution`ログエントリには次の属性が含まれます。

clientId  
リクエストを実行するクライアントの ID。

clientToken  
リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、[べき等を確実にする方法](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html)のページを参照してください。

details  
Jobs サービスからの追加情報。

jobId  
ジョブ実行のジョブ ID｡

protocol  
リクエストを行うために使用されるプロトコル。有効な値は `MQTT` または `HTTP` です。

topicName  
リクエストを行うために使用されるトピック。

versionNumber  
ジョブ実行のバージョン。

## デバイスプロビジョニングのログエントリ
<a name="provision-logs"></a>

 AWS IoT Device Provisioning サービスは、次のイベントのログを生成します。

**Topics**
+ [GetDeviceCredentials ログエントリ](#log-provision-get-device-credentials)
+ [ProvisionDevice ログエントリ](#log-provision-provision-device)

### GetDeviceCredentials ログエントリ
<a name="log-provision-get-device-credentials"></a>

 AWS IoT Device Provisioning サービスは、クライアントが を呼び出す`eventType``GetDeviceCredential`ときに のログエントリを生成します`GetDeviceCredential`。



#### GetDeviceCredentials ログエントリの例
<a name="log-provision-get-device-credentials.example"></a>

```
{
  "timestamp" : "2019-02-20 20:31:22.932",
  "logLevel" : "INFO",
  "traceId" : "8d9c016f-6cc7-441e-8909-7ee3d5563405",
  "accountId" : "123456789101",
  "status" : "Success",
  "eventType" : "GetDeviceCredentials",
  "deviceCertificateId" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "details" : "Additional details about this log."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`GetDeviceCredentials`ログエントリには次の属性が含まれます。

details  
エラーの簡単な説明。

deviceCertificateId  
デバイス証明書の ID。

### ProvisionDevice ログエントリ
<a name="log-provision-provision-device"></a>

 AWS IoT Device Provisioning サービスは、クライアントが を呼び出す`eventType``ProvisionDevice`ときに のログエントリを生成します`ProvisionDevice`。

#### ProvisionDevice ログエントリの例
<a name="log-provision-provision-device.example"></a>

```
{
  "timestamp" : "2019-02-20 20:31:22.932",
  "logLevel" : "INFO",
  "traceId" : "8d9c016f-6cc7-441e-8909-7ee3d5563405",
  "accountId" : "123456789101",
  "status" : "Success",
  "eventType" : "ProvisionDevice",
  "provisioningTemplateName" : "myTemplate",
  "deviceCertificateId" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "details" : "Additional details about this log."
 }
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`ProvisionDevice`ログエントリには次の属性が含まれます。

details  
エラーの簡単な説明。

deviceCertificateId  
デバイス証明書の ID。

provisioningTemplateName  
プロビジョニングテンプレートの名前。

## モノの動的グループのログエントリ
<a name="dynamic-group-logs"></a>

AWS IoT Dynamic Thing Groups は、次のイベントのログを生成します。

**Topics**
+ [AddThingToDynamicThingGroupsFailed ログエントリ](#log-dynthing-add-thing-to-dynamic-thing-groups-failed)

### AddThingToDynamicThingGroupsFailed ログエントリ
<a name="log-dynthing-add-thing-to-dynamic-thing-groups-failed"></a>

 AWS IoT が指定された動的グループにモノを追加できなかった場合、 `eventType`の を使用してログエントリを生成します`AddThingToDynamicThingGroupsFailed`。この場合、モノがモノの動的グループの条件を満たしていたにもかかわらず、動的グループに追加できなかったか、動的グループから削除されたことを意味します。これは、次の原因で発生した可能性があります。
+ モノが既に最大数のグループに属している。
+ **--override-dynamic-groups** オプションを使用してモノがモノの静的グループに追加された。これを可能にするために、モノの動的なグループから削除された。

詳細については、「[モノの動的グループの制限と競合](dynamic-thing-groups.md#dynamic-thing-group-limitations)」を参照してください。

#### AddThingToDynamicThingGroupsFailed ログエントリの例
<a name="log-dynthing-add-thing-to-dynamic-thing-groups-failed.example"></a>

この例は、`AddThingToDynamicThingGroupsFailed` エラーのログエントリを示しています。この例では、*TestThing* は「`dynamicThingGroupNames`」にリストされているモノの動的グループに追加される条件を満たしていましたが、`reason` で説明されているとおり、これらの動的グループに追加できませんでした。

```
{
 "timestamp": "2020-03-16 22:24:43.804",
 "logLevel": "ERROR",
 "traceId": "70b1f2f5-d95e-f897-9dcc-31e68c3e1a30",
 "accountId": "57EXAMPLE833",
 "status": "Failure",
 "eventType": "AddThingToDynamicThingGroupsFailed",
 "thingName": "TestThing",
 "dynamicThingGroupNames": [
  "DynamicThingGroup11",
  "DynamicThingGroup12",
  "DynamicThingGroup13",
  "DynamicThingGroup14"
 ],
 "reason": "The thing failed to be added to the given dynamic thing group(s) because the thing already belongs to the maximum allowed number of groups."
}
```

に加えて[CloudWatch Logs の共通属性](#cwl-common-attributes)、`AddThingToDynamicThingGroupsFailed`ログエントリには次の属性が含まれます。

dynamicThingGroupNames  
モノを追加できなかったモノの動的グループの配列。

理由  
モノをモノの動的グループに追加できなかった理由。

thingName  
モノの動的グループに追加できなかったモノの名前。

## フリートのインデックス作成ログエントリ
<a name="fleet-indexing-logs"></a>

AWS IoT フリートインデックス作成は、次のイベントのログエントリを生成します。

**Topics**
+ [NamedShadowCountForDynamicGroupQueryLimitExceeded ログエントリ](#log-named-shadow-dynamic-group)

### NamedShadowCountForDynamicGroupQueryLimitExceeded ログエントリ
<a name="log-named-shadow-dynamic-group"></a>

動的グループ内のデータソース固有ではないクエリ条件では、モノごとに最大 25 の名前付きシャドウが処理されます。モノに対してこの制限に違反すると、`NamedShadowCountForDynamicGroupQueryLimitExceeded` イベントタイプが出力されます。

#### NamedShadowCountForDynamicGroupQueryLimitExceeded ログエントリの例
<a name="log-named-shadow-dynamic-group.example"></a>

この例は、`NamedShadowCountForDynamicGroupQueryLimitExceeded` エラーのログエントリを示しています。この例では、`reason` フィールドに示されているように、すべての値に基づいた `DynamicGroup` の結果は不正確である可能性があります。

```
{
"timestamp": "2020-03-16 22:24:43.804",
"logLevel": "ERROR",
"traceId": "70b1f2f5-d95e-f897-9dcc-31e68c3e1a30",
"accountId": "571032923833",
"status": "Failure",
"eventType": "NamedShadowCountForDynamicGroupQueryLimitExceeded",
"thingName": "TestThing",
"reason": "A maximum of 25 named shadows per thing are processed for non-data source specific query terms in dynamic groups."
}
```

## CloudWatch Logs の共通属性
<a name="cwl-common-attributes"></a>

すべての CloudWatch Logs ログエントリには、以下の属性が含まれます。

accountId  
 AWS アカウント ID。

eventType  
ログが生成されたイベントタイプ。イベントタイプの値は、ログエントリが生成される原因となったイベントによって異なります。各ログエントリの説明には、そのログエントリの `eventType` の値が含まれます。

logLevel  
使用されているログレベル。詳細については、「[ログレベル](configure-logging.md#log-level)」を参照してください。

status  
リクエストのステータス。

timestamp  
 AWS IoT メッセージブローカーに接続した時刻のクライアントの、人間が読み取り可能な UNIX タイムスタンプ。

traceId  
特定のリクエストのすべてのログを関連付けるために使用できる、ランダムに生成された識別子。

# Amazon CloudWatch にデバイス側のログをアップロード
<a name="upload-device-logs-to-cloudwatch"></a>

過去のデバイス側のログを Amazon CloudWatch にアップロードして、現場でのデバイスのアクティビティを監視および分析できます。デバイス側のログには、システム、アプリケーション、およびデバイスログファイルを含めることができます。このプロセスでは、CloudWatch Logs ルールアクションパラメータを使用して、デバイス側のログを顧客定義の[ロググループ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)に公開します。

## 仕組み
<a name="upload-process-overview"></a>

このプロセスは、 AWS IoT デバイスがフォーマットされたログファイルを含む MQTT メッセージを AWS IoT トピックに送信したときに開始されます。 AWS IoT ルールはメッセージトピックをモニタリングし、定義した CloudWatch Logs グループにログファイルを送信します。その後、情報を確認して分析できます。

**Topics**
+ [MQTT トピック](#upload-mqtt-topics-overview)
+ [ルールアクション](#upload-rule-action-overview)

### MQTT トピック
<a name="upload-mqtt-topics-overview"></a>

ログの発行に使用する MQTT トピック名前空間を選択します。一般的なトピックスペース、`$aws/rules/things/thing_name/logs` にはこの形式を使用し、エラートピック、`$aws/rules/things/thing_name/logs/errors` にはこの形式を使用することをお勧めします。ログとエラートピックの命名構造は推奨されますが、必須ではありません。詳細については、「[AWS IoT Coreのための MQTT トピックの設計](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html)」を参照してください。

推奨される共通トピックスペースを使用すると、 AWS IoT 基本的な取り込み予約トピックを利用できます。 AWS IoT 基本的な取り込みは、 AWS IoT ルールアクションでサポートされている AWS サービスにデバイスデータを安全に送信します。これにより、パブリッシュ/サブスクライブのメッセージブローカーが取り込みパスから除外され、コスト効率が向上します。詳細については、「[基本的な取り込みによるメッセージングコストの削減](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)」を参照してください。

batchMode を使用してログファイルをアップロードする場合、メッセージは UNIX タイムスタンプとメッセージを含む特定の形式に従う必要があります。詳細については、「[CloudWatch Logs rule action](https://docs.aws.amazon.com/iot/latest/developerguide/cloudwatch-logs-rule-action.html)」(CloudWatch Logs ルールアクション) 内の「[MQTT message format requirements for batchMode](https://docs.aws.amazon.com/iot/latest/developerguide/cloudwatch-logs-rule-action.html#cloudwatch-logs-rule-action-message-format)」(BatchMode の MQTT メッセージフォーマット要件) トピックを参照してください。

### ルールアクション
<a name="upload-rule-action-overview"></a>

がクライアントデバイスから MQTT メッセージ AWS IoT を受信すると、 AWS IoT ルールはユーザー定義トピックをモニタリングし、定義した CloudWatch ロググループにコンテンツを公開します。このプロセスでは、CloudWatch Logs ルールアクションを使用して MQTT のログファイルのバッチを監視します。詳細については、[CloudWatch Logs](https://docs.aws.amazon.com/iot/latest/developerguide/cloudwatch-logs-rule-action.html) AWS IoT ルールアクション」を参照してください。

#### バッチモード
<a name="upload-batch-mode-overview"></a>

 `batchMode` は、 AWS IoT CloudWatch Logs ルールアクション内のブールパラメータです。このパラメータはオプションで、デフォルトはオフ (`false`) です。デバイス側のログファイルをバッチでアップロードするには、 AWS IoT ルールの作成時にこのパラメータを (`true`) をオンにする必要があります。詳細については、[AWS IoT ルールアクション](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html)セクションの「[CloudWatch Logs](https://docs.aws.amazon.com/iot/latest/developerguide/cloudwatch-logs-rule-action.html)」を参照してください。

# AWS IoT ルールを使用したデバイス側のログのアップロード
<a name="uploading-logs-rules-action-procedure"></a>

 AWS IoT ルールエンジンを使用して、既存のデバイス側のログファイル (システム、アプリケーション、デバイスクライアントログ) から Amazon CloudWatch にログレコードをアップロードできます。デバイス側のログが MQTT トピックに公開されると、CloudWatch Logs ログルールアクションはメッセージを CloudWatch Logs に転送します。このプロセスでは、ルールアクション `batchMode`パラメータをオン (`true` に設定) にして、デバイスログをバッチでアップロードする方法の概要を説明します。

CloudWatch へのデバイス側のログのアップロードを開始するには、次の前提条件を満たしてください。

## 前提条件
<a name="uploading-logs-rules-prerequisites"></a>

開始する前に、以下を実行します。
+ モノ AWS IoT Core として に登録されているターゲット IoT デバイスを少なくとも 1 つ作成します AWS IoT 。詳細については、「[モノのオブジェクトを作成する](https://docs.aws.amazon.com/iot/latest/developerguide/create-iot-resources.html#create-aws-thing)」を参照してください。
+ 取り込みやエラーが起きる MQTT トピックスペースを決定します。MQTT トピックと推奨される命名規則の詳細については、「[Upload device-side logs to Amazon CloudWatch](https://docs.aws.amazon.com/iot/latest/developerguide/upload-device-logs-to-cloudwatch.html)」(Amazon CloudWatch へのデバイス側のログのアップロード) の「[MQTT トピック](upload-device-logs-to-cloudwatch.md#upload-mqtt-topics-overview) [MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/upload-device-logs-to-cloudwatch.html#upload-mqtt-topics-overview)」(MQTT トピック) セクションを参照してください。

前提条件の詳細については、「[Upload device-side logs to CloudWatch](https://docs.aws.amazon.com/iot/latest/developerguide/upload-device-logs-to-cloudwatch)」(CloudWatch へのデバイス側のログのアップロード) を参照してください。

## CloudWatch Logs ロググループの作成
<a name="uploading-logs-rules-setup-log-group"></a>

CloudWatch ロググループを作成するには、次のステップを完了してください。 AWS マネジメントコンソール または AWS Command Line Interface () でステップを実行するかどうかに応じて、適切なタブを選択しますAWS CLI。

------
#### [ AWS マネジメントコンソール ]

**を使用して CloudWatch ロググループを作成するには AWS マネジメントコンソール**

1. を開き AWS マネジメントコンソール 、[CloudWatch](https://console.aws.amazon.com//cloudwatch) に移動します。

1. ナビゲーションバーで、**[Logs]** (ログ)、**[Log groups]** (ロググループ) の順に選択します。

1. [**ロググループの作成**] を選択します。

1. **ロググループ名**を更新し、**オプションで保存設定**フィールドを更新します。

1. **[作成]** を選択します。

------
#### [ AWS CLI ]

**を使用して CloudWatch ロググループを作成するには AWS CLI**

1. ロググループを作成するには、以下のコマンドを実行します。詳細については、v2 コマンドリファレンス` [create-log-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/create-log-group.html) ` AWS CLI の「」を参照してください。

   例 (`uploadLogsGroup`) のロググループ名を任意の名前に置き換えます。

   ```
   aws logs create-log-group --log-group-name uploadLogsGroup
   ```

1. ロググループが正しく作成されたことを確認するには、次のコマンドを実行します。

   ```
   aws logs describe-log-groups --log-group-name-prefix uploadLogsGroup
   ```

   サンプル出力:

   ```
   {
       "logGroups": [
           {
               "logGroupName": "uploadLogsGroup",
               "creationTime": 1674521804657,
               "metricFilterCount": 0,
               "arn": "arn:aws:logs:us-east-1:111122223333:log-group:uploadLogsGroup:*",
               "storedBytes": 0
           }
       ]
   }
   ```

------

## トピックルールの作成
<a name="uploading-logs-rules-setup-topic-rule"></a>

 AWS IoT ルールを作成するには、次の手順を実行します。 AWS マネジメントコンソール または AWS Command Line Interface () でステップを実行するかどうかに応じて、適切なタブを選択しますAWS CLI。

------
#### [ AWS マネジメントコンソール ]

**を使用してトピックルールを作成するには AWS マネジメントコンソール**

1. ルールハブを開きます。

   1. [ AWS マネジメントコンソール ] を開き、[AWS IoT](https://console.aws.amazon.com/iot) に移動します。

   1. ナビゲーションバーで、**[Message routing]** (メッセージルーティング) を選択し、次に **[Rules]** (ルール) を選択します。

   1. **[‬ルールを作成]‭** を選択します。

1. ルールプロパティを入力します。

   1. 英数字の**ルール名**を入力します。

   1. (オプション) **ルールの説明**と**タグ**を入力します。

   1. [**次へ**] を選択します。

1. SQL ステートメントを入力します。

   1. 取り込み用に定義した MQTT トピックを使用して SQL ステートメントを入力します。

      例: `SELECT * FROM '$aws/rules/things/thing_name/logs' ` 

   1. [**次へ**] を選択します。

1. ルールアクションを入力します。

   1. **[Action 1]** (アクション 1) メニューで、**[CloudWatch logs]** を選択します。

   1. **[Log group name]** (ロググループ名) を選択し、選択したロググループを選択します。

   1. **[Use batch mode]** (バッチモードを使用) を選択します。

   1. ルールの IAM ロールを指定します。

      ルールの IAM ロールがある場合は、次の操作を行います。

      1. **[IAM role]** (IAM ロール) メニューで、IAM ロールを選択します。

      ルールの IAM ロールがない場合は、次の操作を行います。

      1. [**Create new role (新しいロールの選択)**] を選択します。

      1. **[Role name]** (ロール名) に、一意の名前を入力して **[Create]** (作成) を選択します。

      1. **[IAM role]** (IAM ロール) フィールドで、IAM ロール名が正しいことを確認します。

   1. [**次へ**] を選択します。

1. テンプレート設定を確認します。

   1. ジョブテンプレートの設定を確認して、設定が正しいことを確認します。

   1. 終了したら、[**作成**] を選択します。

------
#### [ AWS CLI ]

**を使用して IAM ロールとトピックルールを作成するには AWS CLI**

1.  AWS IoT ルールに権限を付与する IAM ロールを作成します。

   1. IAM ポリシーを作成します。

      IAM ポリシーを作成するには、次のコマンドを実行します。`policy-name` パラメータ値を必ず更新してください。詳細については、v2 コマンドリファレンス[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) AWS CLI の「」を参照してください。
**注記**  
Microsoft Windows オペレーティングシステムを使用している場合は、行末マーカー (\$1) をチェックマーク (`) または別の文字に置き換える必要がある場合があります。

      ```
      aws iam create-policy \
          --policy-name uploadLogsPolicy \
          --policy-document \
      '{
          "Version": "2012-10-17",		 	 	 
          "Statement": {
              "Effect": "Allow",
              "Action": [
                  "iot:CreateTopicRule",
                  "iot:Publish",
                  "logs:CreateLogGroup",
                  "logs:CreateLogStream",
                  "logs:PutLogEvents",
                  "logs:GetLogEvents"
              ],
              "Resource": "*"
          }
      }'
      ```

   1. 出力されたポリシーの ARN をテキストエディターにコピーします。

      サンプル出力:

      ```
      {
          "Policy": {
              "PolicyName": "uploadLogsPolicy",
              "PermissionsBoundaryUsageCount": 0,
              "CreateDate": "2023-01-23T18:30:10Z",
              "AttachmentCount": 0,
              "IsAttachable": true,
              "PolicyId": "AAABBBCCCDDDEEEFFFGGG",
              "DefaultVersionId": "v1",
              "Path": "/",
              "Arn": "arn:aws:iam::111122223333:policy/uploadLogsPolicy",
              "UpdateDate": "2023-01-23T18:30:10Z"
          }
      }
      ```

   1. IAM ロールと信頼ポリシーを作成します。

      IAM ポリシーを作成するには、次のコマンドを実行します。`role-name` パラメータ値を必ず更新してください。詳細については、v2 コマンドリファレンス[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) AWS CLI の「」を参照してください。

      ```
      aws iam create-role \
      --role-name uploadLogsRole \
      --assume-role-policy-document \
      '{
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "iot.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }'
      ```

   1. IAM ポリシーをルールにアタッチします。

      IAM ポリシーを作成するには、次のコマンドを実行します。`role-name` および `policy-arn` パラメータ値を必ず更新してください。詳細については、v2 コマンドリファレンス[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html) AWS CLI の「」を参照してください。

      ```
      aws iam attach-role-policy \
      --role-name uploadLogsRole \
      --policy-arn arn:aws:iam::111122223333:policy/uploadLogsPolicy
      ```

   1. ロールを確認してください。

      IAM ロールが正しく作成されたことを確認するには、次のコマンドを実行します。`role-name` パラメータ値を必ず更新してください。詳細については、v2 コマンドリファレンス[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-role.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-role.html) AWS CLI の「」を参照してください。

      ```
      aws iam get-role --role-name uploadLogsRole
      ```

      サンプル出力:

      ```
      {
          "Role": {
              "Path": "/",
              "RoleName": "uploadLogsRole",
              "RoleId": "AAABBBCCCDDDEEEFFFGGG",
              "Arn": "arn:aws:iam::111122223333:role/uploadLogsRole",
              "CreateDate": "2023-01-23T19:17:15+00:00",
              "AssumeRolePolicyDocument": {
                  "Version": "2012-10-17",		 	 	 
                  "Statement": [
                      {
                          "Sid": "Statement1",
                          "Effect": "Allow",
                          "Principal": {
                              "Service": "iot.amazonaws.com"
                          },
                          "Action": "sts:AssumeRole"
                      }
                  ]
              },
              "Description": "",
              "MaxSessionDuration": 3600,
              "RoleLastUsed": {}
          }
      }
      ```

1. で AWS IoT トピックルールを作成します AWS CLI。

   1.  AWS IoT トピックルールを作成するには、次のコマンドを実行します。`--rule-name`、`sql` ステートメント、`description``roleARN `、および `logGroupName`パラメータ値を必ず更新してください。詳細については、「 v2 コマンドリファレンス AWS CLI 」の[create-topic-rule](https://awscli.amazonaws.com/v2/documentation/api/2.0.34/reference/iot/create-topic-rule.html)」を参照してください。

      ```
      aws iot create-topic-rule \
      --rule-name uploadLogsRule \
      --topic-rule-payload \
      	'{
      		"sql":"SELECT * FROM 'rules/things/thing_name/logs'",
      		"description":"Upload logs test rule",
      		"ruleDisabled":false,
      		"awsIotSqlVersion":"2016-03-23",
      		"actions":[
      			{"cloudwatchLogs":
      				{"roleArn":"arn:aws:iam::111122223333:role/uploadLogsRole",
      				"logGroupName":"uploadLogsGroup",
      				"batchMode":true}
      				}
      			]
      }'
      ```

   1. ルールが正しく作成されたことを検証するには、次のコマンドを実行します。`role-name` パラメータ値を必ず更新してください。詳細については、「 v2 コマンドリファレンス AWS CLI 」の[get-topic-rule](https://awscli.amazonaws.com/v2/documentation/api/2.0.34/reference/iot/get-topic-rule.html)」を参照してください。

      ```
      aws iot get-topic-rule --rule-name uploadLogsRule
      ```

      サンプル出力:

      ```
      {
          "ruleArn": "arn:aws:iot:us-east-1:111122223333:rule/uploadLogsRule",
          "rule": {
              "ruleName": "uploadLogsRule",
              "sql": "SELECT * FROM rules/things/thing_name/logs",
              "description": "Upload logs test rule",
              "createdAt": "2023-01-24T16:28:15+00:00",
              "actions": [
                  {
                      "cloudwatchLogs": {
                          "roleArn": "arn:aws:iam::111122223333:role/uploadLogsRole",
                          "logGroupName": "uploadLogsGroup",
                          "batchMode": true
                      }
                  }
              ],
              "ruleDisabled": false,
              "awsIotSqlVersion": "2016-03-23"
          }
      }
      ```

------

## へのデバイス側のログの送信 AWS IoT
<a name="uploading-logs-rules-start-messages"></a>

**デバイス側のログを に送信するには AWS IoT**

1. 履歴ログを送信するには AWS IoT、デバイスと通信して以下を確認します。
   + ログ情報は、この手順の「*前提条件*」セクションで指定されている正しいトピック名前空間に送信されます。

     例: `$aws/rules/things/thing_name/logs` 
   + MQTT メッセージペイロードは正しくフォーマットされています。MQTT トピックと推奨される命名規則の詳細については、 内の [Amazon CloudWatch にデバイス側のログをアップロード](upload-device-logs-to-cloudwatch.md) [MQTT トピック](upload-device-logs-to-cloudwatch.md#upload-mqtt-topics-overview)セクションを参照してください。

1. MQTT メッセージが AWS IoT MQTT クライアント内で受信されていることを確認します。

   1. を開き AWS マネジメントコンソール 、 に移動します[AWS IoT](https://console.aws.amazon.com/iot/home)。

   1. **MQTT テストクライアント**を表示するには、ナビゲーションバーでテスト、MQTT ****テストクライアントを選択します。****

   1. **トピックをサブスクライブするには**、**トピックフィルター**に*トピック名前空間*を入力します。

   1. **[サブスクライブ]** を選択します。

      MQTT メッセージは、次に示すように、**サブスクリプション**と**トピック**の表に表示されます。これらのメッセージが表示されるまでに最大 5 分かかります。  
![\[サブスクリプションとトピックの表に表示される MQTT メッセージ。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/uploading-logs-rules-start-messages-sample-mqtt.png)

## ログデータの表示
<a name="uploading-logs-rules-review-cloudwatch"></a>

**CloudWatch Logs でログレコードを確認するには**

1. を開き AWS マネジメントコンソール、[CloudWatch](https://console.aws.amazon.com/cloudwatch) に移動します。

1. ナビゲーションバーで、**Logs**,**Logs Insights** を選択します。

1. **ロググループの選択 (複数可)** メニューで、 AWS IoT ルールで指定したロググループを選択します。

1. **[Logs insights]** (ログインサイト) ページで、**[Run query]** (クエリを実行) を選択します。

# を使用した AWS IoT API コールのログ記録 AWS CloudTrail
<a name="iot-using-cloudtrail"></a>

AWS IoT は、ユーザー AWS CloudTrail、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています AWS IoT。CloudTrail は、 AWS IoT コンソールからの呼び出しや API へのコード呼び出しを含む、 のすべての API コールをイベント AWS IoT としてキャプチャします。 AWS IoT APIs 証跡を作成する場合は、イベントを含む Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます AWS IoT。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの実行元の IP アドレス AWS IoT、リクエストの実行者、リクエストの実行日時などの詳細を確認できます。

CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

## AWS IoT CloudTrail の情報
<a name="aws-iot-info-in-cloudtrail"></a>

CloudTrail は、アカウントの作成 AWS アカウント 時に で有効になります。アクティビティが発生すると AWS IoT、そのアクティビティはイベント**履歴**の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。で最近のイベントを表示、検索、ダウンロードできます AWS アカウント。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

 AWS IoTのイベントなど、 AWS アカウントのイベントの継続的な記録に対して、追跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべての AWS リージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。CloudTrail ログで収集されたイベントデータをさらに分析して処理するように、他の AWS サービスを設定できます。詳細については、以下を参照してください。
+  [証跡を作成するための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) 
+  [CloudTrail がサポートするサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations) 
+  [CloudTrail 用 Amazon SNS 通知の構成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html) 
+  [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html) 

**注記**  
AWS IoT データプレーンアクション (デバイス側) は CloudTrail によってログに記録されません。これらのアクションを監視するために CloudWatch を使用します。

一般的に、変更を行う AWS IoT コントロールプレーンアクションは CloudTrail によってログに記録されます。**CreateThing**、**CreateKeysAndCertificate**、**UpdateCertificate** などの呼び出しは CloudTrail エントリを残しますが、**ListThings** や **ListTopicRules** などの呼び出しは残しません。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。同一性情報は次の判断に役立ちます。
+ リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

AWS IoT アクションは [AWS IoT API リファレンス](https://docs.aws.amazon.com/iot/latest/apireference/)に記載されています。 AWS IoT Wireless アクションは [AWS IoT Wireless API リファレンス](https://docs.aws.amazon.com/iot-wireless/latest/apireference/welcome.html)に記載されています。

## AWS IoT ログファイルエントリについて
<a name="understanding-aws-iot-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントはあらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどの情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、`AttachPolicy` アクションを示す CloudTrail ログエントリです。

```
{
    "timestamp":"1460159496",
    "AdditionalEventData":"",
    "Annotation":"",
    "ApiVersion":"",
    "ErrorCode":"",
    "ErrorMessage":"",
    "EventID":"8bff4fed-c229-4d2d-8264-4ab28a487505",
    "EventName":"AttachPolicy",
    "EventTime":"2016-04-08T23:51:36Z",
    "EventType":"AwsApiCall",
    "ReadOnly":"",
    "RecipientAccountList":"",
    "RequestID":"d4875df2-fde4-11e5-b829-23bf9b56cbcd",
    "RequestParamters":{
        "principal":"arn:aws:iot:us-east-1:123456789012:cert/528ce36e8047f6a75ee51ab7beddb4eb268ad41d2ea881a10b67e8e76924d894",
        "policyName":"ExamplePolicyForIoT"
    },
    "Resources":"",
    "ResponseElements":"",
    "SourceIpAddress":"52.90.213.26",
    "UserAgent":"aws-internal/3",
    "UserIdentity":{
        "type":"AssumedRole",
        "principalId":"AKIAI44QH8DHBEXAMPLE",
        "arn":"arn:aws:sts::12345678912:assumed-role/iotmonitor-us-east-1-beta-InstanceRole-1C5T1YCYMHPYT/i-35d0a4b6",
        "accountId":"222222222222",
        "accessKeyId":"access-key-id",
        "sessionContext":{
            "attributes":{
                "mfaAuthenticated":"false",
                "creationDate":"Fri Apr 08 23:51:10 UTC 2016"
            },
            "sessionIssuer":{
                "type":"Role",
                "principalId":"AKIAI44QH8DHBEXAMPLE",
                "arn":"arn:aws:iam::123456789012:role/executionServiceEC2Role/iotmonitor-us-east-1-beta-InstanceRole-1C5T1YCYMHPYT",
                "accountId":"222222222222",
                "userName":"iotmonitor-us-east-1-InstanceRole-1C5T1YCYMHPYT"
            }
        },
        "invokedBy":{
            "serviceAccountId":"111111111111"
        }
    },
    "VpcEndpointId":""
}
```