Appearance
SNMP设备API参考
基础知识
简单网络管理协议 (SNMP) 是一种 Internet 标准协议,用于从托管 设备,用于发送信息以修改这些设备的行为。
SNMP 架构由 SNMP 管理器和 SNMP 代理组成。SNMP 代理程序是在以下设备上运行的程序 已连接到网络。SNMP 代理将托管系统上的管理数据作为变量公开。可访问的变量 通过 SNMP 进行组织。这些层次结构被描述为管理信息库 (MIB)。MIB 描述设备子系统的管理数据的结构;它们使用包含 Object 的分层命名空间 标识符 (OID)。每个 OID 标识一个可通过 SNMP 读取或设置的变量。代理从 MIB 获取信息 并在进行查询后将其移交给 SNMP 管理器。SNMP 管理器是一个系统,负责 与连接的 SNMP 代理通信。SNMP 管理器查询代理,接收来自代理的响应并设置代理 变量。蟹立方物联网平台 SNMP 传输充当管理器。经理和代理之间的关系基于 消息和命令。传输使用的命令类型是 “GET” 和 “SET”。每条 SNMP 消息都包含一个 协议数据单元 (PDU)。
SNMP 在 Internet 协议套件的应用层中运行。SNMP 消息可以通过 User 数据报协议 (UDP) 或传输控制协议 (TCP):您可以通过环境变量进行配置。
已经开发和部署了 SNMP 的三个重要版本。SNMP v1 是协议的原始版本。 最新版本的 SNMP v2c 和 SNMP v3 在性能、灵活性和安全性方面都有所改进。事物板 支持他们所有人。
设备配置文件配置
首先,您应该配置 SNMP 设备配置文件:指定请求超时(确认前的超时时间(以毫秒为单位) 请求被重新发送或超时)、重试次数(在请求超时之前执行)和主要部分 - 通信配置。
以下是设备配置文件配置的示例:
在看了 SNMP 设备之后,我们稍后会讨论可能的配置类型 配置。
设备配置
无论您的 SNMP 设备版本如何,都必须指定主机和端口。
至于 SNMP 中的安全性,SNMP v1 和 v2c 通过网络以明文形式发送密码(社区字符串),SNMP v3 支持身份验证和数据加密。
因此,对于版本 1 和 2c,您必须设置社区字符串。此类 SNMP 设备的配置示例:
让我们进一步了解 SNMP 的第三个版本。蟹立方物联网平台 使用“authPriv”安全级别,该级别同时启用 身份验证和加密。使用的安全模型是 USM (User-based Security Model)。
除了主机和端口之外,还有以下属性要为您的 SNMP v3 设备配置:
- 用户名
- 证券名称
- 上下文名称
- authentication protocol(基本上是用于对身份验证密码进行哈希处理的哈希函数的名称; 支持的是 SHA-1、SHA-224/256/384/512 和 MD5)
- 身份验证密码
- 隐私协议(数据加密算法;支持 DES(CBC 模式)和 AES-128/192/256)
- 隐私密码
- 引擎 ID 以下是版本 3 的配置示例:
遥测
如前所述,SNMP 设备配置文件配置中应该有某些通信配置,对于 telemetry 查询,您也需要一个。对于这种类型的配置,您必须指定一些映射和查询 频率。需要映射,以便我们可以在解析后将 OID 的接收值映射到特定的遥测密钥 it 指定为指定的数据类型。
下面是一个示例:
顺便说一句,支持的数据类型为:、 、 和 (对于 SNMP,接收到 的变量值 的数据类型将被视为常规字符串)。
对于此和其他查询配置,正在使用的方法类型为 。
属性
客户端属性
要设置对 SNMP 设备属性的查询,您可以添加另一个通信配置。此配置与 遥测,应包含映射和所需的查询频率。
示例:
共享属性
为了使您的 SNMP 设备接收到某些共享属性的更新,您可以向 您的 SNMP 设备配置文件:
对于这个,你只需要配置 mappings:更新的共享属性的值将被设置到哪个 OID。在这个 case,则映射中的键是共享属性的名称。顺便说一句,使用的 SNMP 方法是 .SET
对于这种类型的配置(以及具有使用SNMP方法类型的其他配置),需要一种数据类型 确定要在 PDU 中发送的 SNMP 变量类型。我们使用 (或 , 一个有符号的 32 位整数) 对于数据类型和所有其他数据类型。
服务器端 RPC
要发送自定义 SNMP 请求,您可以使用 RPC 功能。首先,您应该在设备配置文件中配置一些键映射 在 RPC 命令中使用:
之后,我们可以在 RPC 命令中使用已配置的映射的键:
{
"method": "GET",
"params": {
"key": "systemInfo"
}
}
如您所见,对于 “method” 字段,您必须指定 SNMP 方法类型:或 。对于这个 API,我们将发送一个 “GET” SNMP 请求到 OID “1.2.3.0.9.2.8.1”,并将响应解析为字符串,然后将其路由到 以下格式:GETSET
{
"systemInfo": "SNMP device"
}
以下是 “SET” RPC 命令的示例:
{
"method": "SET",
"params": {
"key": "lastUpdateTime",
"value": "12901200312"
}
}
在这种情况下,我们将向映射 OID (“1.2.3.0.6.4.3.1”) 中配置的 “SET” SNMP 请求发送一个 “SET” SNMP 请求,其值为 的 “12901200312” 作为 OCTET STRING。
请注意,对于 “SET” 请求,您必须在 RPC 命令中指定一些值。