

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

# 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)」を参照してください。