翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
入門チュートリアル
このチュートリアルでは、センサーの温度を監視し、潜在的な異常を検出するために、フリートメトリクスを作成します。フリートメトリクスを作成するときは、華氏80度を超える温度を持つセンサーの数を検出する集計クエリを定義します。クエリを 60 秒ごとに実行するように指定し、クエリ結果が に出力されます。これにより CloudWatch、高リスクの可能性があるセンサーの数を表示し、アラームを設定できます。このチュートリアルを完了するには、AWS CLIを使用します。
このチュートリアルの学習内容は次のとおりです。
このチュートリアルの完了には 15 分ほどかかります。
前提条件
-
AWS CLIの最新バージョンをインストールします
-
集計データのクエリについて理解する
-
Amazon CloudWatch メトリクスの使用について理解する
セットアップする
フリートメトリクスを使用するには、フリートインデックス作成を有効にします。指定されたデータソースと関連付けられた設定を持つモノ、またはモノのグループに対してフリートのインデックス作成を有効にするには、「モノのインデックス作成の管理」と「モノのグループのインデックス作成の管理」にある手順に従ってください。
をセットアップするには
-
次のコマンドを実行して、フリートインデックス作成を有効にし、検索元のデータソースを指定します。
aws iot update-indexing-configuration \ --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \
前の CLI コマンドの例は、
AWS_Things
インデックスを使用して、フリートインデックス作成に、レジストリーデータ、シャドウデータ、およびモノの接続ステータスの検索サポートをさせます。設定の変更が完了するまで数分かかることがあります。フリートメトリクスを作成する前に、フリートインデックス作成が有効になっていることを確認してください。
フリートインデックスが有効になっているかどうかを確認するには、次の CLI コマンドを実行します:
aws --region
us-east-1
iot describe-index --index-name "AWS_Things"詳細については、「モノのインデックス作成を有効にする」をご覧ください。
-
次のbashスクリプトを実行して、10個のものを作成し、それらを記述します。
# Bash script. Type `bash` before running in other shells. Temperatures=(70 71 72 73 74 75 47 97 98 99) Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6) IsNormal=(true true true true true true false false false false) for ((i=0; i < 10; i++)) do thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}") aws iot describe-thing --thing-name "TempSensor$i" done
このスクリプトは、10 個のセンサーを表す 10 個のものを作成します。それぞれのモノは、次の表で説明されているよう
temperature
、rackId
、 およびstateNormal
の属性を持っています。属性 データタイプ 説明 temperature
数 温度値 (華氏) rackId
文字列 センサーを含むサーバーラックの ID stateNormal
ブール値 センサーの温度値が正常かどうか このスクリプトの出力には、10 個の JSON ファイルが含まれています。JSON ファイルのうちの 1 つが次のようになります。
{ "version": 1, "thingName": "TempSensor0", "defaultClientId": "TempSensor0", "attributes": { "rackId": "Rack1", "stateNormal": "true", "temperature": "70" }, "thingArn": "arn:aws:iot:
region
:account
:thing/TempSensor0", "thingId": "example-thing-id
" }詳細については、「モノの作成」を参照してください。
フリートメトリクスを作成します
フリートメトリクスを作成します
-
次のコマンドを実行して、
high_temp_FM
という名前のフリーメトリクスを作成します。フリートメトリクスを作成して、 で温度が華氏 80 度を超えるセンサーの数をモニタリングします CloudWatch。aws iot create-fleet-metric --metric-name "high_temp_FM" --query-string "thingName:TempSensor* AND attributes.temperature >80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count
–-メトリクス名
データ型 – 文字列
--metric-name
パラメーターは、フリートメトリクス名を指定します。この例では、high_temp_FMという名前のフリートメトリクス を作成しています。--query <string>
データ型 – 文字列
--query-string
パラメーターは、クエリ文字列を指定します。この例では、クエリ文字列 は、名前が で始まり、温度が華氏 80 度を超えるすべてのモノTempSensorをクエリすることを意味します。詳細については、「クエリ構文」を参照してください。–-期間
データ型: 整数
--period
パラメーターは、集計データを取得する時間を秒単位で指定します。この例では、作成するフリートメトリクスが 60 秒ごとに集計データを取得するように指定します。–aggregation-field
データ型:文字列
--aggregation-field
パラメーターは、評価する属性を指定します。この例では、温度属性を評価します。–-aggregation-type
--aggregation-type
パラメーターは、フリートメトリクスに表示する統計概要を指定します。モニタリングタスクでは、異なる集計タイプ ([Statistics] (統計)、[Cardinality] (濃度)、および [Percentile] (パーセンタイル)の集計クエリプロパティをカスタマイズできます。この例では、集計タイプと統計の数を指定して、クエリに一致する属性を持つデバイスの数、つまり、温度が華氏 80 度TempSensorを超える名前で始まるデバイスの数を返します。詳細については、「集計データのクエリ」をご覧ください。このコマンドの出力は以下のようになります。
{ "metricArn": "arn:aws:iot:
region
:111122223333
:fleetmetric/high_temp_FM", "metricName": "high_temp_FM
" }注記
データポイントが に表示されるまでに時間がかかる場合があります CloudWatch。
フリートメトリクスの作成方法については、「フリートメトリクスの管理」を参照してください。。
フリートメトリックスを作成できない場合は、「フリートメトリクスのトラブルシューティング」を参照してください。
-
(オプション) 次のコマンドを実行して、high_temp_FMという名前のフリートメトリクスを記述します。
aws iot describe-fleet-metric --metric-name "
high_temp_FM
"このコマンドの出力は以下のようになります。
{ "queryVersion": "2017-09-30", "lastModifiedDate": 1625249775.834, "queryString": "*", "period": 60, "metricArn": "arn:aws:iot:
region
:111122223333
:fleetmetric/high_temp_FM", "aggregationField": "registry.version", "version": 1, "aggregationType": { "values": [ "count" ], "name": "Statistics" }, "indexName": "AWS_Things", "creationDate": 1625249775.834, "metricName": "high_temp_FM" }
でフリートメトリクスを表示する CloudWatch
フリートメトリクスを作成したら、 でメトリクスデータを表示できます CloudWatch。このチュートリアルでは、 で始まる名前のセンサーの数TempSensorと、温度が華氏 80 度を超えるセンサーの数を示す メトリクスが表示されます。
でデータポイントを表示するには CloudWatch
-
https://console.aws.amazon.com/cloudwatch/
で CloudWatch コンソールを開きます。 -
左側のパネルの CloudWatch メニューで、メトリクス を選択してサブメニューを展開し、すべてのメトリクス を選択します。これにより、上半分はグラフが表示され、下半分は4つのタブ付きセクションが表示されたページが開きます。
-
最初のタブ付きセクション「すべてのメトリクス」には、グループで表示できるすべてのメトリクスが一覧表示され、「 IoTFleetMetrics」を選択します。これにはすべてのフリートメトリクスが含まれます。
-
[All metrics] (すべてのメトリクス) タブの [Aggregation type] (集計タイプ) セクションで、[Aggregation type] (集計タイプ) を選択して、作成したすべてのフリートメトリクスを表示します。
-
フリート指標を選択して、[Aggregation type](集計タイプ)セクションの左側にグラフを表示します。[メトリクス名] の左に、値
カウント
が表示されます。これは、このチュートリアルの「フリートメトリクスを作成する」セクションで指定された集約タイプの値です。 -
[All metrics](すべてのメトリクス) タブの右にある[Graphed metrics](グラフ化したメトリクス)という名前の2番目のタブを選び、前のステップで選んだフリートメトリクスを表示します。
以下の通り、華氏 80 度以上の温度を持つセンサーの数を表示するグラフを確認できます。
注記
の Period 属性は CloudWatch デフォルトで 5 分です。これは、 に表示されるデータポイント間の時間間隔です CloudWatch。必要に応じて、[Period](期間)設定を変更する事ができます。
-
(オプション)メトリクスアラームを設定できます。
-
左側のパネルの CloudWatch メニューで、アラーム を選択してサブメニューを展開し、すべてのアラーム を選択します。
-
[Alarms](アラーム) ページで、右上のコーナーの [Create alarm ] (アラームを作成する)を選びます。コンソールの[Create alarm](アラームを作成する)の指示に従って、必要に応じてアラームを作成します。詳細については、「Amazon CloudWatch アラームの使用」を参照してください。
-
詳細については、「Amazon CloudWatch メトリクスの使用」を参照してください。
にデータポイントが表示されない場合は CloudWatch、「フリートメトリクスのトラブルシューティング」を参照してください。
クリーンアップ
フリートメトリクスを削除するには
delete-fleet-metricCLI コマンドを使用して、フリートメトリクスを削除します。
high_temp_FM という名前のフリートメトリクスを削除するには、次のコマンドを実行します。
aws iot delete-fleet-metric --metric-name "
high_temp_FM
"
モノをクリーンアップするには
delete-thing CLIコマンドを使用してモノを削除します。
作成した 10 個のモノを削除するには、次のスクリプトを実行します。
# Bash script. Type `bash` before running in other shells. for ((i=0; i < 10; i++)) do thing=$(aws iot delete-thing --thing-name "TempSensor$i") done
でメトリクスをクリーンアップするには CloudWatch
CloudWatch では、メトリクスの削除はサポートされていません。メトリクスは、保持スケジュールに基づいて期限切れになります。詳細については、「Amazon CloudWatch メトリクスの使用」を参照してください。