從AWS IoT Greengrass核心裝置收集系統健康狀態遙測資料 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從AWS IoT Greengrass核心裝置收集系統健康狀態遙測資料

系統健康情況遙測資料是診斷資料,可協助您監視 Greengrass 核心裝置上關鍵作業的效能。您可以建立專案和應用程式,從邊緣裝置擷取、分析、轉換和報告遙測資料。流程工程師等領域專家可以使用這些應用程式來深入瞭解機隊健康狀況。

您可以使用下列方法從 Greengrass 核心裝置收集遙測資料:

  • Nucleus 遙測發射器元件 — Greengrass 核心裝置上的核心遙測發射器元件 (aws.greengrass.telemetry.NucleusEmitter) 預設會將遙測資料發佈至主題。$local/greengrass/telemetry即使您的裝置與雲端的連線能力有限,您也可以使用發佈到本主題的資料在核心裝置上執行本機操作。您也可以選擇將元件設定為將遙測資料發佈到您選擇的 AWS IoT Core MQTT 主題。

    您必須將核心發射器元件部署到核心裝置,才能發佈遙測資料。將遙測資料發佈到本機主題不需要任何費用。但AWS 雲端是,使用 MQTT 主題將資料發佈至的需要AWS IoT Core定價。

    AWS IoT Greengrass提供數個社群元件,協助您使用 InfluxDB 和 Grafana 在核心裝置上本機分析和視覺化遙測資料。這些元件使用來自核輻射器元件的遙測資料。如需詳細資訊,請參閱 In fluxDB 發行者元件的讀我檔案。

  • 遙測代理程式 — Greengrass 核心裝置上的遙測代理程式會收集本機遙測資料,並將其發佈到 Amazon, EventBridge 而不需要任何客戶互動。核心裝置會以 EventBridge 最佳方式將遙測資料發佈至。例如,核心裝置可能無法在離線時傳送遙測資料。

    根據預設,所有 Greengrass 核心裝置都會啟用遙測代理程式功能。一旦您設定 Greengrass 核心裝置,就會自動開始接收資料。除了您的數據鏈接成本外,從核心設備傳輸到的數據AWS IoT Core是免費的。這是因為代理程式會發佈至AWS保留主題。不過,視您的使用案例而定,接收或處理資料時可能會產生費用。

    注意

    Amazon EventBridge 是一種事件匯流排服務,可用來將應用程式與來自各種來源的資料 (例如 Greengrass 核心裝置) 連接。如需詳細資訊,請參閱什麼是 Amazon EventBridge?Amazon 用 EventBridge 戶指南

為了確保AWS IoT Greengrass核心軟件正常運行,AWS IoT Greengrass使用數據進行開發和質量改進目的。此功能也有助於提供新的和增強的邊緣功能。 AWS IoT Greengrass最多可保留 7 天的遙測資料。

本節說明如何設定及使用遙測代理程式。如需設定核心遙測發射器元件的相關資訊,請參閱。核遙測發射器

遙測指標

下表說明遙測代理程式所發行的度量。

名稱 描述

系統

SystemMemUsage

Greengrass 核心裝置 (包括作業系統) 上所有應用程式目前使用的記憶體容量。

CpuUsage

Greengrass 核心裝置 (包括作業系統) 上所有應用程式目前正在使用的 CPU 數量。

TotalNumberOfFDs

Greengrass 核心裝置作業系統所儲存的檔案描述元數目。一個文件描述符唯一標識一個打開的文件。

Greengrass 核

NumberOfComponentsRunning

Greengrass 核心裝置上執行的元件數目。

NumberOfComponentsErrored

Greengrass 核心裝置上處於錯誤狀態的元件數目。

NumberOfComponentsInstalled

安裝在 Greengrass 核心裝置上的元件數目。

NumberOfComponentsStarting

在 Greengrass 核心裝置上啟動的元件數目。

NumberOfComponentsNew

Greengrass 核心裝置上新增的元件數目。

NumberOfComponentsStopping

在 Greengrass 核心裝置上停止的元件數目。

NumberOfComponentsFinished

在 Greengrass 核心裝置上完成的元件數目。

NumberOfComponentsBroken

Greengrass 核心裝置上損壞的元件數目。

NumberOfComponentsStateless

Greengrass 核心裝置上無狀態的元件數目。

客戶端設備身份驗證 — 此功能需要 v2.4.0 或更高版本的客戶端設備身份驗證組件。

VerifyClientDeviceIdentity.Success

驗證用戶端裝置身分是否成功的次數。

VerifyClientDeviceIdentity.Failure

