SNMP协议控制AP7921设备电源端口

SNMP协议控制施耐德AP7921


背景:施耐德AP7921是7921B的老型号,不支持命令行控制,FAE提供SNMP开发MIB包;

SNMP基础知识点

1)写在前面:

SNMP协议:一种可以通过互联网访问特定设备的协议
OID:唯一的设备标识号
MIB:包含诸多设备标识号的一种无格式的文本文件
Mibble:一个Java的解析MIB文件的库,主页在https://www.mibble.org/
SNMP4J:一个Java的SNMP开发库,主页在https://www.snmp4j.org/
sharpsnmplib:一个C#的SNMP开发库,项目在https://github.com/lextm/sharpsnmplib
MIB Browser: 查看MIB文件的软件,在https://en.wikipedia.org/wiki/Management_information_base上面有主流的几款MIB文件查看工具
一般来说,通过一个Ip和Oid的组合就可以访问一台特定的设备,比如网络打印机。

SNMP简单概述

1)什么是Snmp

SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议"。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠 ,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。

SNMP协议主要由两大部分构成:SNMP管理站和SNMP代理。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。

SNMP管理站和SNMP代理之间是松散耦合。他们之间的通信是通过UDP协议完成的。一般情况下,SNMP管理站通过UDP协议向SNMP代理发送各种命令,当SNMP代理收到命令后,返回SNMP管理站需要的参数。但是当SNMP代理检测到网络元素异常的时候,也可以主动向SNMP管理站发送消息,通告当前异常状况。

SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。

SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了【读】操作;管理员需要向设备执行设置操作,所以SNMP提供了【写】操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了【Trap】操作。

2)SNMP 和 UDP

SNMP采用UDP协议在管理端和agent之间传输信息。 SNMP采用UDP 161端口接收和发送请求,162端口接收trap,执行SNMP的设备缺省都必须采用这些端口。SNMP消息全部通过UDP端口161接收,只有Trap信息采用UDP端口162。

3)Snmp版本

SNMP目前共有v1,v2,v3这三个版本:
SNMP v1是SNMP协议的最初版本,不过依然是众多厂家实现SNMP基本方式。
SNMP v2通常被指是基于community的SNMP V2。Community实质上就是密码。
SNMP v3 是最新版本的SNMP。它对网络管理最大的贡献在于其安全性。增加了对认证和密文传输的支持。

SNMP的实现结构

在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为【管理站】,负责网管命令的发出、数据存储、及数据分析。【被】监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。
SNMP协议控制AP7921设备电源端口
管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。

SNMP有关的基本概念

1) 代理和管理站的模型

Snmp分2种角色:SNMP管理站(manager,我们的本机192.168.25.10)和SNMP代理(agent, 我们要操作的机器,比如 192.168.25.25)。管理站指的是运行了可以执行网络管理任务软件的服务器,通常被称作为网络管理工作站(NMS),NMS负责采样网络中agent的信息,并接受agent的trap。代理是实际网络设备中用来实现SNMP功能的部分。代理在UDP的161端口接收NMS的读写请求消息,管理站在UDP的162端口接收代理的事件通告消息。所以,一旦获取设备的访问权限(community,默认为public),就可以访问设备信息、改写和配置设备参数。由于采用UDP协议,不需要在代理和管理站之间保持连接。
  SNMP协议控制AP7921设备电源端口

2) SNMP的操作命令

SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Get、Set 和 Trap。
Get:管理站读取代理者处对象的值。它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。
Set:管理站设置代理者处对象的值。它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。它可以设置设备的名称,关掉一个端口或清除一个地址解析表中的项等。
Trap: 代理者主动向管理站通报重要事件。它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题 发生了。如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。通常由服务器请求而获得的数据由服务器的161 端口接收。Trap 消息可以用来通知管理站线路的故障、连接的终端和恢复、认证失败等消息。管理站可相应的作出处理。

3) SNMP的消息构成

SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。
一条SNMP消息由"版本号"、"SNMP共同体名"和"协议数据单元(PDU)"构成,数据包的长度不是固定的。 
SNMP协议控制AP7921设备电源端口

版本识别符(version identifier):用于说明现在使用的是哪个版本的SNMP协议,确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。
团体名(Community Name):团体(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。类似于密码,默认值为 public。团体名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理 员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。
协议数据单元(PDU):PDU (协议数据单元)是SNMP消息中的数据区, 即Snmp通信时报文数据的载体。PDU指明了SNMP的消息类型及其相关参数。PDU (协议数据单元)是SNMP消息中的数据区, 即Snmp通信时报文数据的载体。

4) MIB(管理信息库)

管理信息(MIB)库可以理解成为agent维护的管理对象数据库,MIB中定义的大部分管理对象的状态和统计信息都可以被NMS访问。MIB是一个按照层次结构组织的树状结构,每个被管对象对应树形结构的一个叶子节点,称为一个object,拥有唯一的数字标识符

MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。
使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶 子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。
SNMP协议控制AP7921设备电源端口SNMP协议控制AP7921设备电源端口

每一个节点都有一个对象标识符(OID)来唯一的标识,每个节点用数字和字符两种方式显示,其中对象标识符OID是由句点隔开的一组整数,也就是从根节点 通向它的路径。一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对象。比如网络设备名的oid 是.1.3.6.1.2.1.1.5.0,其值为设备名称的字符串。
网络资源被抽象为对象进行管理。但SNMP中的对象是表示被管资源某一方面的数据变量。对象被标准化为跨系统的类,对象的集合被组织为管理信息库 (MIB)。MIB作为设在代理者处的管理站访问点的集合,管理站通过读取MIB中对象的值来进行网络监控。管理站可以在代理者处产生动作,也可以通过修改变量值改变代理者处的配置。

