

Amazon Monitron 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需類似 Amazon Monitron 的功能，請參閱我們的[部落格文章](https://aws.amazon.com/blogs/machine-learning/maintain-access-and-consider-alternatives-for-amazon-monitron)。

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

# Amazon Monitron Kinesis 資料匯出 v1
<a name="monitron-kinesis-export"></a>

**注意**  
Amazon Monitron Kinesis 資料匯出結構描述 v1 已棄用。進一步了解 [v2 資料匯出結構描述](monitron-kinesis-export-v2.md)。

您可以從 Amazon Monitron 匯出傳入的測量資料和對應的推論結果，並執行即時分析。資料匯出會將即時資料串流至 Kinesis。

**Topics**
+ [

## 將您的資料匯出至 Kinesis 串流
](#exporting-stream-procedure)
+ [

## 編輯即時資料匯出設定
](#edit-live-export)
+ [

## 停止即時資料匯出
](#stop-kinesis-export)
+ [

## 檢視資料匯出錯誤
](#viewing-kinesis-export-errors)
+ [

## 為 Kinesis 串流使用伺服器端加密
](#data-export-server-side-encryption)
+ [

# 使用 Amazon CloudWatch Logs 進行監控
](data-export-cloudwatch-logs.md)
+ [

# 在 Amazon S3 中存放匯出的資料
](kinesis-store-S3.md)
+ [

# 使用 Lambda 處理資料
](data-export-lambda.md)
+ [

# 了解 v1 資料匯出結構描述
](data-export-schema.md)

## 將您的資料匯出至 Kinesis 串流
<a name="exporting-stream-procedure"></a>

1. 從專案的主頁面靠近頁面底部右側，選擇**開始即時資料匯出**。

1. 在**選取 Amazon Kinesis 資料串流**下，執行下列其中一項操作：
   + 在搜尋方塊中輸入現有串流的名稱。然後跳至步驟 5。
   + 選擇**建立新的資料串流**。

1. 在**建立資料串流**頁面**的資料串流組態**下，輸入您的資料串流名稱。

1. 在資料串流容量下，選擇您的容量模式：
   + 如果資料串流的輸送量需求無法預測且可變，請選擇**隨需**。
   + 如果您可以可靠地預估資料串流的輸送量需求，請選擇**佈建**。然後，在佈建碎片下，輸入您要建立的碎片數量，或選擇**碎片估算器**。

1. 選擇 **建立資料串流**。

## 編輯即時資料匯出設定
<a name="edit-live-export"></a>

若要編輯即時資料匯出設定：

1. 開啟 Amazon Monitron 主控台。

1. 從導覽窗格中選擇**專案**。

1. 如果您有多個專案，請選擇您要編輯匯出設定的專案。

1. 在專案的主頁面的**即時資料匯出**下，從**動作**下拉式功能表中，選擇**編輯即時資料匯出設定**。

## 停止即時資料匯出
<a name="stop-kinesis-export"></a>

1. 開啟 Amazon Monitron 主控台。

1. 從導覽窗格中選擇**專案**。

1. 如果您有多個專案，請選擇您要編輯匯出設定的專案。

1. 在專案的主頁面的**即時資料匯出**下，從**動作**下拉式功能表中，選擇**停止即時資料匯出**。

1. 在快顯視窗中，選擇**停止**。

## 檢視資料匯出錯誤
<a name="viewing-kinesis-export-errors"></a>

若要檢視 CloudWatch Logs 介面中的錯誤訊息：
+ 在 Amazon Monitron 主控台的專案主頁面的**即時資料匯出**下，選擇 **CloudWatch 日誌群組**。

## 為 Kinesis 串流使用伺服器端加密
<a name="data-export-server-side-encryption"></a>

您可以在設定 Kinesis 資料匯出之前，為 Kinesis 串流啟用伺服器端加密。不過，如果在設定 Kinesis 資料匯出後啟用伺服器端加密，Amazon Monitron 將無法發佈至串流。這是因為 Amazon Monitron 沒有呼叫 [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 的許可，因此可以加密傳送至 Kinesis 的資料。

若要解決此問題，請遵循 下的指示[編輯即時資料匯出設定](#edit-live-export)，但不變更組態。這會將您已設定的加密與匯出組態建立關聯。

# 使用 Amazon CloudWatch Logs 進行監控
<a name="data-export-cloudwatch-logs"></a>

您可以使用 Amazon CloudWatch Logs 監控 Amazon Monitron 即時資料匯出。當測量無法匯出時，Amazon Monitron 會將日誌事件傳送至您的 CloudWatch Logs。您也可以在錯誤日誌上設定指標篩選條件，以產生指標並設定警示。警示可以監控特定閾值，並在達到這些閾值時傳送通知或採取動作。如需更多詳細資訊，請參閱《 [CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)》。

Amazon Monitron 會將日誌事件傳送至 /aws/monitron/data-export/\$1HASH\$1ID\$1 日誌群組。

日誌事件具有下列 JSON 格式：

```
{ 
    "assetDisplayName": "string", 
    "destination": "string", 
    "errorCode": "string", 
    "errorMessage": "string", 
    "eventId": "string", 
    "positionDisplayName": "string", 
    "projectDisplayName": "string", 
    "projectName": "string", 
    "sensorId": "string", 
    "siteDisplayName": "string", 
    "timestamp": "string"
}
```

assetDisplayName  
+ 應用程式中顯示的資產名稱
+ 類型：字串

目的地  
+ Kinesis 資料串流的 ARN
+ 類型：字串
+ 模式：arn：aws：kinesis：\$1\$1REGION\$1\$1：\$1\$1AWS\$1ACCOUNT\$1ID\$1\$1：stream/\$1\$1STREAM\$1NAME\$1\$1

errorCode  
+ 錯誤碼
+ 類型：字串
+ 有效值:`INTERNAL_SEVER_ERROR | KINESIS_RESOURCE_NOT_FOUND | KINESIS_PROVISIONED_THROUGHPUT_EXCEEDED | KMS_ACCESS_DENIED | KMS_NOT_FOUND | KMS_DISABLED | KMS_INVALID_STATE | KMS_THROTTLING`

errorMessage  
+ 詳細的錯誤訊息
+ 類型：字串

eventId  
+ 對應至每個測量匯出的唯一事件 ID
+ 類型：字串

positionDisplayName  
+ 應用程式中顯示的感應器位置名稱
+ 類型：字串

sensorId  
+ 傳送測量的感應器實體 ID
+ 類型：字串

siteDisplayName  
+ 應用程式中顯示的網站名稱
+ 類型：字串

timestamp  
+ Amazon Monitron 服務在 UTC 中接收測量的時間戳記
+ 類型：字串
+ 模式：yyyy-mm-dd hh：mm：ss.SSS

# 在 Amazon S3 中存放匯出的資料
<a name="kinesis-store-S3"></a>

**Topics**
+ [

## 使用預先定義的 CloudFormation 範本
](#kinesis-cloudfront-makestack)
+ [

## 在主控台中手動設定 Kinesis
](#kinesis-configure-console)

## 使用預先定義的 CloudFormation 範本
<a name="kinesis-cloudfront-makestack"></a>

Amazon Monitron 提供預先定義的 AWS CloudFormation 範本，以協助快速設定 Firehose，將資料從 Kinesis 資料串流交付至 Amazon S3 儲存貯體。此範本會啟用動態分割，而交付的 Amazon S3 物件將使用 Amazon Monitron 建議的下列金鑰格式： `/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}`

1. 登入 AWS 您的帳戶。

1. 使用下列 URL 開啟新的瀏覽器索引標籤：

   ```
   https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?templateURL=https://s3.us-east-1.amazonaws.com/monitron-cloudformation-templates-us-east-1/monitron_kinesis_data_export.yaml&stackName=monitron-kinesis-live-data-export
   ```

1. 在開啟的 CloudFormation 頁面上的右上角，選取您使用 Amazon Monitron 的區域。

1. 根據預設，範本會建立新的 Kinesis 資料串流和 S3 儲存貯體，以及將資料交付至 Amazon S3 所需的其他資源。您可以變更參數以使用現有資源。

1. 勾選表示*我確認 AWS CloudFormation 可能會建立 IAM 資源的方塊。*

1. 選擇**建立堆疊**。

1. 在下一頁中，選擇任意頻率的重新整理圖示，直到堆疊的狀態為 CREATE\$1COMPLETE 為止。

## 在主控台中手動設定 Kinesis
<a name="kinesis-configure-console"></a>

1. 登入 AWS 管理主控台，並在 https：//https://console.aws.amazon.com/kinesis 開啟 Kinesis 主控台。

1. 在導覽窗格中選擇**交付串流**。

1. 選擇 **Create Delivery Stream (建立交付串流)**。

1. 針對來源，選取 **Amazon Kinesis Data Streams**。

1. 針對目的地，選取 **Amazon S3**。

1. 在**來源設定 Kinesis 資料串流**下，輸入 Kinesis 資料串流的 ARN。

1. 在**交付串流名稱**下，輸入 Kinesis 資料串流的名稱。

1. 在**目的地設定**下，選擇 Amazon S3 儲存貯體或輸入儲存貯體 URI。

1. （選用） 使用 JSON 的內嵌剖析啟用動態分割。如果您想要根據來源資訊和時間戳記分割串流測量資料，此選項是適當的。例如：
   + 選擇**啟用****動態分割**。
   + 針對**新行分隔符號**選擇**啟用**。
   + 選擇**啟用**以進行 **JSON 的內嵌剖析**。
   + 在**動態分割索引鍵**下，新增：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/kinesis-store-S3.html)

1. 選擇**套用動態分割金鑰**，並確認產生的 Amazon S3 儲存貯體字首為 `!{partitionKeyFromQuery:project}/!{partitionKeyFromQuery:site}/!{partitionKeyFromQuery:time}/`。

1. 在 Amazon S3 中，物件將使用下列金鑰格式：`/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}`。

1. 選擇 **Create Delivery Stream (建立交付串流)**。

1. （選用） 使用更精細的路徑。

   如果您選擇動態分割區，如果您計劃使用 AWS Glue 和 Athena 來查詢資料，請使用先前的 Amazon S3 金鑰格式。您也可以選擇更精細的金鑰格式，但 Amazon Athena 查詢不會有效率。以下是設定更精細 Amazon S3 金鑰路徑的範例。

   在**動態分割索引鍵**下，新增：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/kinesis-store-S3.html)

   在 Amazon S3 中，物件將使用下列金鑰格式： ` /project={projectName}/site={siteName}/asset={assetName}/position={positionName}/sensor={sensorId}/date={yyyy-mm-dd}/time={HH:MM:SS}/{filename}`

# 使用 Lambda 處理資料
<a name="data-export-lambda"></a>

**Topics**
+ [

## 步驟 1：建立 [IAM 角色](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)，授予函數存取 AWS 資源的許可
](#create-iam-role)
+ [

## 步驟 2：建立 Lambda 函數
](#create-lambda-function)
+ [

## 步驟 3：設定 Lambda 函數
](#configure-lambda-function)
+ [

## 步驟 4：在 AWS Lambda 主控台中啟用 Kinesis 觸發程序
](#enable-lambda-trigger)

## 步驟 1：建立 [IAM 角色](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)，授予函數存取 AWS 資源的許可
<a name="create-iam-role"></a>

1. 在 IAM 主控台中開啟[角色頁面](https://console.aws.amazon.com/iam/home?#/roles)。

1. 選擇建**立角色**。

1. 建立具備下列屬性的角色。
   + 信任的實體：Lambda
   + 許可：AWSLambdaKinesisExecutionRole （如果 Kinesis 串流已加密，則為 AWSKeyManagementServicePowerUser)
   + 角色名稱：lambda-kinesis-role  
![\[IAM role creation interface showing name, review, and create steps with role details and permissions.\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/images/lambda-create-role.png)

## 步驟 2：建立 Lambda 函數
<a name="create-lambda-function"></a>

1. 開啟 Lambda 主控台中的**函數**頁面。

1. 選擇 **建立函數** 。

1. 選擇 **使用藍圖** 。

1. 在**藍圖**搜尋列中，搜尋並選擇 **kinesis-process-record (nodejs)** 或 **kinesis-process-record-python**。

1. 選擇**設定**。  
![\[Create function interface with options to author from scratch, use a blueprint, or select container image.\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/images/lambda-create-function.png)

## 步驟 3：設定 Lambda 函數
<a name="configure-lambda-function"></a>

1. 選擇**函數名稱**

1. 選擇在第一個步驟中建立的角色做為**執行角色**。

1. 設定 Kinesis 觸發。

   1. 選擇您的 Kinesis 串流。

   1. 按一下**建立函數**。  
![\[Lambda function configuration form with basic information and Kinesis trigger settings.\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/images/lambda-kinesis-trigger.png)

## 步驟 4：在 AWS Lambda 主控台中啟用 Kinesis 觸發程序
<a name="enable-lambda-trigger"></a>

1. 在**組態**索引標籤上，選擇**觸發。**

1. 勾選 Kinesis 串流名稱旁的方塊，然後選擇**啟用**。  
![\[Lambda function configuration page with Triggers tab and Kinesis stream trigger highlighted.\]](http://docs.aws.amazon.com/zh_tw/Monitron/latest/user-guide/images/kinesis-process-record-lambda.png)

此範例中使用的藍圖只會使用所選串流的日誌資料。您可以稍後進一步編輯 Lambda 函數程式碼，以完成更複雜的任務。

# 了解 v1 資料匯出結構描述
<a name="data-export-schema"></a>

**注意**  
Amazon Monitron Kinesis 資料匯出結構描述 v1 已棄用。進一步了解 [v2 資料匯出結構描述](monitron-kinesis-export-v2.md)。

每個測量資料及其對應的推論結果會以 JSON 格式匯出為一個 Kinesis 資料串流記錄。

**Topics**
+ [

## v1 結構描述格式
](#data-export-schema-format)
+ [

## v1 結構描述參數
](#data-export-schema-parameters)

## v1 結構描述格式
<a name="data-export-schema-format"></a>

```
{
    "timestamp": "string",
    "eventId": "string",
    "version": "string",
    "projectDisplayName": "string",
    "siteDisplayName": "string",
    "assetDisplayName": "string",
    "sensorPositionDisplayName": "string",
    "sensor": {
        "physicalId": "string",
        "rssi": number
    },
    "gateway": {
        "physicalId": "string"
    },
    "measurement": {
        "features": {
            "acceleration": {
                "band0To6000Hz": {
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                },
                "band10To1000Hz": {
                    "resultantVector": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            },
            "temperature": number,
            "velocity": {
                "band10To1000Hz": {
                    "resultantVector": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            }
        },
        "sequenceNo": number
    },
    "models": {
        "temperatureML": {
            "persistentClassificationOutput": "string",
            "pointwiseClassificationOutput": "string"
        },
        "vibrationISO": {
            "isoClass": "string",
            "mutedThreshold": "string",
            "persistentClassificationOutput": "string",
            "pointwiseClassificationOutput": "string"
        },
        "vibrationML": {
            "persistentClassificationOutput": "string",
            "pointwiseClassificationOutput": "string"
        }
    },
    "assetState": {
        "newState": "string",
        "previousState": "string"
    }
}
```

## v1 結構描述參數
<a name="data-export-schema-parameters"></a>

timestamp  
+ Monitron 服務在 UTC 中接收測量的時間戳記
+ 類型：字串
+ 模式：yyyy-mm-dd hh：mm：ss.SSS

eventId  
+ 為每個測量指派的唯一資料匯出事件 ID。可用於刪除收到的 Kinesis 串流記錄的重複資料。
+ 類型：字串

version  
+ 結構描述版本
+ 類型：字串
+ 目前值：1.0

projectDisplayName  
+ 應用程式和主控台中顯示的專案名稱
+ 類型：字串

siteDisplayName  
+ 應用程式中顯示的網站名稱
+ 類型：字串

assetDisplayName  
+ 應用程式中顯示的資產名稱
+ 類型：字串

sensorPositionDisplayName  
+ 應用程式中顯示的感應器位置名稱
+ 類型：字串

sensor.physicalId  
+ 傳送測量的感應器實體 ID
+ 類型：字串

sensor.rssi  
+ 感應器藍牙接收的訊號強度指標值
+ 類型：數字
+ 單位：dBm

gateway.physicalId  
+ 用於將資料傳輸至 Amazon Monitron 服務的閘道實體 ID
+ 類型：字串

measurement.features.acceleration.band0To6000Hz.xAxis.rms  
+ 在 x 軸的頻帶 0–6000 Hz 中觀察到的加速的根均方
+ 類型：數字
+ 單位：m/s^2

measurement.features.acceleration.band0To6000Hz.yAxis.rms  
+ 在 y 軸的頻帶 0–6000 Hz 中觀察到的加速根均方
+ 類型：數字
+ 單位：m/s^2

measurement.features.acceleration.band0To6000Hz.zAxis.rms  
+ 在 y 軸的頻帶 0–6000 Hz 中觀察到的加速根均方
+ 類型：數字
+ 單位：m/s^2

measurement.features.acceleration.band10To1000Hz.resultantVector.absMax  
+ 在頻帶 10–1000 Hz 中觀察到的絕對最大加速度
+ 類型：數字
+ 單位：m/s^2

measurement.features.acceleration.band10To1000Hz.resultantVector.absMin  
+ 在頻帶 10–1000 Hz 中觀察到的絕對最小加速度
+ 類型：數字
+ 單位：m/s^2

measurement.features.acceleration.band10To1000Hz.resultantVector.crestFactor  
+ 在頻帶 10–1000 Hz 中觀察到的加速波紋因數
+ 類型：數字

measurement.features.acceleration.band10To1000Hz.resultantVector.rms  
+ 在頻帶 10–1000 Hz 中觀察到的加速的根均方
+ 類型：數字
+ m/s^2

measurement.features.acceleration.band10To1000Hz.xAxis.rms  
+ 在 x 軸的頻帶 10–1000 Hz 中觀察到的加速的根均方
+ 類型：數字
+ m/s^2

measurement.features.acceleration.band10To1000Hz.yAxis.rms  
+ 在 y 軸的頻帶 10–1000 Hz 中觀察到的加速的根均方
+ 類型：數字
+ m/s^2

measurement.features.acceleration.band10To1000Hz.zAxis.rms  
+ 在 z 軸的頻帶 10–1000 Hz 中觀察到的加速根均方
+ 類型：數字
+ m/s^2

measurement.features.temp  
+ 觀察到的溫度
+ 類型：數字
+ °C/degC

measurement.features.velocity.band10To1000Hz.resultantVector.absMax  
+ 在頻帶 10–1000 Hz 中觀察到的絕對最大速度
+ 類型：數字
+ mm/s

measurement.features.velocity.band10To1000Hz.resultantVector.absMin  
+ 在頻帶 10–1000 Hz 中觀察到的絕對最小速度
+ 類型：數字
+ mm/s

measurement.features.velocity.band10To1000Hz.resultantVector.crestFactor  
+ 在頻帶 10–1000 Hz 中觀察到的速度波峰係數
+ 類型：數字

measurement.features.velocity.band10To1000Hz.resultantVector.rms  
+ 在頻帶 10–1000 Hz 中觀察到的速度的根均方
+ 類型：數字
+ mm/s

measurement.features.velocity.band10To1000Hz.xAxis.rms  
+ 在 x 軸的頻帶 10–1000 Hz 中觀察到的速度的根均方
+ 類型：數字
+ mm/s

measurement.features.velocity.band10To1000Hz.yAxis.rms  
+ 在 y 軸的頻帶 10–1000 Hz 中觀察到的速度的根均方
+ 類型：數字
+ mm/s

measurement.features.velocity.band10To1000Hz.zAxis.rms  
+ 在 z 軸的頻帶 10–1000 Hz 中觀察到的速度的根均方
+ 類型：數字
+ mm/s

measurement.sequenceNo  
+ 測量序號
+ 類型：數字

models.temperatureML.persistentClassificationOutput  
+ 機器學習型溫度模型的持久性分類輸出
+ 類型：數字
+ 有效值:`UNKNOWN | HEALTHY | WARNING | ALARM`

models.temperatureML.pointwiseClassificationOutput  
+ 機器學習型溫度模型的點分類輸出
+ 類型：字串
+ 有效值:`UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

models.vibrationISO.isoClass  
+ ISO 型振動模型使用的 ISO 20816 類別 （測量和評估機器振動的標準）
+ 類型：字串
+ 有效值:`CLASS1 | CLASS2 | CLASS3 | CLASS4 | FAN_BV2`

models.vibrationISO.mutedThreshold  
+ 從 ISO 型振動模型將通知靜音的閾值
+ 類型：字串
+ 有效值:`WARNING | ALARM`

models.vibrationISO.persistentClassificationOutput  
+ ISO 型振動模型的持久性分類輸出
+ 類型：字串
+ 有效值:`UNKNOWN | HEALTHY | WARNING | ALARM`

models.vibrationISO.pointwiseClassificationOutput  
+ ISO 型振動模型的點分類輸出
+ 類型：字串
+ 有效值:`UNKNOWN | HEALTHY | WARNING | ALARM | MUTED_WARNING | MUTED_ALARM`

models.vibrationML.persistentClassificationOutput  
+ 機器學習型振動模型的持久性分類輸出
+ 類型：字串
+ 有效值:`UNKNOWN | HEALTHY | WARNING | ALARM`

models.vibrationML.pointwiseClassificationOutput  
+ 機器學習型振動模型的點分類輸出
+ 類型：字串
+ 有效值:`UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

assetState.newState  
+ 處理測量之後的機器狀態
+ 類型：字串
+ 有效值:`UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`

assetState.previousState  
+ 處理測量前的機器狀態
+ 類型：字串
+ 有效值:`UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`