边缘智能提供了官方的 SNMP 驱动程序,允许您快捷添加支持 SNMP 协议的设备到节点(一体机)。添加设备到节点后,您可以查看设备运行状态,并进行远程管理。本文介绍了官方 SNMP 驱动的使用方法。
简单网络管理协议(Simple Network Management Protocol,简称 SNMP)是一种互联网标准协议,用于监控和管理通过 IP 连接的网络设备。它允许网络管理员通过远程方式收集设备的运行状态、性能数据和错误信息,以便进行故障排除和网络优化。
SNMP 的基本组件包括网络管理系统 NMS(Network Management System)、代理进程(Agent)、被管对象(Managed Object)和管理信息库 MIB(Management Information Base)四部分,这些组件共同构成了SNMP的管理模型。每个被管理设备中都包含驻留在设备上的 SNMP Agent 进程、MIB 和多个被管对象。NMS 通过与运行在被管理设备上的 SNMP Agent 交互,由 SNMP Agent 通过对设备端的 MIB进行操作,完成 NMS 的指令。
SNMP 协议的通信过程包括以下几个步骤:
在节点上部署官方 SNMP 驱动,接入被管设备后,可以实现对设备的监控和管理:
您可以在边缘智能控制台的 设备管理 > 驱动模板 页面,查看官方 SNMP驱动。
官方 SNMP 驱动的子协议配置和点表配置说明见下表。
配置项 | 名称 | 参数名称 | 说明 |
---|---|---|---|
子协议配置 | TCP | IP 地址 | 被管设备的 IP 地址。 |
端口号 | SNMP 代理使用的 UDP 端口号。 | ||
点表配置 | N/A | 对象标识符(oid) | 被管对象的唯一标识符,用于获取特定对象的信息。 |
采样周期 | 表示每隔多久采集一次数据。单位:毫秒。默认值:10000。 | ||
变化上报 | 用于控制节点进行数据上报的触发条件。
默认值:true。 | ||
缩放因子 | 表示对原始数据放大的倍数。默认值:1。 说明 当缩放因子为小数时,对应物模型属性的数据类型需是 float 或者 double 才可以生效。 |
使用官方 SNMP 驱动前,您需要准备被管设备,同时在设备上启用 SNMP 服务。本教程使用模拟器 SNMP Simulator 作为 SNMP 被管设备。
这里以 Ubuntu 22.04 64 位为例,为您介绍安装、配置 SNMP Simulator 的操作方法。
使用 root 用户登录管理设备,完成以下操作。
# 更新软件包索引和软件 sudo apt-get update sudo apt-get upgrade # 创建一个用户并将该用户添加到 sudo 用户组。这里创建一个名为“snmpuser”的用户。 sudo adduser snmpuser usermod -aG sudo snmpuser # 切换为 snmpuser 用户登录,后续操作使用该用户完成。
安装 virtualenv 并创建 Python 虚拟环境。
# virtualenv 是一个在 Python 中创建虚拟环境的工具。 sudo apt install python3-virtualenv virtualenv venv source venv/bin/activate
安装 SNMP Simulator 和 SNMP 相关工具。
pip install snmpsim-lextudio sudo apt install snmp snmpd snmp-mibs-downloader libsnmp-dev
创建data
目录,在data
上层目录执行以下命令,通过查询现有的 SNMP 代理生成模拟数据文件。
mkdir data ./venv/bin/snmpsim-record-commands --agent-udpv4-endpoint=demo.pysnmp.com \ --output-file=./data/private.snmprec
编辑生成的文件private.snmprec
,选择设备被管对象并修改其配置,使其允许数据写入。
例如,本教程选择 "1.3.6.1.2.1.1.9.1.1.1" 作为被管对象,修改其 Tag 为2:writecache
,Value 为value=1
:
vim ./data/private.snmprec ... 1.3.6.1.2.1.1.9.1.1.1|2:writecache|value=1 ...
说明
模拟数据文件格式说明请参见文件格式介绍。
启动 SNMP 模拟器。
本教程中使用 1024 作为 SNMP 代理的 UDP 端口号。
# 执行 deactivate,退出 Python 虚拟环境。 deactivate ./venv/bin/snmpsim-command-responder --data-dir=./data --agent-udpv4-endpoint=0.0.0.0:1024 --debug=all
测试模拟器。
snmpwalk -v 1 -c private 127.0.0.1:1024 1
使用 SNMP 驱动前,您需要准备一台边缘智能节点,并完成以下工作:
登录边缘智能控制台。
在左侧导航栏顶部的 我的项目 区域,选择您的项目。
在左侧导航栏,选择 设备管理 > 设备模板。
单击 创建设备模板。
在 创建设备模板 对话框,完成以下配置,并单击 确定。
配置项 | 说明 |
---|---|
名称 | 为设备模板设置一个名称。
|
设备类型 | 选择 其他设备。 |
描述 | 为设备模板添加描述信息。 |
创建成功后,在 设备模板 页面可以看到新创建的设备模板。
您可以通过物模型定义设备功能,并发布一个版本使其生效。
找到新创建的设备模板,单击模板名称。
在 模板详情 页面,单击 物模型定义 页签,然后单击 编辑。
在 编辑物模型 页面的 模块列表 区域,默认为 默认模块。
(可选)如果需要新增模块,单击 新建模块。在 新建模块 对话框,参照以下说明配置相关参数,并单击 确定,然后单击已添加的模块名称。
配置项 | 描述 |
---|---|
名称 | 输入模块的名称。
|
唯一标识 | 为模块设置一个标识符。该标识符在当前设备模板下必须唯一。输入要求如下:
|
描述 | 输入模块的描述信息。最多支持128个字符。 |
单击 添加自定义功能。
在 添加自定义功能 对话框,参考下表说明配置相关参数,然后单击 确定。
配置项 | 说明 |
---|---|
功能类型 | 选择 属性。 |
功能名称 | 为功能设置一个名称。
|
标识符 | 为功能设置一个标识符。
|
读写类型 | 选择 读写。 |
数据类型 | 选择 int。 |
取值范围 | 设置数值取值范围。本教程中保持默认配置。 |
步长 | 设置数值步长。本教程中保持默认配置。 |
描述 | 为功能添加描述信息。 |
配置好所有模块及功能后,在 编辑物模型 页面,单击右下角的 保存。
在 发布新版本 对话框,设置 版本号 和 描述,然后单击 确定。
发布成功后,您将会得到如下图所示的物模型。
物模型定义完成后,需要为物模型属性创建点表。
在 模板详情 页面,单击 点表 页签,然后单击 创建点表。
在 创建点表 页面,完成以下配置。
类别 | 配置项 | 说明 |
---|---|---|
基本信息 | 名称 | 为点表设置一个名称。
|
驱动模板 | 选择 SNMP驱动。 | |
配置信息 | 默认模块 |
|
配置完成,单击 确认。
创建成功后,您将得到一个如下图所示的点表。
您必须在节点上部署 SNMP 驱动,然后才可以添加设备到节点。
说明
如果您是首次在当前节点上部署驱动实例,单击 立即部署。
提交部署请求后,系统将在节点上部署驱动实例。部署过程涉及到数据传输。根据现场网络环境不同,部署所需时间不同。请确保您的节点在线,并耐心等待部署完成。
驱动部署成功后,驱动实例状态 将变为 运行中。
在 基本信息 标签页,单击 添加设备。
在 添加设备 面板,完成以下配置,然后单击 确定。
配置项 | 说明 |
---|---|
名称 | 为设备设置一个名称。
|
标识符 | 为设备设置一个标识符。
|
设备模板 | 选择您在创建设备模板中创建的设备模板。
|
点表 | 选择在创建点表中创建的点表。
|
子协议名称 | 选择 TCP。 |
IP 地址 | 输入被管设备的 IP 地址。 |
端口号 | 输入 SNMP 代理所使用的端口号。
|
标签 | 为设备添加标签。如果需要创建新的标签,输入 key 和 value 后,单击 创建标签。 |
描述 | 为设备添加描述信息。 |
完成以上操作后,您可以在设备列表查看新添加的设备。最初,设备的 状态 为 添加中。当设备的状态变为 在线 后,表示设备已经添加成功。
在 基本信息 标签页,单击 批量添加。
在 添加设备 页面,您可以在 驱动信息 区域查看驱动相关信息,并参考下表说明完成 设备配置,然后单击 确定。
配置项 | 说明 |
---|---|
子协议类型 | 选择 TCP。 |
设备模板 | 选择您在创建设备模板中创建的设备模板。
|
点表 | 选择在创建点表中创建的点表。
|
设备名称 | 为设备设置一个名称。
|
标识符 | 为设备设置一个标识符。
|
IP 地址 | 输入被管设备的 IP 地址。 |
端口号 | 输入 SNMP 代理所使用的端口号。
|
标签 | 为设备添加标签。如果需要创建新的标签,输入 key 和 value 后,单击 创建标签。 |
描述 | 为设备添加描述信息。 |
(可选)如果需要同时添加多个设备实例,在 添加设备 后的输入框中输入要添加的设备个数,然后单击 添加设备。系统会自动生成多个设备配置条目。
(可选)如果需要批量设置一些设备参数,先勾选右上角的 批量编辑所有配置项,然后修改某个参数值,系统会同步修改所有设备的对应参数值。
说明
勾选 批量编辑所有配置项 后,如果参数配置框置灰,表示该参数不支持批量设置。
完成以上操作后,您可以在设备列表查看新添加的设备。最初,设备的 状态 为 添加中。当设备的状态变为 在线 后,表示设备已经添加成功。
单击 在线调试 页签,在 属性调试 下测试在发布物模型中定义的属性功能。
单击 运行状态 页签,可以看到设备当前属性值已变为输入的值。