

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

# AWS IoT Greengrass でのログ記録とモニタリング
<a name="logging-and-monitoring"></a>

モニタリングは、AWS IoT Greengrass と AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。ただし、AWS IoT Greengrass のモニタリングをスタートする前に、以下の質問に対する回答を反映したモニタリング計画を作成する必要があります。
+ どのような目的でモニタリングしますか?
+ どのリソースをモニタリングしますか?
+ どのくらいの頻度でこれらのリソースをモニタリングしますか?
+ どのモニタリングツールを使用しますか?
+ 誰がモニタリングタスクを実行しますか?
+ 問題が発生したときに誰が通知を受け取りますか?

**Topics**
+ [モニタリングツール](#monitoring-tools)
+ [AWS IoT Greengrass ログのモニタリング](monitor-logs.md)
+ [を使用した AWS IoT Greengrass V2 API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)
+ [AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する](telemetry.md)
+ [デプロイとコンポーネントのヘルスステータス通知を受け取る](deployment-health-notifications.md)
+ [Greengrass コアデバイスのステータスを確認する](device-status.md)

## モニタリングツール
<a name="monitoring-tools"></a>

AWS では、 のモニタリングに使用できるツールを提供しています。AWS IoT Greengrass自動的にモニタリングが行われるように、これらのツールを設定できます。手動操作を必要とするツールもあります。モニタリングタスクをできるだけ自動化することをお勧めします。

次の自動化されたモニタリングツールを使用して、AWS IoT Greengrass をモニタリングして問題を報告できます。
+ **Amazon CloudWatch Logs** - AWS CloudTrail またはその他の出典のログファイルのモニタリング、保存、アクセスを行います。詳細については、*Amazon CloudWatch ユーザーガイド*の[ログファイルのモニタリング](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)を参照してください。
+ **AWS CloudTrail ログモニタリング** - アカウント間でログファイルを共有し、CloudTrail のログファイルを CloudWatch Logs に送信することでそれらをリアルタイムでモニタリングし、ログを処理するアプリケーションを Java で作成し、CloudTrail からの提供後にログファイルが変更されていないことを検証します。詳細については、「AWS CloudTrail ユーザーガイド」の「[CloudTrail ログファイルの使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)」を参照してください。**
+ **Greengrass システム ヘルス テレメトリー** - Greengrass コアから送信されたテレメトリデータを受信するためにサブスクライブします。詳細については、「[AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する](telemetry.md)」を参照してください。
+ **デバイスのヘルス通知** Amazon EventBridge を使用してイベントを作成し、デプロイとコンポーネントに関するステータスの更新を受け取ります。詳細については、「[デプロイとコンポーネントのヘルスステータス通知を受け取る](deployment-health-notifications.md)」を参照してください。
+ **フリートステータスサービス** - フリートステータス API 操作を使用して、コアデバイスとその Greengrass コンポーネントのステータスを確認します。AWS IoT Greengrass コンソールでフリートステータス情報を確認することもできます。詳細については、「[Greengrass コアデバイスのステータスを確認する](device-status.md)」を参照してください。

# AWS IoT Greengrass ログのモニタリング
<a name="monitor-logs"></a>

AWS IoT Greengrass は、クラウドサービスと AWS IoT Greengrass Core ソフトウェアで設定されます。AWS IoT Greengrass Core ソフトウェアは、Amazon CloudWatch Logs とコアデバイスのローカルファイルシステムにログを書き込むことができます。コアデバイスで実行される Greengrass コンポーネントは、CloudWatch Logs とローカルファイルシステムにログを書き込むこともできます。問題をトラブルシューティングするには、ログを使用してイベントをモニタリングします。AWS IoT Greengrass ログエントリにはすべて、タイムスタンプ、ログレベル、イベントに関する情報が含まれています。

デフォルトで、AWS IoT Greengrass Core ソフトウェアはローカルファイルシステムのみにログを書き込みます。リアルタイムでファイル システム ログを確認できるため、開発とデプロイする Greengrass コンポーネントをデバッグできます。CloudWatch Logs にログを書き込むようにコアデバイスを設定することもできるため、ローカルファイルシステムにアクセスせず、コアデバイスをトラブルシューティングできます。詳細については、「[CloudWatch Logs へのログ記録を有効化](#enable-cloudwatch-logs)」を参照してください。

**Topics**
+ [ファイル システム ログをアクセス](#access-local-logs)
+ [CloudWatch Logs をアクセス](#access-cloudwatch-logs)
+ [システム サービス ログにアクセス](#access-system-service-logs)
+ [CloudWatch Logs へのログ記録を有効化](#enable-cloudwatch-logs)
+ [AWS IoT Greengrass のログ記録の設定](#configure-logging)
+ [AWS CloudTrail ログ](#cloudtrail-integration)

## ファイル システム ログをアクセス
<a name="access-local-logs"></a>

AWS IoT Greengrass Core ソフトウェアは、ログをコアデバイスの `/greengrass/v2/logs` フォルダに保存します。`/greengrass/v2` は AWS IoT Greengrass ルートフォルダへのパスです。ログフォルダは次の構造があります。

```
/greengrass/v2
└── logs
    ├── greengrass.log
    ├── greengrass_2021_09_14_15_0.log
    ├── ComponentName.log
    ├── ComponentName_2021_09_14_15_0.log
    └── main.log
```
+ `greengrass.log` - AWS IoT Greengrass Core ソフトウェアのログファイル。このログファイルを使用して、コンポーネントとデプロイに関するリアルタイム情報を確認します。このログファイルには、Greengrass nucleus のログが含まれています。Greengrass nucleus は AWS IoT Greengrass Core ソフトウェアとプラグインコンポーネント ([ログマネージャー](log-manager-component.md)と[シークレットマネージャー](secret-manager-component.md)など) のコアです。
+ `ComponentName.log` - Greengrass コンポーネントのログファイル。コンポーネント ログ ファイルを使用して、コアデバイスに実行される Greengrass コンポーネントに関するリアルタイム情報を確認します。ジェネリックコンポーネントと Lambda コンポーネントは、標準出力 (stdout) と標準エラー (stderr) をこれらのログファイルに書き込みます。
+ `main.log` - コンポーネントライフサイクルを処理する `main` サービスのログファイル。このログファイルは常に空の状態になります。

プラグイン、ジェネリック、Lambda コンポーネントの違いの詳細については、「[コンポーネントタイプ](develop-greengrass-components.md#component-types)」を参照してください。

以下の考慮事項は、ファイルシステムログを使用する場合に適用されます。
+ **ルートユーザーの許可**

  ファイルシステムの AWS IoT Greengrass ログを読み取る root 権限が必要です。
+ **ログファイルのローテーション**

  AWS IoT Greengrass Core ソフトウェアは、1 時間ごと、またはファイルサイズの制限を超えたときにログファイルをローテーションします。ローテーションされたログファイルは、ファイル名にタイムスタンプが含まれています。例えば、ローテーションした AWS IoT Greengrass Core ソフトウェアのログファイルは　 `greengrass_2021_09_14_15_0.log` という名前が付けられる場合があります。デフォルトのファイルサイズの制限は 1,024 KB (1 MB) です。ファイルサイズの制限は、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)で設定できます。
+ **ログファイルの削除**

  AWS IoT Greengrass Core ソフトウェアは、AWS IoT Greengrass Core ソフトウェアのログファイルまたは Greengrass コンポーネントのログファイルのサイズ (ローテーションされたログファイルを含む) がディスク容量の上限を超えたとき、以前のログファイルをクリーンアップします。AWS IoT Greengrass Core ソフトウェア ログと各コンポーネントログ のデフォルトのディスク容量上限は、10,240 KB (10 MB) です。[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)または[ログマネージャーコンポーネント](log-manager-component.md)の AWS IoT Greengrass Core ソフトウェアログのディスク容量上限を設定できます。[ログマネージャーコンポーネント](log-manager-component.md)で、各コンポーネントのログディスク容量上限を設定できます。

**AWS IoT Greengrass Core ソフトウェアのログファイルを確認するには**
+ 次のコマンドを実行して、ログファイルをリアルタイムで確認します。`/greengrass/v2` を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。

------
#### [ Linux or Unix ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  type C:\greengrass\v2\logs\com.example.HelloWorld.log
  ```

  <a name="windows-cmd-type-observe-logs"></a>`type` コマンドは、ファイルのコンテンツを端末に書き込みます。このコマンドを複数回実行して、ファイル内の変更を確認してください。

------
#### [ PowerShell ]

  ```
  gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

**コンポーネントのログファイルを確認するには**
+ 次のコマンドを実行して、ログファイルをリアルタイムで確認します。`/greengrass/v2` または *C:\$1greengrass\$1v2* を AWS IoT Greengrass ルートフォルダへのパスに置き換えて、*com.example.HelloWorld* をコンポーネントの名前に置き換えます。

------
#### [ Linux or Unix ]

  ```
  sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
  ```

------
#### [ PowerShell ]

  ```
  gc C:\greengrass\v2\logs\com.example.HelloWorld.log -Tail 10 -Wait
  ```

------

[Greengrass CLI](greengrass-cli-component.md) の `logs` コマンドを使用して、コアデバイスの Greengrass ログを分析することもできます。`logs` コマンドを実行するには、[Greengrass nucleus](greengrass-nucleus-component.md) が JSON 形式のログファイルを出力するように設定する必要があります。詳細については、「[Greengrass コマンドラインインターフェイス](gg-cli.md)」および「[ログ](gg-cli-logs.md)」を参照してください。

## CloudWatch Logs をアクセス
<a name="access-cloudwatch-logs"></a>

[ログマネージャーコンポーネント](log-manager-component.md)をデプロイして、コアデバイスが CloudWatch Logs に書き込むように設定します。詳細については、「[CloudWatch Logs へのログ記録を有効化](#enable-cloudwatch-logs)」を参照してください。次に、Amazon CloudWatch コンソール の **[Logs]** (ログ) ページで、あるいは CloudWatch Logs API を使用して、ログを確認できます。<a name="log-manager-log-group-stream-format"></a>

**ロググループ名**  

```
/aws/greengrass/componentType/region/componentName
```
ロググループ名は、次の変数を使用します。  
+ `componentType` - 次のいずれかに該当するコンポーネントのタイプ。
  + `GreengrassSystemComponent` - このロググループには、Greengrass nucleus と同じ JVM で実行される nucleus とプラグインコンポーネントのログが含まれます。コンポーネントは [Greengrass nucleus](greengrass-nucleus-component.md) の一部です。
  + `UserComponent` - このロググループには、ジェネリックコンポーネント、Lambda コンポーネント、デバイスの他のアプリケーションのログが含まれます。コンポーネントは Greengrass nucleus の一部ではありません。

  詳細については、「[コンポーネントタイプ](develop-greengrass-components.md#component-types)」を参照してください。
+ `region` - コアデバイスが使用する AWS リージョン。
+ `componentName` - コンポーネントの名前。システムログの場合、この値は `System` です。

**ログストリーム名**  

```
/date/thing/thingName
```
ログストリーム名は次の変数を使用します。  
+ `date` - `2020/12/15` など、ログの日付。ログマネージャーコンポーネントは `yyyy/MM/dd` 形式を使用します。
+ `thingName` - コアデバイスの名前。
モノの名前にコロン (`:`) が含まれている場合、ログマネージャーはコロンをプラス (`+`) に置き換えます。

<a name="log-manager-considerations-intro"></a>次の考慮事項は、ログマネージャーコンポーネントを使用して CloudWatch Logs に書き込むときに適用されます。<a name="log-manager-considerations"></a>
+ **ログ遅延**
**注記**  
ログマネージャーバージョン 2.3.0 にアップグレードすることをお勧めします。これにより、ローテーションされたアクティブなログファイルのログ遅延が軽減されます。ログマネージャー 2.3.0 にアップグレードする際には、Greengrass nucleus 2.9.1 にもアップグレードすることをお勧めします。

  ログマネージャーコンポーネントバージョン 2.2.8 (およびそれ以前) は、ローテーションされたログファイルからのみ、ログを処理およびアップロードします。デフォルトで、AWS IoT Greengrass Core ソフトウェアは、1 時間ごと、または 1,024 KB に達した後に、ログファイルをローテーションします。その結果、ログマネージャーコンポーネントは、AWS IoT Greengrass Core ソフトウェアまたは Greengrass コンポーネントが 1,024 KB を超えるログを書き込んだ後にのみ、ログをアップロードします。ログファイルの容量上限を低く設定して、ログファイルのローテーション頻度を上げることができます。これにより、ログマネージャーコンポーネントが CloudWatch Logs にログをアップロードする頻度が高くなります。

  ログマネージャーコンポーネントバージョン 2.3.0 (およびそれ以降) は、すべてのログを処理およびアップロードします。新しいログを書き込むと、ログマネージャーバージョン 2.3.0 (およびそれ以降) は、ローテーションを待つことなく、そのアクティブなログファイルを処理して直接アップロードします。そのため、5 分以内に新しいログを表示することができます。

  ログマネージャーコンポーネントは、新しいログを定期的にアップロードします。デフォルトで、ログマネージャーコンポーネントは 5 分ごとに新しいログをアップロードします。`periodicUploadIntervalSec` を設定することで、ログマネージャーコンポーネントがより頻繁に CloudWatch Logs にログをアップロードするように、より短いアップロード間隔を設定できます。この定期的な間隔を設定する方法の詳細については、「[設定](https://docs.aws.amazon.com/greengrass/v2/developerguide/log-manager-component.html#log-manager-component-configuration)」を参照してください。

  ログは、同じ Greengrass ファイルシステムからほぼリアルタイムでアップロードできます。ログをリアルタイムで監視する必要がある場合、[ファイルシステムログ](#access-local-logs)の使用を検討してください。
**注記**  
ログの書き込み先として別のファイルシステムを使用している場合、ログマネージャーは、ログマネージャーコンポーネントバージョン 2.2.8 以前の動作に戻ります。ファイルシステムログへのアクセスについては、「[ファイルシステムログをアクセス](https://docs.aws.amazon.com/greengrass/v2/developerguide/monitor-logs.html#access-local-logs)」を参照してください。
+ **クロックスキュー**

  ログマネージャーコンポーネントは、標準の署名バージョン 4 の署名プロセスを使用して、CloudWatch Logs への API 要求を作成します。コアデバイスのシステム時刻が同期していない時間が 15 分を超えると、CloudWatch Logs は要求を拒否します。詳細については、*AWS 全般のリファレンス*の「[署名バージョン 4 の署名プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)」を参照してください。

## システム サービス ログにアクセス
<a name="access-system-service-logs"></a>

[システムサービスとして AWS IoT Greengrass Core ソフトウェアを設定](configure-greengrass-core-v2.md#configure-system-service)する場合、システムサービスログを確認して、ソフトウェアの起動失敗など、問題をトラブルシューティングできます。

**システム サービス ログ (CLI) を表示するには**

1. 以下のコマンドを実行して AWS IoT Greengrass Core ソフトウェア システムのサービスログを確認します。

------
#### [ Linux or Unix (systemd) ]

   ```
   sudo journalctl -u greengrass.service
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   type C:\greengrass\v2\logs\greengrass.wrapper.log
   ```

------
#### [ PowerShell ]

   ```
   gc C:\greengrass\v2\logs\greengrass.wrapper.log
   ```

------

1. Windows デバイスでは、AWS IoT Greengrass Core ソフトウェアがシステムサービスエラー用に別のログファイルを作成します。次のコマンドを実行して、システムサービスエラーログを表示します。

------
#### [ Windows Command Prompt (CMD) ]

   ```
   type C:\greengrass\v2\logs\greengrass.err.log
   ```

------
#### [ PowerShell ]

   ```
   gc C:\greengrass\v2\logs\greengrass.err.log
   ```

------

Windows デバイスで、**[Event Viewer]** (イベントビューワー) アプリケーションを使用してシステム サービス ログも確認できます。

**Windows サービスログ (イベントビューア) を確認するには**

1. **Event Viewer** (イベントビューワー) アプリケーションを開きます。

1. **[Windows Logs]** (Windows ログ) を選択して展開します。

1. **[Application]** (アプリケーション) を選択して、アプリケーション サービス ログを確認します。

1. **[Source]** (ソース) が **[greengrass]** のイベントログを検索して開きます。

## CloudWatch Logs へのログ記録を有効化
<a name="enable-cloudwatch-logs"></a>

[ログマネージャーコンポーネント](log-manager-component.md)をデプロイして、CloudWatch Logs にログを書き込むようにコアデバイスを設定できます。AWS IoT Greengrass Core ソフトウェアログ用に CloudWatch Logs を 有効にして、特定の Greengrass コンポーネント用に CloudWatch Logs を有効にできます。

**注記**  
次の IAM ポリシーの例で示すように、Greengrass コアデバイスのトークン交換ロールは、コアデバイスが CloudWatch Logs への書き込みを許可する必要があります。[自動リソースプロビジョニング機能を備えた AWS IoT Greengrass Core ソフトウェアをインストール](quick-installation.md)した場合、コアデバイスにはこれらの許可が付与されています。  

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:logs:*:*:*"
    }
  ]
}
```

コアデバイスが AWS IoT Greengrass Core ソフトウェアログを CloudWatch Logs に書き込むように設定するには、`aws.greengrass.LogManager` コンポーネントの `uploadToCloudWatch` を `true` に設定する設定更新を指定する[デプロイの作成](create-deployments.md)を行います。AWS IoT GreengrassCore ソフトウェアログには、[Greengrass nucleus](greengrass-nucleus-component.md) と[プラグインコンポーネント](develop-greengrass-components.md#component-types)のログが含まれます。

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true"
    }
  }
}
```

コアデバイスが Greengrass コンポーネントのログを CloudWatch Logs に書き込むように設定するには、コンポーネントをコンポーネントログ設定リストに追加する設定更新を指定する[デプロイを作成](create-deployments.md)します。コンポーネントをこのリストに追加するとき、ログマネージャーコンポーネントは独自のログを CloudWatch Logs に書き込みます。コンポーネントログには、[ジェネリックコンポーネントと Lambda コンポーネント](develop-greengrass-components.md#component-types)のログが含まれます。

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
      
      }
    }
  }
}
```

ログマネージャーコンポーネントをデプロイするとき、ディスク容量上限の設定、並びに CloudWatch Logs に書き込んだ後にコアデバイスがログファイルを削除するかどうかについても設定できます。詳細については、「[AWS IoT Greengrass のログ記録の設定](#configure-logging)」を参照してください。

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

次のオプションを設定して Greengrass コアデバイスのログをカスタマイズできます。これらのオプションを設定するには、Greengrass nucleus またはログマネージャーコンポーネントへの設定更新を指定する[デプロイの作成](create-deployments.md)を行います。
+ **CloudWatch Logs にログの書込み**

  コアデバイスを遠隔でトラブルシューティングするには、コアデバイスが AWS IoT Greengrass Core ソフトウェアとコンポーネントログを、CloudWatch Logs に書き込むように設定できます。これを行うには、[ログマネージャーコンポーネント](log-manager-component.md)をデプロイして設定します。詳細については、「[CloudWatch Logs へのログ記録を有効化](#enable-cloudwatch-logs)」を参照してください。
+ **アップロードされたログファイルの削除**

  ディスク容量の使用量を減らすには、ログファイルを CloudWatch Logs に書き込んだ後にログファイルを削除するように、コアデバイスを設定できます。詳細については、ログマネージャーコンポーネントの `deleteLogFileAfterCloudUpload` パラメータを参照してください。これは、[AWS IoT Greengrass Core ソフトウェアログ](log-manager-component.md#log-manager-component-configuration-system-logs-configuration)と[コンポーネントログ](log-manager-component.md#log-manager-component-configuration-component-logs-configuration)を対象として指定できます。
+ **ログディスクの容量制限**

  ディスク容量の使用量を制限するには、コアデバイスの各ログに対して最大ディスク容量 (ローテーションされたログファイルを含む) を設定できます。例えば、`greengrass.log` とローテーションされた `greengrass.log` ファイルの最大合計ディスク容量を設定できます。詳細については、Greengrass nucleus コンポーネントの `logging.totalLogsSizeKB` パラメータとログマネージャーコンポーネントの `diskSpaceLimit` パラメータを参照してください。これは、[AWS IoT Greengrass Core ソフトウェアログ](log-manager-component.md#log-manager-component-configuration-system-logs-configuration)と[コンポーネントログ](log-manager-component.md#log-manager-component-configuration-component-logs-configuration)を対象として指定できます。
+ **ログファイルのサイズ制限**

  各ログファイルの最大ファイルサイズを設定できます。ログファイルがこのファイルサイズの上限を超えると、AWS IoT Greengrass Core ソフトウェアは新しいログファイルを作成します。[ログマネージャーコンポーネント](log-manager-component.md) バージョン 2.28 (以前) は、ローテーションされたログファイルのみを CloudWatch Logs に書き込むため、より低いファイルサイズの上限を指定して、より頻繁に CloudWatch Logs にログを書き込むことができます。ログマネージャーコンポーネントバージョン 2.3.0 (以降) は、すべてのログがローテーションされるのを待たずに、すべてのログを処理してアップロードします。詳細については、Greengrass nucleus コンポーネントの[ログファイルサイズの上限パラメータ](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-log-file-size) (`logging.fileSizeKB`) を参照してください。
+ **最小ログレベル**

  Greengrass nucleus コンポーネントがファイル システム ログに書き込む最小ログレベルを設定できます。例えば、トラブルシューティングを支援するために `DEBUG` レベルのログを指定、あるいはコアデバイスが作成するログの量を減らすために `ERROR` レベルログを指定できます。詳細については、Greengrass nucleus コンポーネントの[ログレベルパラメータ](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-log-level) (`logging.level`) を参照してください。

  ログマネージャーコンポーネントが CloudWatch Logs に書き込む最小ログレベルを設定することもできます。例えば、より高いログレベルを指定して[ログコスト](https://aws.amazon.com/cloudwatch/pricing/)を減らすこともできます。詳細については、ログマネージャーコンポーネントの `minimumLogLevel` パラメータを参照してください。これは、[AWS IoT Greengrass Core ソフトウェアログ](log-manager-component.md#log-manager-component-configuration-system-logs-configuration)と[コンポーネントログ](log-manager-component.md#log-manager-component-configuration-component-logs-configuration)を対象として指定できます。
+ **CloudWatch Logs に書き込むログをチェックする間隔**

  ログマネージャーコンポーネントが CloudWatch Logs にログを書き込む頻度を増減するには、新しいログファイルの書き込みをチェックする間隔を設定できます。例えば、デフォルトの 5 分間隔よりも早く CloudWatch Logs でログを確認するように、間隔を短く指定できます。ログマネージャーコンポーネントはログファイルをより少ないリクエストにバッチ処理するので、コストを抑えるために間隔を長く指定できます。詳細については、ログマネージャーコンポーネントの[アップロード間隔パラメータ](log-manager-component.md#log-manager-component-configuration-periodic-upload-interval-sec) (`periodicUploadIntervalSec`) を参照してください。
+ **ログ形式**

  AWS IoT Greengrass Core ソフトウェアがログをテキストまたは JSON 形式のいずれかに書き込むように選択できます。ログを読み取る場合、テキスト形式を選択します。または、アプリケーションを使用してログの読み取りまたはパーシングする場合、JSON 形式を選択します。詳細については、Greengrass nucleus コンポーネントの[ログ形式パラメータ](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) (`logging.format`) を参照してください。
+ **ローカルファイルシステムのログフォルダ**

  ログフォルダを `/greengrass/v2/logs` からコアデバイスの別なフォルダに変更できます。詳細については、Greengrass nucleus コンポーネントの[出力ディレクトリパラメータ](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-log-level) (`logging.outputDirectory`) を参照してください。

## AWS CloudTrail ログ
<a name="cloudtrail-integration"></a>

AWS IoT Greengrass は、ユーザー、ロール、AWS IoT Greengrass の AWS のサービス が行ったアクションの記録を提供するサービスである AWS CloudTrail と統合されています。詳細については、「[を使用した AWS IoT Greengrass V2 API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)」を参照してください。

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

AWS IoT Greengrass V2 は、ユーザー AWS CloudTrail、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています AWS IoT Greengrass Version 2。CloudTrail は、 のすべての API コールをイベント AWS IoT Greengrass としてキャプチャします。キャプチャされる呼び出しには、 AWS IoT Greengrass コンソールからの呼び出しと AWS IoT Greengrass API オペレーションへのコード呼び出しが含まれます。

証跡を作成する場合は、イベントを含む S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます AWS IoT Greengrass。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、リクエストの実行元の IP アドレス AWS IoT Greengrass、リクエストの実行者、リクエストの実行日時などの詳細を確認できます。

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

**Topics**
+ [AWS IoT Greengrass V2 CloudTrail の情報](#service-name-info-in-cloudtrail)
+ [AWS IoT Greengrass CloudTrail のデータイベント](#greengrass-data-events-cloudtrail)
+ [AWS IoT Greengrass CloudTrail の管理イベント](#greengrass-management-events-cloudtrail)
+ [AWS IoT Greengrass V2 ログファイルエントリについて](#understanding-service-name-entries)

## AWS IoT Greengrass V2 CloudTrail の情報
<a name="service-name-info-in-cloudtrail"></a>

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

のイベントなど AWS アカウント、 のイベントの継続的な記録については AWS IoT Greengrass、証跡を作成します。証跡より、CloudTrail はログファイルを S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した 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 の Amazon SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.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 Greengrass V2 アクションは CloudTrail によってログに記録され、 [AWS IoT Greengrass V2 API リファレンス](https://docs.aws.amazon.com/greengrass/v2/APIReference/Welcome.html)に記載されています。例えば、`CreateComponentVersion`、`CreateDeployment`、`CancelDeployment` の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
+ リクエストがルートまたは AWS Identity and Access Management (IAM) ユーザー認証情報を使用して行われたかどうか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

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

## AWS IoT Greengrass CloudTrail のデータイベント
<a name="greengrass-data-events-cloudtrail"></a>

[データイベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)は、リソースに対して、またはリソース内で実行されるリソースオペレーションに関する情報を提供します (コンポーネントバージョンの取得やデプロイの設定など)。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail **[イベント履歴]** にはデータイベントは記録されません。

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

CloudTrail コンソール、または CloudTrail CloudTrail API オペレーションを使用して AWS CLI、 AWS IoT Greengrass リソースタイプのデータイベントを記録できます。このセクションの[表](#data-events-table)は、使用可能なリソースタイプを示しています AWS IoT Greengrass。
+ CloudTrail コンソールを使用してデータイベントを記録するには、データイベントをログに記録する[証跡](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html#creating-a-trail-in-the-console)または[イベントデータストア](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-cloudtrail.html)を作成するか、[既存の証跡またはイベントデータストアを更新](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console)してデータイベントをログに記録します。

  1. データイベントをログに記録するには、**[データイベント]** を選択します。

  1. **[データイベントタイプ]** リストから、データイベントをログ記録するリソースのタイプを選択します。

  1. 使用するログセレクタテンプレートを選択します。リソースタイプのすべてのデータイベントをログに記録したり、すべての `readOnly` イベントをログに記録したり、すべての `writeOnly` イベントをログに記録したり、カスタムログセレクタテンプレートを作成して `readOnly`、`eventName`、`resources.ARN` フィールドでフィルタリングしたりできます。
+ を使用してデータイベントをログに記録するには AWS CLI、 `--advanced-event-selectors` パラメータを設定して `eventCategory`フィールドを に`Data`、 `resources.type`フィールドを リソースタイプ値に設定します ([表](#data-events-table)を参照）。条件を追加して、`readOnly`、`eventName` および `resources.ARN` フィールドの値でフィルタリングできます。
  + データイベントをログに記録するように証跡を設定するには、[https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/put-event-selectors.html](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/put-event-selectors.html) コマンドを実行します。詳細については、「[AWS CLIを使用した証跡へのデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-CLI-trail-examples)」を参照してください。
  + データイベントをログ記録するようにイベントデータストアを設定するには、[https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/create-event-data-store.html](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/create-event-data-store.html) コマンドを実行してデータイベントをログ記録する新しいイベントデータストアを作成するか、[https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/update-event-data-store.html](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/update-event-data-store.html) コマンドを実行して既存のイベントデータストアを更新します。詳細については、「[AWS CLIを使用したイベントデータストアへのデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-CLI-eds-examples)」を参照してください。

次の表に、 AWS IoT Greengrass リソースタイプを示します。**データイベントタイプ (コンソール)** 列には、CloudTrail コンソールの**[データイベントタイプ]**リストから選択する値が表示されます。**resources.type 値**列には、 AWS CLI または CloudTrail APIs を使用して高度なイベントセレクタを設定するときに指定する `resources.type`値が表示されます。**CloudTrail に記録されたデータ API** 列には、リソースタイプの CloudTrail にログ記録された API コールが表示されます。


| データイベントタイプ (コンソール) | resources.type 値 | CloudTrail にログ記録されたデータ API | 
| --- | --- | --- | 
| IoT 証明書 | AWS::IoT::Certificate |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/logging-using-cloudtrail.html)  | 
| IoT Greengrass コンポーネントバージョン |  AWS::GreengrassV2::ComponentVersion  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/logging-using-cloudtrail.html)  | 
| [IoT Greengrass デプロイ] |  AWS::GreengrassV2::Deployment  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/logging-using-cloudtrail.html)  | 
| [IoT モノ] | AWS::IoT::Thing |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/logging-using-cloudtrail.html)  | 

`eventName`、`readOnly`、および `resources.ARN` フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。

特定のデータ API を含める、または除外するために、`eventName` にフィルターを追加します。

フィールドの詳細については、「[https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)」を参照してください。

次の例は、 AWS CLIを使用して高度なセレクタを設定する方法を示しています。*TrailName* および *region* をユーザー自身の情報に置き換えます。

**Example — IoT モノのデータイベントをログ記録する**  

```
aws cloudtrail put-event-selectors --trail-name TrailName --region region \
--advanced-event-selectors \
‘[
    {
            “Name”: “Log all thing data events”,
            “FieldSelectors”: [
                { “Field”: “eventCategory”, “Equals”: [“Data”] },
                { “Field”: “resources.type”, “Equals”: [“AWS::IoT::Thing”] }
            ]
        }
]’
```

**Example – 特定の IoT モノの API でフィルタリングする**  

```
aws cloudtrail put-event-selectors --trail-name TrailName --region region \
--advanced-event-selectors \
‘[
    {
            “Name”: “Log IoT Greengrass PutCertificateAuthorities API calls”,
            “FieldSelectors”: [
                { “Field”: “eventCategory”, “Equals”: [“Data”] },
                { “Field”: “resources.type”, “Equals”: [“AWS::IoT::Thing”] },
                { “Field”: “eventName”, “Equals”: [“PutCertificateAuthorities”] }
            ]
    }
]’
```

**Example – Greengrass データイベントをすべてログに記録する**  

```
aws cloudtrail put-event-selectors --trail-name TrailName --region region \
--advanced-event-selectors \
‘[
    {
        “Name”: “Log all certificate data events”,
        “FieldSelectors”: [
            {
                “Field”: “eventCategory”,
                “Equals”: [
                    “Data”
                ]
            },
            {
                “Field”: “resources.type”,
                “Equals”: [
                    “AWS::IoT::Certificate”
                ]
            }
        ]
    },
    {
        “Name”: “Log all component version data events”,
        “FieldSelectors”: [
            {
                “Field”: “eventCategory”,
                “Equals”: [
                    “Data”
                ]
            },
            {
                “Field”: “resources.type”,
                “Equals”: [
                    “AWS::GreengrassV2::ComponentVersion”
                ]
            }
        ]
    },
    {
        “Name”: “Log all deployment version”,
        “FieldSelectors”: [
            {
                “Field”: “eventCategory”,
                “Equals”: [
                    “Data”
                ]
            },
            {
                “Field”: “resources.type”,
                “Equals”: [
                    “AWS::GreengrassV2::Deployment”
                ]
            }
        ]
    },
    {
        “Name”: “Log all thing data events”,
        “FieldSelectors”: [
            {
                “Field”: “eventCategory”,
                “Equals”: [
                    “Data”
                ]
            },
            {
                “Field”: “resources.type”,
                “Equals”: [
                    “AWS::IoT::Thing”
                ]
            }
        ]
    }
]’
```

## AWS IoT Greengrass CloudTrail の管理イベント
<a name="greengrass-management-events-cloudtrail"></a>

[管理イベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)は、 AWS アカウントのリソースで実行される管理オペレーションに関する情報を提供します。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。

AWS IoT Greengrass は、すべての AWS IoT Greengrass コントロールプレーンオペレーションを管理イベントとしてログに記録します。CloudTrail に AWS IoT Greengrass ログ記録する AWS IoT Greengrass コントロールプレーンオペレーションのリストについては、 [AWS IoT Greengrass API リファレンス、バージョン 2](https://docs.aws.amazon.com/greengrass/v2/APIReference/Welcome.html) を参照してください。

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

証跡は、指定した S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail ログファイルには、1 つ以上のログエントリがあります。イベントは、任意の送信元からの単一のリクエストを表します。これには、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

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

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/Administrator",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Administrator"
    },
    "eventTime": "2021-01-06T02:38:05Z",
    "eventSource": "greengrass.amazonaws.com",
    "eventName": "CreateDeployment",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "203.0.113.0",
    "userAgent": "aws-cli/2.1.9 Python/3.7.9 Windows/10 exe/AMD64 prompt/off command/greengrassv2.create-deployment",
    "requestParameters": {
        "deploymentPolicies": {
            "failureHandlingPolicy": "DO_NOTHING",
            "componentUpdatePolicy": {
                "timeoutInSeconds": 60,
                "action": "NOTIFY_COMPONENTS"
            },
            "configurationValidationPolicy": {
                "timeoutInSeconds": 60
            }
        },
        "deploymentName": "Deployment for MyGreengrassCoreGroup",
        "components": {
            "aws.greengrass.Cli": {
                "componentVersion": "2.0.3"
            }
        },
        "iotJobConfiguration": {},
        "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup"
    },
    "responseElements": {
        "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/fdfeba1d-ac6d-44ef-ab28-54f684ea578d",
        "iotJobId": "fdfeba1d-ac6d-44ef-ab28-54f684ea578d",
        "deploymentId": "4196dddc-0a21-4c54-a985-66a525f6946e"
    },
    "requestID": "311b9529-4aad-42ac-8408-c06c6fec79a9",
    "eventID": "c0f3aa2c-af22-48c1-8161-bad4a2ab1841",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123456789012"
}
```

# AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する
<a name="telemetry"></a>

システムヘルステレメトリデータは、Greengrass コアデバイスで重要な操作のパフォーマンス監視に役立つ診断データです。プロジェクトとアプリケーションを作成して、エッジデバイスからのテレメトリデータを取得、分析、変換、レポートできます。プロセスエンジニアといった特定分野のエキスパートは、これらのアプリケーションを使用して、フリートのヘルスに関する洞察を得られます。

次の方法を使用して Greengrass コアデバイスからテレメトリデータを収集できます。
+ **Nucleus テレメトリエミッタコンポーネント** - [[nucleus telemetry emitter component]](nucleus-emitter-component.md) (nucleus テレメトリエミッタコンポーネント)(`aws.greengrass.telemetry.NucleusEmitter`) は、デフォルトでテレメトリデータを `$local/greengrass/telemetry` トピックに公開します。このトピックに公開されるデータを使用して、デバイスのクラウドへの接続が制限されている場合でも、コアデバイスのローカルで動作できます。必要に応じて、テレメトリデータを任意の AWS IoT Core MQTT トピックに発行するようにコンポーネントを設定することもできます。

  テレメトリデータを公開するには、nucleus エミッタコンポーネントをコアデバイスにデプロイする必要があります。テレメトリデータをローカルトピックに公開することに関連するコストはありません。ただし、MQTT トピックを使用して にデータを発行 AWS クラウド するには、[AWS IoT Core 料金](https://aws.amazon.com/iot-core/pricing/)が適用されます。

  <a name="greengrass-software-catalog-influxdb-telemetry-publisher"></a>AWS IoT Greengrass には、InfluxDB と Grafana を使用してコアデバイスでテレメトリデータをローカルに分析および視覚化するのに役立つ[コミュニティコンポーネント](greengrass-software-catalog.md)がいくつか用意されています。これらのコンポーネントは、nucleus エミッタコンポーネントのテレメトリデータを使用します。詳細については、[InfluxDB パブリッシャーコンポーネント](https://github.com/awslabs/aws-greengrass-labs-telemetry-influxdbpublisher)の「README」を参照してください。
+ **テレメトリエージェント** - Greengrass コアデバイスのテレメトリエージェントは、ローカルテレメトリデータを収集し、お客様とのやり取りを必要とせずに Amazon EventBridge に公開します。コアデバイスは、ベストエフォートベースで EventBridge にテレメトリデータを公開します。例えば、コアデバイスはオフライン中にテレメトリデータの配信に失敗することがあります。

  テレメトリエージェント機能は、すべての Greengrass コアデバイスのデフォルトで有効になっています。Greengrass コアデバイスをセットアップすると、すぐに自動的にデータの受信が開始されます。データリンクのコストを除き、コアデバイスから へのデータ転送 AWS IoT Core は無料です。これは、エージェントが AWS 予約済みトピックに発行するためです。ただし、ユースケースによっては、データを受信または処理するときにコストが発生する場合もあります。
**注記**  
Amazon EventBridge は、イベントバスサービスであり、これによって、アプリケーションを Greengrass コアデバイスなどのさまざまなソースからのデータと接続できます。詳細については、「Amazon EventBridge ユーザーガイド」の「[Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)」を参照してください。

 AWS IoT Greengrass Core ソフトウェアが適切に機能するように、 は開発および品質向上の目的でデータ AWS IoT Greengrass を使用します。この機能は、新しく拡張されたエッジ機能を通知するのにも役立ちます。 はテレメトリデータを最大 AWS IoT Greengrass 7 日間保持します。

このセクションでは、テレメトリーエージェントを設定して使用する方法について説明します。nucleus テレメトリエミッタコンポーネントの設定については、「[nucleus テレメトリエミッタ](nucleus-emitter-component.md)」を参照してください。

**Topics**
+ [テレメトリメトリクス](#telemetry-metrics)
+ [テレメトリエージェント設定を設定する](#configure-telemetry-agent-settings)
+ [EventBridge でテレメトリデータをサブスクライブする](#subscribe-for-telemetry-data)

## テレメトリメトリクス
<a name="telemetry-metrics"></a>

テレメトリエージェントによって公開されるメトリクスの説明を次の表に示します。


| 名前 | 説明 | 
| --- | --- | 
|  **システム**  | 
|  `SystemMemUsage`  |  オペレーティングシステムを含む、Greengrass コアデバイスのすべてのアプリケーションで現在使用されているメモリの量。  | 
|  `CpuUsage`  |  オペレーティングシステムを含む Greengrass コアデバイスのすべてのアプリケーションで現在使用されている CPU の量。  | 
|  `TotalNumberOfFDs`  |  Greengrass コアデバイスのオペレーティングシステムによって保存されているファイルディスクリプタの数。1 つのファイルディスクリプタは、1 つのオープンファイルを一意に識別します。  | 
|  **Greengrass nucleus**  | 
|  `NumberOfComponentsRunning`  |  Greengrass コアデバイスで実行されているコンポーネント数。  | 
|  `NumberOfComponentsErrored`  |  Greengrass コアデバイスでエラー状態にあるコンポーネントの数。  | 
|  `NumberOfComponentsInstalled`  |  Greengrass コアデバイスでインストールされているコンポーネントの数。  | 
|  `NumberOfComponentsStarting`  |  Greengrass コアデバイスで開始されているコンポーネントの数。  | 
|  `NumberOfComponentsNew`  |  Greengrass コアデバイスで新しくなったコンポーネントの数。  | 
|  `NumberOfComponentsStopping`  |  Greengrass コアデバイスで停止しているコンポーネントの数。  | 
|  `NumberOfComponentsFinished`  |  Greengrass コアデバイスで終了するコンポーネントの数。  | 
|  `NumberOfComponentsBroken`  |  Greengrass コアデバイスで壊れているコンポーネントの数。  | 
|  `NumberOfComponentsStateless`  |  Greengrass コアデバイスでステートレスであるコンポーネントの数。  | 
|  **クライアントデバイス認証** – この機能には、v2.4.0 以降のクライアントデバイス認証コンポーネントが必要です。  | 
|  `VerifyClientDeviceIdentity.Success`  |  クライアントデバイスの ID の検証に成功した回数。  | 
|  `VerifyClientDeviceIdentity.Failure`  |  クライアントデバイスの ID の検証に失敗した回数。  | 
|  `AuthorizeClientDeviceActions.Success`  |  クライアントデバイスが要求されたアクションを完了することが許可された回数。  | 
|  `AuthorizeClientDeviceActions.Failure`  |  クライアントデバイスが要求されたアクションを完了することが許可されない回数。  | 
|  `GetClientDeviceAuthToken.Success`  |  クライアント端末の認証に成功した回数。  | 
|  `GetClientDeviceAuthToken.Failure`  |  クライアント端末の認証に失敗した回数。  | 
|  `SubscribeToCertificateUpdates.Success`  |  証明書の更新に成功したサブスクリプションの数。  | 
|  `SubscribeToCertificateUpdates.Failure`  |  証明書の更新のサブスクライブしようとして失敗した回数。  | 
|  `ServiceError`  |  クライアントデバイスの auth 全体で、処理されなかった内部エラーの数。  | 
|  **ストリームマネージャー** – この機能を使用するには、Greengrass nucleus コンポーネントの v2.7.0 以降が必要です。  | 
|  `BytesAppended`  |  ストリームマネージャーに追加されたデータのバイト数。  | 
|  `BytesUploadedToIoTAnalytics`  |  ストリームマネージャーがチャネルにエクスポートするデータのバイト数 AWS IoT Analytics。  | 
|  `BytesUploadedToKinesis`  |  ストリームマネージャーが Amazon Kinesis Data Streams のストリームにエクスポートするデータのバイト数。  | 
|  `BytesUploadedToIoTSiteWise`  |  ストリームマネージャーがアセットプロパティにエクスポートするデータのバイト数 AWS IoT SiteWise。  | 
|  `BytesUploadedToS3`  |  ストリームマネージャーが Amazon S3 のオブジェクトにエクスポートするデータのバイト数。  | 
|  **システムメトリクス** – この機能を使用するには、Greengrass nucleus コンポーネントのバージョン 2.15.0 以降が必要です。  | 
|  `CPUArchitecture`  |  デバイス中央処理ユニットのアーキテクチャ。  | 
|  `Family`  |  デバイスオペレーティングシステムファミリー (Windows のみ)。  | 
|  `KernelVersion`  |  デバイスカーネルバージョン (Unix のみ)。  | 
|  `KnowledgeBaseArticles`  |  デバイスにインストールされているナレッジベースの記事 (Windows のみ)。  | 
|  `OSBuildMajor`  |  オペレーティングシステムバージョンのメジャービルド番号 (Windows のみ)。  | 
|  `OSBuildMinor`  |  オペレーティングシステムバージョンのマイナービルド番号 (Windows のみ)。  | 
|  `OSName`  |  デバイスのオペレーティングシステムの名前。  | 
|  `OSVersion`  |  デバイスのオペレーティングシステムのマーケティングバージョン。  | 

## テレメトリエージェント設定を設定する
<a name="configure-telemetry-agent-settings"></a>

テレメトリエージェントは、次のデフォルト設定を使用します。
+ テレメトリエージェントは、1 時間ごとにテレメトリデータを集約します。
+ テレメトリエージェントは 24 時間ごとにテレメトリメッセージを発行します。

テレメトリエージェントは、サービス品質 (QoS) レベルが 0 の MQTT プロトコルを使用してデータを公開します。つまり、配信の確認や公開の再試行は行われません。テレメトリメッセージは、MQTT 接続を、 AWS IoT Coreを送信先とする他のサブスクリプションメッセージと共有します。

データリンクのコストを除き、コアから へのデータ転送 AWS IoT Core は無料です。これは、エージェントが AWS 予約済みトピックに発行するためです。ただし、ユースケースによっては、データを受信または処理するときにコストが発生する場合もあります。

Greengrass コアデバイスごとに、テレメトリエージェント機能を有効または無効にできます。コアデバイスがデータを集約して公開する間隔を設定することもできます。テレメトリを設定するには、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-telemetry)をデプロイするときに、[テレメトリ設定パラメータ](greengrass-nucleus-component.md)をカスタマイズします。

## EventBridge でテレメトリデータをサブスクライブする
<a name="subscribe-for-telemetry-data"></a>

Amazon EventBridge では、ルールを作成して、Greengrass コアデバイスでテレメトリエージェントから公開されたテレメトリデータの処理方法を定義できます。データを受信した EventBridge によって、ルールで定義したターゲットアクションが呼び出されます。例えば、通知の送信、イベント情報の保存、是正措置の実践、他のイベントの呼び出しなどを行うイベントルールを作成できます。

### テレメトリイベント
<a name="events-message-format"></a>

テレメトリイベントは次の形式を使用します。

```
{
  "version": "0",
  "id": "a09d303e-2f6e-3d3c-a693-8e33f4fe3955",
  "detail-type": "Greengrass Telemetry Data",
  "source": "aws.greengrass",
  "account": "123456789012",
  "time": "2020-11-30T20:45:53Z",
  "region": "us-east-1",
  "resources": [],
  "detail": {
    "ThingName": "MyGreengrassCore",
    "Schema": "2020-07-30",
    "ADP": [
      {
        "TS": 1602186483234,
        "NS": "SystemMetrics",
        "M": [
          {
            "N": "TotalNumberOfFDs",
            "Sum": 6447.0,
            "U": "Count"
          },
          {
            "N": "CpuUsage",
            "Sum": 15.458333333333332,
            "U": "Percent"
          },
          {
            "N": "SystemMemUsage",
            "Sum": 10201.0,
            "U": "Megabytes"
          }
        ]
      },
      {
        "TS": 1602186483234,
        "NS": "GreengrassComponents",
        "M": [
          {
            "N": "NumberOfComponentsStopping",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsStarting",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsBroken",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsFinished",
            "Sum": 1.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsInstalled",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsRunning",
            "Sum": 7.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsNew",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsErrored",
            "Sum": 0.0,
            "U": "Count"
          },
          {
            "N": "NumberOfComponentsStateless",
            "Sum": 0.0,
            "U": "Count"
          }
        ]
      },
      {
        "TS": 1602186483234,
        "NS": "aws.greengrass.ClientDeviceAuth",
        "M": [
          {
            "N": "VerifyClientDeviceIdentity.Success",
            "Sum": 3.0,
            "U": "Count"
          },
          {
            "N": "VerifyClientDeviceIdentity.Failure",
            "Sum": 1.0,
            "U": "Count"
          },
          {
            "N": "AuthorizeClientDeviceActions.Success",
            "Sum": 20.0,
            "U": "Count"
          },
          {
            "N": "AuthorizeClientDeviceActions.Failure",
            "Sum": 5.0,
            "U": "Count"
          },
          {
            "N": "GetClientDeviceAuthToken.Success",
            "Sum": 5.0,
            "U": "Count"
          },
          {
            "N": "GetClientDeviceAuthToken.Failure",
            "Sum": 2.0,
            "U": "Count"
          },
          {
            "N": "SubscribeToCertificateUpdates.Success",
            "Sum": 10.0,
            "U": "Count"
          },
          {
            "N": "SubscribeToCertificateUpdates.Failure",
            "Sum": 1.0,
            "U": "Count"
          },
          {
            "N": "ServiceError",
            "Sum": 3.0,
            "U": "Count"
          }
        ]
      },
      {
        "TS": 1602186483234,
        "NS": "aws.greengrass.StreamManager",
        "M": [
          {
            "N": "BytesAppended",
            "Sum": 157745524.0,
            "U": "Bytes"
          },
          {
            "N": "BytesUploadedToIoTAnalytics",
            "Sum": 149012.0,
            "U": "Bytes"
          },
          {
            "N": "BytesUploadedToKinesis",
            "Sum": 12192.0,
            "U": "Bytes"
          },
          {
            "N": "BytesUploadedToIoTSiteWise",
            "Sum": 13321.0,
            "U": "Bytes"
          },
          {
            "N": "BytesUploadedToS3",
            "Sum": 12213.0,
            "U": "Bytes"
          }
        ]
      }
      {
        "TS": 1750104449426,
        "NS": "SystemMetrics",
        "M": [
          {
            "N": "KernelVersion",
            "Sum": 1,
            "U": "6.1.140-154.222.amzn2023.x86_64"
          },
          {
            "N": "OSVersion",
            "Sum": 1,
            "U": "2023.7.20250609"
          },
          {
            "N": "OSName",
            "Sum": 1,
            "U": "Amazon Linux"
          },
          {
            "N": "CPUArchitecture",
            "Sum": 1,
            "U": "Broadwell (Server)"
          },
        ]
      }
    ]
  }
}
```<a name="telemetry-agent-adp-array-config"></a>

`ADP` 配列には、次のプロパティを持つ集約データポイントのリストが含まれています。

`TS`  
データが収集された時刻のタイムスタンプ。

`NS`  
メトリクスの名前空間。

`M`  
メトリクスのリスト。メトリクスには次のプロパティが含まれています。    
`N`  
メトリクスの名前。  
`Sum`  
このテレメトリイベントのメトリクス値の合計。  
`U`  
メトリクス値の単位。

各メトリクスの詳細については、「[テレメトリメトリクス](#telemetry-metrics)」を参照してください。

### EventBridge ルールを作成するための前提条件
<a name="create-events-rule-prerequisites-telemetry"></a>

の EventBridge ルールを作成する前に AWS IoT Greengrass、以下を実行する必要があります。
+ EventBridge のイベント、ルール、ターゲットに精通しておいてください。
+ EventBridge ルールによって呼び出される [[targets]](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-targets.html) (ターゲット) を作成して設定します。ルールは、Amazon Kinesis ストリーム、 AWS Lambda 関数、Amazon SNS トピック、Amazon SQS キューなど、さまざまなタイプのターゲットを呼び出すことができます。

  EventBridge ルールと関連するターゲットは、Greengrass リソースを作成した AWS リージョン にある必要があります。詳細については、「*AWS 全般のリファレンス*」の「[サービスのエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照してください。

詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)」および「[Amazon EventBridge の開始方法](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)」を参照してください。

### テレメトリデータを取得するイベントルールを作成する (コンソール)
<a name="create-telemetry-event-rule-console"></a>

次の手順を使用して、Greengrass コアデバイスによって発行されたテレメトリデータを受信する EventBridge ルール AWS マネジメントコンソール を作成します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。詳細については、「Amazon [ EventBridge ユーザーガイド」の「Creating a EventBridge rule that triggers on an event from an AWS resource](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html)」を参照してください。 * EventBridge *

1. [[Amazon EventBridge console]](https://console.aws.amazon.com/events/) (Amazon EventBridge コンソール)を開き、**[Create rule]** (ルールの作成) を選択します。

1. [**Name and description (名前と説明)**] に、ルールの名前と説明を入力します。

1. [**Define pattern (パターンの定義)**] で、ルールパターンを設定します。

   1. [**イベントパターン**] を選択します。

   1. [**Pre-defined pattern by service (サービスによる定義済みパターン)**] を選択します。

   1. **Service provider (サービスプロバイダー)**で、**AWS**を選択します。

   1. [**Service name (サービス名)**] で [**Greengrass**] を選択します。

   1. **[Event type]** (イベントタイプ) では、**[Greengrass Telemetry Data]** (Greengrass テレメトリデータ) を選択します。

1. [**Select event bus (イベントバスの選択)**] では、イベントバスのオプションはデフォルトのままにしておきます。

1. [**Select targets (ターゲットの選択)**] で、ターゲットを設定します。次の例では、Amazon SQS キューを使用していますが、他のターゲットタイプも設定できます。

   1. **[Target]** (ターゲット) で、**[SQS queue]** (SQS キュー) を選択します。

   1. **[Queue\$1\$1]** (キュー\$1\$1) でターゲットキューを選択します。

1. [**Tags - optional (タグ (オプション))**] で、ルールのタグを定義するか、フィールドを空のままにします。

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

### テレメトリデータを取得するイベントルールを作成する (CLI)
<a name="create-telemetry-event-rule-cli"></a>

次の手順を使用して、Greengrass コアデバイスによって発行されたテレメトリデータを受信する EventBridge ルール AWS CLI を作成します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。

1. ルールを作成します。
   + *thing-name* をコアデバイスのモノ名に置き換えます。

------
#### [ Linux or Unix ]

   ```
   aws events put-rule \
     --name MyGreengrassTelemetryEventRule \
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws events put-rule ^
     --name MyGreengrassTelemetryEventRule ^
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"
   ```

------
#### [ PowerShell ]

   ```
   aws events put-rule `
     --name MyGreengrassTelemetryEventRule `
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"
   ```

------

   パターンで省略されたプロパティは無視されます。

1. トピックをルールターゲットとして追加します。次の例では、Amazon SQS を使用していますが、他のターゲットタイプも設定できます。
   + *queue-arn* を Amazon SQS キューの ARN に置き換えます。

------
#### [ Linux or Unix ]

   ```
   aws events put-targets \
     --rule MyGreengrassTelemetryEventRule \
     --targets "Id"="1","Arn"="queue-arn"
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws events put-targets ^
     --rule MyGreengrassTelemetryEventRule ^
     --targets "Id"="1","Arn"="queue-arn"
   ```

------
#### [ PowerShell ]

   ```
   aws events put-targets `
     --rule MyGreengrassTelemetryEventRule `
     --targets "Id"="1","Arn"="queue-arn"
   ```

------
**注記**  
Amazon EventBridge にターゲットキューの呼び出しを許可するには、トピックにリソースベースのポリシーを追加する必要があります。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon SQS permissions](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sqs-permissions)」を参照してください。

詳細については、「Amazon EventBridge ユーザーガイド」の「[EventBridge のイベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html)」を参照してください。

# デプロイとコンポーネントのヘルスステータス通知を受け取る
<a name="deployment-health-notifications"></a>

Amazon EventBridge イベントルールは、デバイスが受信した Greengrass デプロイと、デバイスにインストールされているコンポーネントの状態変更に関する通知を提供します。EventBridge は、 AWS リソースの変更を説明するシステムイベントのほぼリアルタイムのストリームを提供します。 は、これらのイベントを*ベストエフォート*ベースで EventBridge AWS IoT Greengrass に送信します。つまり、 はすべてのイベントを EventBridge に送信 AWS IoT Greengrass しようとしますが、まれにイベントが配信されない場合があります。さらに、 は特定のイベントの複数のコピーを送信する AWS IoT Greengrass 可能性があります。つまり、イベントリスナーは、イベントが発生した順序でイベントを受信しない可能性があります。

**注記**  
Amazon EventBridge は、アプリケーションを [Greengrass Core デバイス](telemetry.md)やデプロイよびコンポーネント通知などのさまざまなソースのデータに接続するために使用できるイベントバスサービスです。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)」を参照してください。

**Topics**
+ [デプロイステータスの変更イベント](#deployment.events-message-format)
+ [コンポーネントのステータス変更イベント](#component.events-message-format)
+ [EventBridge ルールを作成するための前提条件](#create-events-rule-prereqs)
+ [デバイスヘルス通知を設定する (コンソール)](#create-events-rule-console)
+ [デバイスヘルス通知を設定する (CLI)](#create-events-rule-cli)
+ [デバイスヘルス通知を設定する (CloudFormation)](#create-events-rule-cloudformation)
+ [関連情報](#deployment-notifications-see-also)

## デプロイステータスの変更イベント
<a name="deployment.events-message-format"></a>

AWS IoT Greengrass は、デプロイが `FAILED`、、`SUCCEEDED`、`COMPLETED``REJECTED`、および の状態になるとイベントを発行します`CANCELED`。すべての状態遷移または指定した状態への移行に対して実行される EventBridge ルールを作成できます。デプロイがルールを開始する状態になると、EventBridge はルールで定義されたターゲットアクションを呼び出します。これにより、通知を送信したり、イベント情報をキャプチャしたり、修正アクションを実行したり、状態の変更に応じて他のイベントを開始したりできます。例えば、次のユースケースのルールを作成できます。
+ アセットのダウンロードや担当者の通知など、デプロイ後のオペレーションを開始します。
+ デプロイの成功または失敗時に通知を送信します。
+ デプロイイベントに関するカスタムメトリクスを発行します。

デプロイ状態変更の[イベント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)では、次の形式を使用します。

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass V2 Effective Deployment Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "region":"us-west-2",
    "time":"2018-03-22T00:38:11Z",
    "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"],
    "detail":{    
        "deploymentId": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681",
        "coreDeviceExecutionStatus": "FAILED|SUCCEEDED|COMPLETED|REJECTED|CANCELED",
        "statusDetails": {
          "errorStack": ["DEPLOYMENT_FAILURE", "ARTIFACT_DOWNLOAD_ERROR", "S3_ERROR", "S3_ACCESS_DENIED", "S3_HEAD_OBJECT_ACCESS_DENIED"],
          "errorTypes": ["DEPENDENCY_ERROR", "PERMISSION_ERROR"],
        },
        "reason": "S3_HEAD_OBJECT_ACCESS_DENIED: FAILED_NO_STATE_CHANGE: Failed to download artifact name: 's3://pentest27/nucleus/281/aws.greengrass.nucleus.zip' for component aws.greengrass.Nucleus-2.8.1, reason: S3 HeadObject returns 403 Access Denied. Ensure the IAM role associated with the core device has a policy granting s3:GetObject. null (Service: S3, Status Code: 403, Request ID: HR94ZNT2161DAR58, Extended Request ID: wTX4DDI+qigQt3uzwl9rlnQiYlBgwvPm/KJFWeFAn9t1mnGXTms/luLCYANgq08RIH+x2H+hEKc=)"
     }
}
```

デプロイのステータスを更新するルールやイベントを作成できます。`FAILED`、`SUCCEEDED`、`COMPLETED`、`REJECTED` または `CANCELED` のいずれかとしてデプロイが完了すると、イベントが開始されます。コアデバイスでのデプロイが失敗した場合、その理由を説明する詳細なレスポンスを受け取ります。デプロイエラーコードの詳細については、「[詳細なデプロイエラーコード](troubleshooting-deployment.md)」を参照してください。

**デプロイの状態**  
+ `FAILED`。デプロイに失敗しました。
+ `SUCCEEDED`。モノのグループを対象としたデプロイが正常に完了しました。
+ `COMPLETED`。モノを対象としたデプロイが正常に完了しました。
+ `REJECTED`。デプロイが拒否されました。詳細については、`statusDetails` フィールドを参照してください。
+ `CANCELED`。デプロイはユーザーによってキャンセルされました。

イベントが重複したり、順序が順不同である可能性があります。イベントの順序を特定するには、`time` プロパティを使用します。

`errorStacks` および `errorTypes` のエラーコードの完全なリストについては、「[詳細なデプロイエラーコード](troubleshooting-deployment.md)」および「[詳細なコンポーネントのステータスコード](troubleshooting-component.md)」を参照してください。

## コンポーネントのステータス変更イベント
<a name="component.events-message-format"></a>

 AWS IoT Greengrass バージョン 2.12.2 以前では、コンポーネントが `ERRORED`および の状態になると、Greengrass はイベントを発行します`BROKEN`。Greengrass nucleus バージョン 2.12.3 以降では、コンポーネントが `ERRORED`、`BROKEN`、`RUNNING`、および `FINISHED` の状態になると、Greengrass はイベントを出力します。Greengrass はデプロイの完了時にもイベントを発行します。すべての状態遷移または指定した状態への移行に対して実行される EventBridge ルールを作成できます。インストールされたコンポーネントがルールを開始する状態になると、EventBridge はルールで定義されたターゲットアクションを呼び出します。これにより、通知を送信したり、イベント情報をキャプチャしたり、修正アクションを実行したり、状態の変更に応じて他のイベントを開始したりできます。

コンポーネントの状態変更の[イベント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)では、次の形式を使用します。

------
#### [ Greengrass nucleus v2.12.2 and earlier ]

コンポーネントステータス: `ERRORED` または `BROKEN`  

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass V2 Installed Component Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "region":"us-west-2",
    "time":"2018-03-22T00:38:11Z",
    "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"],
    "detail": {
       "components": [
          {
            "componentName": "MyComponent",
            "componentVersion": "1.0.0",
            "root": true,
            "lifecycleState": "ERRORED|BROKEN",
            "lifecycleStatusCodes": ["STARTUP_ERROR"],
            "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1."
          }
        ]
    }
}
```

------
#### [ Greengrass nucleus v2.12.3 and later ]

コンポーネントステータス: `ERRORED` または `BROKEN`  

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass V2 Installed Component Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "region":"us-west-2",
    "time":"2018-03-22T00:38:11Z",
    "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"],
    "detail": {
       "components": [
          {
            "componentName": "MyComponent",
            "componentVersion": "1.0.0",
            "root": true,
            "lifecycleState": "ERRORED|BROKEN",
            "lifecycleStatusCodes": ["STARTUP_ERROR"],
            "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1."
          }
        ]
    }
}
```

コンポーネントステータス: `RUNNING` または `FINISHED`  

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass V2 Installed Component Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "region":"us-west-2",
    "time":"2018-03-22T00:38:11Z",
    "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"],
    "detail": {
       "components": [
          {
            "componentName": "MyComponent",
            "componentVersion": "1.0.0",
            "root": true,
            "lifecycleState": "RUNNING|FINISHED",
            "lifecycleStateDetails": null
          }
        ]
    }
}
```

------

インストールされたコンポーネントのステータスを更新するルールやイベントを作成できます。イベントは、コンポーネントの状態がデバイス上で変更されたときに開始されます。コンポーネントにエラーや故障が発生した理由を説明する詳細なレスポンスを受け取ります。また、失敗の理由を示すステータスコードも表示されます。コンポーネントのステータスコードの詳細については、「[詳細なコンポーネントのステータスコード](troubleshooting-component.md)」を参照してください。

## EventBridge ルールを作成するための前提条件
<a name="create-events-rule-prereqs"></a>

の EventBridge ルールを作成する前に AWS IoT Greengrass、次の操作を行います。
+ EventBridge のイベント、ルール、ターゲットに精通しておいてください。
+ EventBridge ルールによって呼び出されるターゲットを作成して設定します。ルールは、以下のようなさまざまなタイプのターゲットを呼び出すことができます。
  + Amazon Simple Notiﬁcation Service (Amazon SNS)
  + AWS Lambda 関数
  + Amazon Kinesis Video Streams
  + Amazon Simple Queue Service (Amazon SQS) キュー

詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)」および「[Amazon EventBridge の開始方法](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)」を参照してください。

## デバイスヘルス通知を設定する (コンソール)
<a name="create-events-rule-console"></a>

グループのデプロイ状態が変更されたときに Amazon SNS トピックを発行する EventBridge ルールを作成するには、次のステップを使用します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。詳細については、「Amazon [ EventBridge ユーザーガイド」の「Creating a EventBridge rule that triggers on an event from an AWS resource](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html)」を参照してください。 * EventBridge *

1. [Amazon EventBridge コンソール](https://console.aws.amazon.com/events/)を開きます。

1. ナビゲーションペインで **[ルール]** を選択します。

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

1. ルールの名前と説明を入力します。

   ルールには同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

1. **[イベントバス]** で、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、**AWS のデフォルトのイベントバス**を選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに送られます。

1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

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

1. **[Event source]** (イベントソース) で、**[AWS events]** (イベント) を選択します。

1. **[イベントパターン]** で、**[AWS のサービス]** を選択します。

1. **[AWS のサービス]** で [Greengrass] を選択します。

1. **[Event type]** (イベントタイプ) で、次から選択します。
   + デプロイイベントについては、**[Greengrass V2 Effective Deployment Status Change]** (Greengrass V2 の有効なデプロイステータスの変更) を選択します。
   + コンポーネントイベントについては、**[Greengrass V2 Installed Component Status Change]** (Greengrass V2 のインストールされたコンポーネントのステータス変更) を選択します。

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

1. **[ターゲットタイプ]** で、**[AWS のサービス]** を選択します。

1. **[ターゲットの選択]** で、ターゲットを設定します。この例では Amazon SNS トピックを使用していますが、通知を送信するターゲットタイプには他のトピックも設定できます。

   1. [**Target (ターゲット)**] で [**SNS topic (SNS トピック)**] を選択します。

   1. **[トピック]** で、ターゲットトピックを選択します。

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

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

1. ルールの詳細を確認し、**ルールの作成** を選択します。

## デバイスヘルス通知を設定する (CLI)
<a name="create-events-rule-cli"></a>

次のステップを使用して、Greengrass ステータス変更イベントが発生したときに Amazon SNS トピックを発行する EventBridge ルールを作成します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。

1. ルールを作成します。
   + デプロイステータス変更イベント用。

     ```
     aws events put-rule \
       --name TestRule \
       --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
     ```
   + コンポーネントのステータス変更イベント用。

     ```
     aws events put-rule \
       --name TestRule \
       --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Installed Component Status Change\"]}"
     ```

   パターンで省略されたプロパティは無視されます。

1. トピックをルールターゲットとして追加します。
   + *topic-arn* を Amazon SNS トピックの ARN に置き換えます。

   ```
   aws events put-targets \
     --rule TestRule \
     --targets "Id"="1","Arn"="topic-arn"
   ```
**注記**  
Amazon EventBridge にターゲットトピックの呼び出しを許可するには、トピックにリソースベースのポリシーを追加する必要があります。詳細については、*Amazon EventBridge ユーザーガイド*の「[Amazon SNS のアクセス許可](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions)」を参照してください。

詳細については、「*Amazon EventBridge ユーザーガイド*」の「[EventBridge のイベントとイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html)」を参照してください。

## デバイスヘルス通知を設定する (CloudFormation)
<a name="create-events-rule-cloudformation"></a>

 CloudFormation テンプレートを使用して、Greengrass グループデプロイの状態変更に関する通知を送信する EventBridge ルールを作成します。詳細については、「*AWS CloudFormation ユーザーガイド*」の「[Amazon EventBridge resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html)」を参照してください。

## 関連情報
<a name="deployment-notifications-see-also"></a>
+ [デバイスへのデプロイのステータスを確認する](check-deployment-status.md#check-device-deployment-status)
+ 「*Amazon EventBridge ユーザーガイド*」の「[What is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)」

# Greengrass コアデバイスのステータスを確認する
<a name="device-status"></a>

Greengrass コアデバイスは、ソフトウェアコンポーネントのステータスを に報告します AWS IoT Greengrass。各デバイスのヘルスサマリーと、各デバイス上にある各コンポーネントのステータスを確認することができます。

コアデバイスのヘルスステータスは次のとおりです。
+ `HEALTHY` – AWS IoT Greengrass Core ソフトウェアとすべてのコンポーネントは、コアデバイスで問題なく実行されます。
+ `UNHEALTHY` – AWS IoT Greengrass Core ソフトウェアまたはコンポーネントがコアデバイスでエラー状態です。

**注記**  
AWS IoT Greengrass は、個々のデバイスに依存してステータスの更新を に送信します AWS クラウド。 AWS IoT Greengrass Core ソフトウェアがデバイスで実行されていない場合、またはデバイスが に接続されていない場合 AWS クラウド、そのデバイスの報告されたステータスは現在のステータスを反映していない可能性があります。ステータスのタイムスタンプは、デバイスのステータスが最後に更新された日時を示しています。  
コアデバイスは、次のタイミングでステータス更新を送信します。  
 AWS IoT Greengrass Core ソフトウェアが起動したとき
コアデバイスが からデプロイを受け取るとき AWS クラウド
Greengrass nucleus 2.12.2 以前では、コアデバイスのコンポーネントのステータスが `ERRORED` または `BROKEN` になると、コアデバイスはステータス更新を送信します。
Greengrass nucleus 2.12.3 以降では、コアデバイス上のコンポーネントのステータスが `ERRORED`、`BROKEN`、`RUNNING` または `FINISHED` になると、コアデバイスはステータス更新を送信します。
[ユーザーが設定した定期的な間隔](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-fss) (デフォルトでは 24 時間)
 AWS IoT Greengrass Core v2.7.0 以降では、ローカルデプロイとクラウドデプロイが発生したときにコアデバイスがステータス更新を送信します。

**Topics**
+ [コアデバイスのヘルス状態を確認する](#check-core-device-health-status)
+ [コアデバイスグループのヘルス状態を確認する](#check-core-device-group-health-status)
+ [コアデバイスのコンポーネントステータスを確認する](#check-core-device-component-status)

## コアデバイスのヘルス状態を確認する
<a name="check-core-device-health-status"></a>

個々のコアデバイスのステータスを確認できます。

**コアデバイスのステータスを確認するには (AWS CLI)**
+ 次のコマンドを実行し、デバイスのステータスを取得します。*coreDeviceName* をクエリするコアデバイスの名前に置き換えます。

  ```
  aws greengrassv2 get-core-device --core-device-thing-name coreDeviceName
  ```

  レスポンスには、ステータスを含めたコアデバイスに関する情報が含まれています。

## コアデバイスグループのヘルス状態を確認する
<a name="check-core-device-group-health-status"></a>

コアデバイスのグループ (モノグループ) のステータスを確認できます。

**デバイスグループのステータスを確認するには (AWS CLI)**
+ 次のコマンドを実行し、複数のコアデバイスのステータスを取得します。コマンド内の ARN を、クエリするモノグループの ARN に置き換えます。

  ```
  aws greengrassv2 list-core-devices --thing-group-arn "arn:aws:iot:region:account-id:thinggroup/thingGroupName"
  ```

  レスポンスには、モノグループのコアデバイスのリストが含まれています。リストの各エントリには、コアデバイスのステータスが含まれます。

## コアデバイスのコンポーネントステータスを確認する
<a name="check-core-device-component-status"></a>

コアデバイス上のソフトウェアコンポーネントのステータス (ライフサイクルステータスなど) を確認できます。コンポーネントのライフサイクルステータスの詳細については、「[AWS IoT Greengrass コンポーネントを開発する](develop-greengrass-components.md)」を参照してください。

**コアデバイス上のコンポーネントのステータスを確認するには (AWS CLI)**
+ 次のコマンドを実行し、コアデバイス上のコンポーネントのステータスを取得します。*coreDeviceName* をクエリするコアデバイスの名前に置き換えます。

  ```
  aws greengrassv2 list-installed-components --core-device-thing-name coreDeviceName
  ```

  レスポンスには、コアデバイスで実行されるコンポーネントのリストが含まれています。リスト内の各エントリには、コンポーネントのライフサイクル状態が含まれています。これには、データのステータスがどの程度最新であるか、および Greengrass コアデバイスが特定のコンポーネントを含むメッセージを最後にクラウドに送信した日時が含まれます。レスポンスには、コンポーネントを Greengrass コアデバイスに導入した最新のデプロイソースも含まれています。
**注記**  
このコマンドは、Greengrass コアデバイスが実行するコンポーネントのページ分割されたリストを取得します。デフォルトでは、このリストには、他のコンポーネントの依存関係の中でデプロイされるコンポーネントは含まれません。`topologyFilter` パラメータを `ALL` に設定することで、応答に依存関係を含めることができます。