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

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

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

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

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

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

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

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

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

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

    注意

    Amazon EventBridge 是匯流排服務,可讓您用於將應用程式與來自各種來源的資料互相連線,例如 Greengrass 核心裝置。如需詳細資訊,請參閱什麼是 Amazon EventBridge?亞馬遜 EventBridge 用戶指南

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

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

遙測指標

下表說明遙測代理程式所發佈的指標。

名稱 描述

系統

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?在亞馬遜用 EventBridge 戶指南 EventBridge中開始使用亞馬遜

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

使用下列步驟來建立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中的事件和事件模式