AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する - AWS IoT Greengrass

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

AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する

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

次の方法を使用して Greengrass コアデバイスからテレメトリデータを収集できます。

  • Nucleus テレメトリエミッタコンポーネント - [nucleus telemetry emitter component] (nucleus テレメトリエミッタコンポーネント)(aws.greengrass.telemetry.NucleusEmitter) は、デフォルトでテレメトリデータを $local/greengrass/telemetry トピックに公開します。このトピックに公開されるデータを使用して、デバイスのクラウドへの接続が制限されている場合でも、コアデバイスのローカルで動作できます。オプションで、テレメトリデータを選択した AWS IoT Core MQTT トピックに公開するようにコンポーネントを設定することもできます。

    テレメトリデータを公開するには、nucleus エミッタコンポーネントをコアデバイスにデプロイする必要があります。テレメトリデータをローカルトピックに公開することに関連するコストはありません。ただし、データを AWS クラウド に公開するための MQTT トピックの使用には、[AWS IoT Core pricing] (価格設定) が適用されます。

    AWS IoT Greengrass はいくつかのコミュニティコンポーネントを提供し、InfluxDB と Grafana を使用してコアデバイスでローカルにテレメトリデータを分析と可視化するうえで役立ちます。これらのコンポーネントは、nucleus エミッタコンポーネントのテレメトリデータを使用します。詳細については、InfluxDB パブリッシャーコンポーネントの「README」を参照してください。

  • テレメトリエージェント — Greengrass コアデバイスのテレメトリエージェントは、ローカルテレメトリデータを収集し、お客様とのやり取りを必要と EventBridge せずに Amazon に公開します。コアデバイスは、ベストエフォートベース EventBridge でテレメトリデータを に発行します。例えば、コアデバイスはオフライン中にテレメトリデータの配信に失敗することがあります。

    テレメトリエージェント機能は、すべての Greengrass コアデバイスのデフォルトで有効になっています。Greengrass コアデバイスをセットアップすると、すぐに自動的にデータの受信が開始されます。データリンクのコストを除き、コアデバイスから AWS IoT Core へのデータ転送には料金は発生しません。これは、エージェントが AWS の予約済みトピックに公開しているためです。ただし、ユースケースによっては、データを受信または処理するときにコストが発生する場合もあります。

    注記

    Amazon EventBridge は、アプリケーションを Greengrass コアデバイスなどのさまざまなソースのデータに接続するために使用できるイベントバスサービスです。詳細については、「Amazon ユーザーガイド」の「Amazon EventBridgeとは」を参照してください。 EventBridge

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

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

テレメトリメトリクス

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

名前 説明

システム

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 のオブジェクトにエクスポートするデータのバイト数。

テレメトリエージェント設定を設定する

テレメトリエージェントは、次のデフォルト設定を使用します。

  • テレメトリエージェントは、1 時間ごとにテレメトリデータを集約します。

  • テレメトリエージェントは 24 時間ごとにテレメトリメッセージを発行します。

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

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

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

でテレメトリデータをサブスクライブする EventBridge

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

テレメトリイベント

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

{ "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" } ] } ] } }

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

TS

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

NS

メトリクスの名前空間。

M

メトリクスのリスト。メトリクスには次のプロパティが含まれています。

N

メトリクスの名前。

Sum

このテレメトリイベントのメトリクス値の合計。

U

メトリクス値の単位。

各メトリクスの詳細については、「テレメトリメトリクス」を参照してください。

ルールを作成 EventBridgeするための前提条件

の EventBridge ルールを作成する前にAWS IoT Greengrass、以下を実行する必要があります。

  • のイベント、ルール、ターゲットをよく理解してください EventBridge。

  • EventBridge ルールによって呼び出されるターゲットを作成して設定します。ルールによって、Amazon Kinesis ストリーム、AWS Lambda 関数、Amazon SNS トピック、Amazon SQS キューなど、さまざまなタイプのターゲットを呼び出すことができます。

    EventBridge ルールと関連するターゲットは、Greengrass リソースを作成した AWS リージョン にある必要があります。詳細については、「AWS 全般のリファレンス」の「サービスエンドポイントとクォータ」を参照してください。

詳細については、「Amazon ユーザーガイド」の「Amazon EventBridgeとは」および「Amazon の開始 EventBridge方法」を参照してください。 EventBridge

テレメトリデータを取得するイベントルールを作成する (コンソール)

を使用して、Greengrass コアデバイスによって発行されたテレメトリデータを受信する EventBridge ルールAWS Management Consoleを作成するには、次のステップを実行します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。詳細については、「Amazon EventBridge ユーザーガイド」の「 AWSリソースからのイベントでトリガーする EventBridge ルールの作成」を参照してください。

  1. Amazon EventBridge コンソール を開き、ルールの作成 を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

テレメトリデータを取得するイベントルールを作成する (CLI)

を使用して、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\"]}}"

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

  2. トピックをルールターゲットとして追加します。次の例では、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 ユーザーガイド」の「Amazon SQS アクセス許可 EventBridge 」を参照してください。

詳細については、「Amazon ユーザーガイド」の「 のイベントとイベントパターン EventBridge」を参照してください。 EventBridge