入门教程 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

入门教程

在本教程中,您将创建一个机群指标监控传感器的温度来检测潜在的异常。创建机群指标时,您需要定义检测温度超过 80 华氏度的传感器数量的聚合查询 您指定查询每 60 秒运行一次,查询结果将发送到 CloudWatch,您可以在其中查看具有潜在高温风险的传感器数量并设置告警。要完成此教程,需要使用 Amazon CLI

在本教程中,您将学习如何:

完成本教程需要大约 15 分钟。

先决条件

设置

要使用机群指标,您应启用机群索引。要为具有指定数据源和相关配置的事物或事物组启用机群索引,请按照管理事物索引管理事物组索引中的说明操作。

设置

  1. 运行以下命令以启用机群索引并指定要搜索的数据源。

    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"

    有关更多信息,请参阅 启用事物索引

  2. 运行以下 bash 脚本创建十个事物并对其进行描述。

    # 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

    这个脚本创建了十个事物来表示十个传感器。每个事物都有 temperaturerackIdstateNormal 属性如下表所述:

    属性 数据类型 描述
    temperature 数字 温度(单位“华氏”)
    rackId 字符串 包含传感器的服务器机架 ID
    stateNormal 布尔值 传感器的温度值是否正常

    此脚本的输出包含十个 JSON 文件。其中一个 JSON 文件如下所示:

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

    有关更多信息,请参阅创建事物

创建机群指标

要创建机群指标

  1. 运行以下命令创建名为high_temp_FM的机群指标:您可以创建机群指标来监控 CloudWatch 中温度超过 80 华氏度的传感器数量。

    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参数指定查询字符串。在此示例中,查询字符串意味着查询名称以 TempSensor 开头的所有事物以及气温高于华氏 80 度的事物。有关更多信息,请参阅。查询语法

    --时期

    数据类型:整数 --period参数指定检索聚合数据的时间(以秒为单位)。在此示例中,您指定要创建的机群指标每 60 秒检索一次聚合数据。

    --字段-聚合

    数据类型:字符串 --aggregation-field 参数指定要评估的属性。在此示例中,要评估温度属性。

    --聚合-类型

    --aggregation-type 参数指定要在机群指标中显示的统计摘要。对于监控任务,您可以为不同聚合类型自定义聚合查询属性(统计数据基数百分位)。在本示例中,您将指定对于聚合类型统计数据计数返回具有与查询匹配的属性的设备计数,换言之,返回名称以 temSensor 开头的设备计数且温度高于华氏 80 度的设备计数。有关更多信息,请参阅查询聚合数据

    此命令的输出如下所示:

    { "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "metricName": "high_temp_FM" }
    注意

    数据点可能需要一点时间才能在 CloudWatch 中显示。

    要了解有关如何创建机群指标的更多信息,请参阅管理机群指标

    如果您无法创建机群指标,请阅读机群指标故障排查

  2. (可选)运行以下命令以描述名为 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": [ "sum" ], "name": "Statistics" }, "indexName": "AWS_Things", "creationDate": 1625249775.834, "metricName": "high_temp_FM" }

查看 CloudWatch 中的机群指标

创建机群指标后,您可以在 CloudWatch 控制台中查看指标数据。在本教程中,您将看到指标显示了以 temSensor 开头的传感器以及温度高于华氏 80 度的传感器数量。

在 CloudWatch 中查看数据点

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在左侧的 CloudWatch 菜单上,选择 Metrics(指标)展开子菜单然后选择 All metrics(所有指标)。这将打开上半部分的页面显示图表,下半部分包含四个选项卡式部分。

  3. 第一个选项卡式部分所有指标列出您可以在组中查看的所有指标,选择包含所有机群指标的 IotFleetMetrics

  4. 所有指标选项卡上的聚合类型部分,选择 Aggregation type(聚合类型)查看您创建的所有机群指标。

  5. 聚合类型左侧选择机群指标显示图片。您将在指标名称左侧看到值的 总和,这是您在本教程的创建机群指标部分中指定的聚合类型值。

  6. 选择所有指标选项卡右侧叫做图表化指标的第二个选项卡,查看从上一步中选择的机群指标。

    您能够看到一张图表,显示温度高于 80 华氏度的传感器数量,如下所示:

    
              Amazon IoT 机群指标
    注意

    CloudWatch 中的时期属性原定设置为 5 分钟。这是 CloudWatch 中数据点之间的时间间隔。您可以根据您的需求更改时期设置。

  7. (可选)您可以设置指标告警。

    1. 在左侧 CloudWatch 菜单上,选择 Alarms(告警)展开子菜单然后选择 All alarms(所有告警)。

    2. Alarms(告警)页面上,在右上角选择 Create alarm(创建告警)。按照控制台中 Create alarm(创建告警)的说明根据需要创建警报。有关更多信息,请参阅使用 Amazon CloudWatch 告警

要了解更多信息,请阅读使用 Amazon CloudWatch 指标

如果您在 CloudWatch 中看不到数据点,请阅读机群指标故障排除

清除

要删除机群指标

您使用 delete-fleet-metric CLI 命令删除机群指标。

运行以下命令删除名为 high_temp_FM 的机群指标。

aws iot delete-fleet-metric --metric-name "high_temp_FM"

要清除事物

您可以使用 delete-thing CLI 命令删除事物。

运行以下脚本删除您创建的十个事物:

# 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 指标