驗證用戶端裝置身分識別失敗的次數。

AuthorizeClientDeviceActions.Success

授權用戶端裝置完成要求動作的次數。

AuthorizeClientDeviceActions.Failure

用戶端裝置未獲授權完成要求動作的次數。

GetClientDeviceAuthToken.Success

成功驗證用戶端裝置的次數。

GetClientDeviceAuthToken.Failure

無法驗證用戶端裝置的次數。

SubscribeToCertificateUpdates.Success

成功訂閱憑證更新的數目。

SubscribeToCertificateUpdates.Failure

嘗試訂閱憑證更新失敗的次數。

ServiceError

用戶端裝置驗證中未處理的內部錯誤數目。

串流管理員 — 此功能需要 v2.7.0 或更新版本的 Greengrass 核元件。

BytesAppended

附加到流管理器的數據的字節數。

BytesUploadedToIoTAnalytics

串流管理員匯出至頻道的資料位元組數AWS IoT Analytics。

BytesUploadedToKinesis

串流管理員匯出至 Amazon Kinesis 資料串流中串流的資料位元組數。

BytesUploadedToIoTSiteWise

串流管理員匯出至資產屬性的資料位元組數AWS IoT SiteWise。

BytesUploadedToS3

串流管理員匯出至 Amazon S3 中物件的資料位元組數。

設定遙測代理程式設

遙測代理程式會使用下列預設設定:

  • 遙測代理程式每小時會彙總一次遙測資料。

  • 遙測代理程式會每 24 小時發佈一次遙測訊息。

遙測代理程式會使用服務品質 (QoS) 層級為 0 的 MQTT 通訊協定發佈資料,這表示它不會確認傳遞或重試發佈嘗試。遙測訊息與目的地訂閱的其他郵件共用 MQTT 連線。AWS IoT Core

除了您的數據鏈接成本之外,從核心到的數據傳輸AWS IoT Core是免費的。這是因為代理程式會發佈至AWS保留主題。不過,視您的使用案例而定,接收或處理資料時可能會產生費用。

您可以為每個 Greengrass 核心裝置啟用或停用遙測代理程式功能。您也可以設定核心裝置彙總和發佈資料的間隔。若要設定遙測,請在部署 Greengrass 核心元件時自訂遙測組態參數

訂閱遙測資料 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 規則和關聯的目標必須AWS 區域位於您建立 Greengrass 資源的位置。如需詳細資訊,請參閱《AWS 一般參考》中的服務端點和配額

如需詳細資訊,請參閱什麼是 Amazon EventBridge?在 Amazon 用 EventBridge 戶指南 EventBridge中開始使用 Amazon

建立事件規則以取得遙測資料 (主控台)

使用下列步驟來建立AWS Management Console接收 Greengrass 核心裝置所發佈之遙測資料的 EventBridge 規則。藉由這個規則,Web 伺服器、電子郵件地址和其他主題訂閱者將能回應事件。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南的建立可從AWS資源觸發事件的 EventBridge 規則

  1. 開啟 Amazon 主 EventBridge控台,然後選擇 [建立規則]。

  2. Name and description (名稱和描述),輸入規則的名稱和描述。

  3. Define pattern (定義模式),設定規則模式。

    1. 選擇 Event pattern (事件模式)。

    2. 選擇Pre-defined pattern by service (依服務預先定義模式)

    3. Service provider (服務提供者),選擇 AWS

    4. Service Name (服務名稱),選擇 Greengrass

    5. 針對 [事件類型],選取 [Greengrass 遙測資料]。

  4. Select event bus (選取事件匯流排),保留預設的事件匯流排選項。

  5. Select targets (選取目標),設定您的目標。下列範例使用 Amazon SQS 佇列,但您可以設定其他目標類型。

    1. 針對「目標」,選擇 SQS 佇列

    2. 佇列 * 中,選擇您的目標佇列。

  6. Tags - optional (標籤 - 選用),定義規則的標籤,或將欄位留白。

  7. 選擇建立

建立事件規則以取得遙測資料 (CLI)

使用下列步驟來建立AWS CLI接收 Greengrass 核心裝置所發佈之遙測資料的 EventBridge 規則。藉由這個規則,Web 伺服器、電子郵件地址和其他主題訂閱者將能回應事件。

  1. 建立 規則。

    • 物件名稱替換為核心設備的物件名稱。

    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,但您可以設定其他目標類型。

    • 使用 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 許可。

如需詳細資訊,請參閱 Amazon EventBridge 使用者指南 EventBridge中的事件和事件模式