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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon IoT Device Defender

组Amazon IoT Device Defender件 (aws.greengrass.DeviceDefender) 通知管理员 Greengrass 核心设备状态的变化。这有助于识别可能指示受损设备的异常行为。有关更多信息,请参阅 Amazon IoT Core 开发人员指南中的 Amazon IoT Device Defender

此组件读取核心设备上的系统指标。然后,它将指标发布到Amazon IoT Device Defender。有关如何阅读和解释此组件报告的指标的更多信息,请参阅Amazon IoT Core开发人员指南中的设备指标文档规范

注意

此组件提供的功能与中的 Device Defender 连接器类似Amazon IoT Greengrass V1。有关更多信息,请参阅《Amazon IoT Greengrass V1开发者指南》中的 Device Defender 连接器

版本

此组件有以下版本:

  • 3.1.x

  • 3.0.x

  • 2.0.x

有关每个版本组件变更的信息,请参阅变更日志

类型

v3.x

组件是通用组件 (aws.greengrass.generic)。 Greengrass 核心运行组件的生命周期脚本。

v2.x

组件是 Lambda 组件 (aws.greengrass.lambda)。 Greengrass 核心使用 Lambda 启动器组件运行该组件的 Lambda 函数。

有关更多信息,请参阅 组件类型

操作系统

v3.x

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

v2.x

此组件只能安装在 Linux 核心设备上。

要求

此组件有以下要求:

v3.x
  • Python 版本 3.7 已安装在核心设备上并添加到 PATH 环境变量中。

  • Amazon IoT Device Defender配置为使用检测功能监控违规行为。有关更多信息,请参阅《Amazon IoT Core开发者指南》中的 “检测”。

v2.x
  • 您的核心设备必须满足运行 Lambda 函数的要求。如果您希望核心设备运行容器化 Lambda 函数,则该设备必须满足要求才能运行容器化 Lambda 函数。有关更多信息,请参阅 Lambda 函数的要求

  • Python 版本 3.7 已安装在核心设备上并添加到 PATH 环境变量中。

  • Amazon IoT Device Defender配置为使用检测功能监控违规行为。有关更多信息,请参阅《Amazon IoT Core开发者指南》中的 “检测”。

  • 安装在核心设备上的 psutil 库。版本 5.7.0 是经验证可与该组件配合使用的最新版本。

  • 安装在核心设备上的 cbor 库。1.0.0

  • 要从此组件接收输出数据,在部署此组件时,必须合并旧版订阅路由器组件 (aws.greengrass.LegacySubscriptionRouter) 的以下配置更新。此配置指定了此组件发布响应的主题。

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    • 用你Amazon Web Services 区域使用的区域替换区域

    • Ver for Lambda。要查找 Lambda 函数版本,您必须查看要部署的此组件版本的配方。在Amazon IoT Greengrass控制台中打开此组件的详细信息页面,查找 Lambda 函数的键值对。此键值对包含 Lambda 函数的名称和版本。

    重要

    每次部署此组件时,都必须更新传统订阅路由器上的 Lambda 函数版本。这可确保您为部署的组件版本使用正确的 Lambda 函数版本。

    有关更多信息,请参阅 创建部署

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

3.1.2

下表列出了此组件版本 3.1.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <3.0.0 软性
代币交换服务 >=0.0.0 硬性
3.1.1

下表列出了此组件版本 3.1.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <3.0.0 软性
代币交换服务 >=0.0.0 硬性
3.0.0 - 3.0.2

下表列出了此组件版本 3.0.0 到 3.0.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <3.0.0 软性
代币交换服务 >=0.0.0 硬性
2.0.10

下表列出了此组件版本 2.0.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.9

下表列出了此组件版本 2.0.9 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.8

下表列出了此组件版本 2.0.8 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.7

下表列出了此组件版本 2.0.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.6

下表列出了此组件版本 2.0.6 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.5

下表列出了此组件版本 2.0.5 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.4

下表列出了此组件 2.0.4 版的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.0 硬性
Lambda 发射器 2.0.0 硬性
Lambda 运行时 2.0.0 软性
代币交换服务 2.0.0 硬性
2.0.3

下表列出了此组件版本 2.0.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=0.3 硬性
Lambda 发射器 >=0.0 硬性
Lambda 运行时 >=0.0 软性
代币交换服务 >=0.0 硬性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

v3.x
PublishRetryCount

重试发布的次数。3.1.1。

0。

72。

默认值:5

SampleIntervalSeconds

(可选)组件收集和报告指标的每个周期之间的时间(以秒为单位)。