5) MIB(管理信息库)

每个管理对象都有自己的OID(Object Identifier),管理对象通过树状结构进行组织,OID由树上的一系列整数组成,整数之间用点( . )分隔开,树的叶子节点才是真正能够被管理的对象。

SNMP的初体验

我们来做一个最简单的Snmp操作:获取一台IP为192.168.25.25的电脑的名称。
首先要给为192.168.25.25的电脑安装Snmp环境。Window组件的管理监视工具里包含Snmp,只需要安装一下就可以了。具体的安装步骤后面的博文会有详细的介绍,Snmp默认的通信端口是161/162。
接下来需要一个能够进行Snmp通信的工具,比较简单的有snmputil,snmputil下载地址:http://download.csdn.net/detail/aliang0708/4180259
将下载下来的【snmputil.zip】压缩包解压后就可以得到如下图所示的两个工具了,其中snmputil是我们要用来进行Snmp通信的工具。
SNMP协议控制AP7921设备电源端口
snmputil工具的命令规则是:snmputil [get|getnext|walk] agent community oid [oid …]
  [get|getnext|walk]:为消息类型,我们此次进行的操作是get
  agent:指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.25.25
  community:分区域,即密码,默认是public
  oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号是.1.3.6.1.2.1.1.5.0
  打开命令行窗口,进入snmputil所在路径,键入:snmputil get 192.168.25.25 public .1.3.6.1.2.1.1.5.0
  如果参数都正确,控制台就会显示出192.168.25.25的机器名。如下图所示:
  SNMP协议控制AP7921设备电源端口
以上就是一些Snmp基本概念介绍和SNMP的初步体验,从下一篇博文开始,将重点介绍Window和Linux下Snmp协议的安装。

Win10安装和配置SNMP

安装和配置SNMP

今天讲解一下在Win10下安装SNMP协议,安装步骤如下:
(此处自行百度WIN10开启安装SNMP服务,在控制面板中设置)

施耐德APC-AP7921-SNMP控制

步骤1 ireason MIB Broswer

同施耐德APC的FAE咨询,建议使用这款浏览器,浏览器自行百度官网搜索下载,官网上个人免费版亲测好像无法使用,不知道什么原因,可以下载并安装企业版,可以先免费试用30天。

步骤2 施耐德APC-AP7921-MIB库文件

这个文件直接登录施耐德APC官网,找到客服电话,电话打过去直接说遇到软件操作问题,转接软件技术人员,然后索取该型号APC的MIB库文件。

步骤3 使用ireason MIB Broswer控制

1)打开MIB浏览器
SNMP协议控制AP7921设备电源端口
打开浏览器后确认图片红框处位置要保证和本图片一样,只有一颗绿色的树,没有任何文件夹的图案,如果有文件夹的图案,那是识别到的默认的MIB库文件,我们用不了,需要UNLOAD,操作如下:
SNMP协议控制AP7921设备电源端口
点击左上角file菜单–unload MIBs–
SNMP协议控制AP7921设备电源端口
UNload完之后,界面就干净了:
SNMP协议控制AP7921设备电源端口
然后load APC7921的MIB库文件,我要到的库文件名称是:
SNMP协议控制AP7921设备电源端口
这个PDF文档是AP7921用户手册,可以记住名字问FAE要;
2)load MIB库文件后如下,记得在这里填写APC盒子的IP地址,AP7921 IP设置方法参考我前面的文章;
SNMP协议控制AP7921设备电源端口
3)Advance选项配置:
SNMP协议控制AP7921设备电源端口
登录AP7921的web管理界面,默认用户名密码都是APC/APC
按照上面图片顺序查看SNMP的用户名:public ,和private
SNMP协议控制AP7921设备电源端口
点击go链接:
SNMP协议控制AP7921设备电源端口
如上,表示连接上了AP7921设备:
SNMP协议控制AP7921设备电源端口
点开MIB目录树,找到图中分支,然后双击钢笔图标这个,右侧会出现AP7921的8个输出端口:
SNMP协议控制AP7921设备电源端口
左下角:命令控制语法规则;
右上角:目前接口状态:
接下来我们演示端口控制操作:
SNMP协议控制AP7921设备电源端口
右侧窗口中鼠标左键单击选中需要控制的电源端口,然后右键,在右键菜单中选择set
SNMP协议控制AP7921设备电源端口
1:左键单击选中–进入右键菜单–选择set
2:此处输入要控制电源端口状态的值:
SNMP协议控制AP7921设备电源端口
此处语法规则框中有描述:
3.点击OK,
SNMP协议控制AP7921设备电源端口
执行成功后,AP7921盒子上对应的1号电源端口已经下电,指示灯灭,同时在MIB Broswer上左侧再次双击钢笔图标,右侧窗口此时会出现目前AP7921盒子的8个端口状态;

到此:控制演示完毕

PS:SNMP协议写每个操作均有指定的oid号,可以做SNMP协议开发,
snmp set IP OID 指令符
但是我没有弄成功,后面有时间再说;
THE END

上一篇:官方博文 | 连老手也容易犯错的Zabbix SNMP该如何正确配置?


下一篇:Zabbix支持的主要监控方式