本文档简要概述简单网络管理协议(SNMP),并演示如何在思科统一计算系统(UCS)C系列机架式服务器上测试SNMP功能。您还可以将其用作基本SNMP故障排除的参考。
SNMP是互联网工程任务组(IETF)行业标准,由多个评论请求(RFC)定义。SNMP用于网络管理系统(NMS)中监控网络设备。SNMP在应用层工作。SNMP的主要用途是启用NMS以从受管设备获取信息。
本文档假设NMS和所有网络设备已正确配置,并且在过去已正常工作。
本文档中的信息基于以下软件和硬件版本:
SNMP
思科UCS C系列机架式服务器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
管理器是NMS,代理是在受管设备上运行的软件。SNMP用于在管理器和代理之间传送消息。
管理信息库(MIB)是对象的集合。对象有两种类型:标量(单个对象)和表格(多个对象)。 对象是受管设备的一个或多个特征或变量。这些特征由对象标识符(OID)标识。 OID是对象名称和实例ID的数字表示,由句点分隔。标量对象(如sysDesc)的实例始终为0。如果对象是表中的列,则实例ID通常是列的索引。MIB以树形格式结构,对象ID从该树派生。
注意:本文档中的输出示例是从Cisco UCS C系列机架式服务器捕获的。
此示例查看cucsProcessorUnitEntry的CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB定义。
cucsProcessorUnitEntry OBJECT-TYPE SYNTAX CucsProcessorUnitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Entry for the cucsProcessorUnitTable table." INDEX { cucsProcessorUnitInstanceId } ::= { cucsProcessorUnitTable 1 } CucsProcessorUnitEntry ::= SEQUENCE { cucsProcessorUnitInstanceId CucsManagedObjectId, cucsProcessorUnitDn CucsManagedObjectDn, cucsProcessorUnitRn SnmpAdminString, cucsProcessorUnitArch CucsProcessorUnitArch, cucsProcessorUnitCores Gauge32, cucsProcessorUnitCoresEnabled Gauge32, cucsProcessorUnitId Gauge32, cucsProcessorUnitModel SnmpAdminString, cucsProcessorUnitOperState CucsEquipmentOperability, cucsProcessorUnitOperability CucsEquipmentOperability, cucsProcessorUnitPerf CucsEquipmentSensorThresholdStatus, cucsProcessorUnitPower CucsEquipmentPowerState, cucsProcessorUnitPresence CucsEquipmentPresence, cucsProcessorUnitRevision SnmpAdminString, cucsProcessorUnitSerial SnmpAdminString, cucsProcessorUnitSocketDesignation SnmpAdminString, cucsProcessorUnitSpeed INTEGER, cucsProcessorUnitStepping Gauge32, cucsProcessorUnitThermal CucsEquipmentSensorThresholdStatus, cucsProcessorUnitThreads Gauge32, cucsProcessorUnitVendor SnmpAdminString, cucsProcessorUnitVoltage CucsEquipmentSensorThresholdStatus, cucsProcessorUnitVisibility CucsMemoryVisibility, cucsProcessorUnitOperQualifierReason SnmpAdminString
cucsProcessorUnitEntry不可访问,因为它是序列或父级,并且不与特定实例关联。对象列在序列或父项下;将其视为表中的行可能会有所帮助。这些对象对应于特定OID(数字对象名称+实例),可单独请求这些OID以获取信息。如果在序列或父级上使用snmpwalk命令,则会收到所有基础对象的回复。但是,您需要使用转换工具将对象名称映射到OID。
注意:
语法子句定义整数的格式。例如,计数器32、计数器64、仪表32、IP地址等。
最大访问权限定义读写、读创建或无访问权限。
说明不言自明。
索引标识表ID。
例如,如果在cucsProcessorUnitOperStateObject上使用snmpwalk命令,则会看到以下结果:
[root@localhost snmp]# snmpwalk -v2c -c public 14.17.2.121 .1.3.6.1.4.1.9.9.719.1.41.9.1.9 SNMPv2-SMI::enterprises.9.9.719.1.41.9.1.9.1 = INTEGER: 1 SNMPv2-SMI::enterprises.9.9.719.1.41.9.1.9.2 = INTEGER: 1
对此请求有两个回复,因为服务器中有两个处理器。回复还反映了cucsProcessorUnitOperState的两个实例,每个处理器一个。将提取此类型的所有对象的OID信息。在本示例中,snmpwalk命令使用了通过MIB树的路径。为了进行转换,您可以在本地加载MIB或搜索转换SNMP MIB对象和OID的工具。
本示例使用转换工具来转换OID:
.1.3.6.1.4.1.9.9.719.1.41.9.1.9 (path through the tree) cucsProcessorUnitOperState OBJECT-TYPE -- FROM CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB -- TEXTUAL CONVENTION CucsEquipmentOperability SYNTAX Integer { unknown(0), operable(1), inoperable(2), degraded(3),poweredOff(4), powerProblem(5), removed(6), voltageProblem(7), thermalProblem(8), performanceProblem(9), accessibilityProblem(10), identityUnestablishable(11), biosPostTimeout(12), disabled(13), fabricConnProblem(51), fabricUnsupportedConn(52), config(81), equipmentProblem(82), decomissioning(83), chassisLimitExceeded(84), notSupported(100), discovery(101), discoveryFailed(102), identify(103), postFailure(104), upgradeProblem(105), peerCommProblem(106), autoUpgrade(107) } MAX-ACCESS read-only STATUS Current DESCRIPTION "Cisco UCS processor:Unit:operState managed object property" ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) ciscoMgmt(9) ciscoUnifiedComputingMIB(719) ciscoUnifiedComputingMIBObjects(1) cucsProcessorObjects(41) cucsProcessorUnitTable(9) cucsProcessorUnitEntry(1) 9 }
在对象类型上方,您可以看到通过MIB树的路径,该路径由snmpwalk命令使用。响应1表示处理器处于可操作状态。
要在PC上使用snmpwalk命令,您可能需要搜索和安装应用程序。您还可以搜索Windows GUI SNMP应用。
Mac本地运行。
有适用于Linux的软件包。对于Centos或Redhat,Net-SNMP是测试SNMP功能的命令行应用。要在Centos或Redhat上安装Net-SNMP,请使用以下命令:
yum install net-snmp-utils
注意:如果计划加载MIB以在本地执行转换,请创建snmp.conf文件并包含所需的MIB。
确保在适用的代码版本中支持特定MIB。
验证受管设备的IP地址是否可达。
确保防火墙上的端口处于打开状态。
使用Wireshark或TCPDump跟踪来响应和格式错误的数据包问题;过滤IP地址和端口(SNMP的UDP端口161,召回陷阱的UDP端口162)。
有许多RFC与SNMP相关;这是部分列表:
1155 — 基于TCP/IP的网际网络的管理信息结构和标识
1156 — 用于基于TCP/IP的网际网络(MIB I)的网络管理信息库
1157 简单网络管理协议
1213 — 用于基于TCP/IP的网际网络(MIB II)的网络管理信息库
1441 — 互联网标准网络管理框架第2版简介
1452 - Internet标准网络管理框架第1版和第2版之间共存
2578 管理信息结构第2版
3414 — 适用于简单网络管理协议第3版的基于用户的安全模型
3584 - Internet标准网络管理协议第1版、第2版和第3版之间共存
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
12-Mar-2013 |
初始版本 |