snmp是一种用于网络管理的协议,它可以让管理系统(NMS)和被管理设备(如交换机)之间交换信息。被管理设备上运行着一个snmp代理,它负责响应NMS的请求,以及向NMS发送告警信息(称为snmp trap)。snmp代理维护着一个管理信息库(MIB),其中定义了设备上的各种管理对象,如端口状态、流量统计、poe功率等。每个管理对象都有一个唯一的对象标识符(OID),用于标识该对象。
要使用snmp获取poe供电数据,首先需要知道设备支持的poe相关的MIB。
一种常见的标准MIB是RFC3621定义的POWER-ETHE.NET-MIB,它的OID是iso.3.6.1.2.1.105。这个MIB包含了一些表格,用于描述设备上的poe端口、poe电源、poe功率分配等信息。例如,pethMAInPseTable是一个表格,用于列出设备上的所有poe电源,每个电源都有一个索引号(pethMainPseGroupIndex),以及一些属性,如最大输出功率(pethMainPsePower)和当前输出功率(
pethMainPseConsumptionPower)。
另一个表格是pethPsePortTable,用于列出设备上的所有poe端口,每个端口都有一个索引号(由两个数字组成,分别表示电源索引和端口索引),以及一些属性,如端口状态(pethPsePortAdminEnable)、端口类型(pethPsePortType)、端口功率需求(pethPsePortPowerDemand)和端口功率消耗(
pethPsePortPowerConsumption)等。
假设我们要获取设备上第一个电源的第三个端口的poe功率消耗,我们可以使用以下命令:
snmpget -v 2c -c public <device_ip> iso.3.6.1.2.1.105.1.3.1.1.10.1.3
其中-v 2c表示使用snmp版本2c,-c public表示使用团体名public(相当于密码),<device_ip>表示设备的IP地址,
iso.3.6.1.2.1.105.1.3.1.1.10.1.3表示pethPsePortPowerConsumption对象的OID,后面跟着两个数字表示电源索引和端口索引。如果成功执行,该命令会返回一个值,表示该端口的功率消耗,单位是毫瓦。
这就是一个使用snmp获取poe供电数据的实际例子。当然,不同的设备可能支持不同的MIB或OID,因此在使用snmp之前,需要查看设备的文档或MIB文件,以确定正确的OID和参数。