最小值为 300 秒 (5 分钟)。

默认值:300 秒

UseInstaller

(可选)布尔值,用于定义是否使用此组件中的安装程序脚本来安装此组件的依赖关系。

false如果您想使用自定义脚本安装依赖关系,或者想要在预构建的 Linux 映像中包含运行时依赖关系,请将此值设置为。要使用此组件,必须安装以下库,包括任何依赖关系,并将其提供给默认 Greengrass 系统用户。

注意

如果您在配置为使用 HTTPS 代理的核心设备上使用此组件的 3.0.0 或 3.0.1 版,则必须将此值设置为false。在此组件的这些版本中,安装程序脚本不支持在 HTTPS 代理后面进行操作。

默认值:true

v2.x
注意

此组件的默认配置包括 Lambda 函数参数。我们建议您仅编辑以下参数以在您的设备上配置此组件。

lambdaParams

一个包含此组件的 Lambda 函数参数的对象。Configurorationfiguration

EnvironmentVariables

CLambda。Configurorationfiguration

PROCFS_PATH

(可选)/proc文件夹的路径。

  • 要在容器中运行此组件,请使用默认值/host-proc。默认情况下,该组件在容器中运行。

  • 要在无容器模式下运行此组件,请/proc为该参数指定。

默认值:/host-proc。 这是此组件在容器中安装/proc文件夹的默认路径。

注意

Confor。

SAMPLE_INTERVAL_SECONDS

(可选)组件收集和报告指标的每个周期之间的时间(以秒为单位)。

最小值为 300 秒 (5 分钟)。

默认值:300 秒

containerMode

(可选)此组件的容器化模式。从以下选项中进行选择:

  • GreengrassContainer— 该组件在Amazon IoT Greengrass容器内的隔离运行时环境中运行。

  • NoContainer—,。

    如果指定此选项,则必须/procPROCFS_PATH环境变量参数指定。

默认值:GreengrassContainer

containerParams

(可选)包含此组件容器参数的对象。如果您指定GreengrassContainer,则组件将使用这些参数containerMode

Configurorationfiguration

memorySize

(可选)分配给组件的内存量(以千字节为单位)。

50,000 KB。

pubsubTopics

(可选)包含组件订阅以接收消息的主题的对象。您可以指定每个主题,以及该组件是订阅来自Amazon IoT Core还是本地发布/订阅主题的 MQTT 主题。

Configurorationfiguration

0— 这是字符串形式的数组索引。

Confor:

type

(可选)此组件用于订阅消息的发布/订阅消息的类型。从以下选项中进行选择:

  • Pubsub – 订阅本地发布/订阅消息。MQTT。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅本地消息

  • IotCore – 订阅 Amazon IoT Core MQTT 消息。如果选择此选项,则主题可以包含 MQTT 通配符。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅Amazon IoT CoreMQTT 消息

默认值:Pubsub

topic

(可选)组件订阅以接收消息的主题。如果您指定IotCoretype,则可以在本主题中使用 MQTT 通配符(+#)。

例 示例:配置合并更新(容器模式)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }

例 示例:配置合并更新(无容器模式)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

输入数据

该组件不接受消息作为输入数据。

输出数据

此组件将安全指标发布到以下的保留主题Amazon IoT Device Defender。此组件coreDeviceName在发布指标时替换为核心设备的名称。

主题 (Amazon IoT CoreMQTT):$aws/things/coreDeviceName/defender/metrics/json

例 输出示例

{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

有关此组件报告的指标的更多信息,请参阅Amazon IoT Core开发者指南中的设备指标文档规范

Configurora

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log

查看此组件的日志

  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait

许可证

此组件根据 Greengrass 核心软件许可协议发布。

更改日志

Confor Passenger()。

v3.x

Version

变更

3.1.2

2.8.0。

3.1.1

  • 在网络中断后连接无法恢复时,添加对客户端连接的重试次数。

  • 为发布指标添加了可配置的重试功能。

3.1.0

3.0.1

修复了该组件如何计算指标的增量值的问题。

3.0.0

警告

。此版本中的改进可以在此组件的更高版本中找到。

初始版本。

v2.x

Version

变更

2.0.10

Greengrass 0。

2.0.9

BGreengrass Nuclee 2.6.0。

2.0.8

Greengrass Nucreger 2.5.0。

2.0.7

Greengrass nuclee 2.4.0。

2.0.6

Greengrass Nuclee 2.3.0。

2.0.5

Gregrasgrass Nucreger 2.2 2.2 2.2。

2.0.4

Greengrass Nucreger 2.1.0。

2.0.3

初始版本。