想象你走进一座巨型图书馆(这个图书馆就是一台网络设备,比如路由器),里面存放着海量书籍(这些书籍就是设备的各种数据,如CPU温度、内存使用量、端口状态等)。但如果没有分类规则,你根本无法找到想要的书。
1.3.6.1.2.1.1.5.0
代表“设备名称”1.3.6.1.2.1.25.3.3.1.2.1
代表“CPU温度”1.3.6.1.2.1.1.5.0
的书在哪里?”Router-A
。”管理端(NMS) --SNMP GET请求(OID)--> 设备(Agent)
设备(Agent) --返回OID对应数据--> 管理端(NMS)
OID是一个由点分隔的数字序列,每一层代表不同的分类(类似“国家-省-市-街道”):
1.3.6.1.2.1.1.5.0
(设备名称)1
(ISO国际组织)
→ 3
(ISO认定的组织)
→ 6
(美国国防部)
→ 1
(互联网)
→ 2
(IETF管理的设备)
→ 1
(MIB-2标准库)
→ 1
(系统组)
→ 5
(设备名称)
→ 0
(实例编号)OID | 描述 | 示例返回值 |
---|---|---|
1.3.6.1.2.1.1.5.0 | 设备名称 | “Router-A” |
1.3.6.1.2.1.1.1.0 | 设备描述 | “华为AR2200…” |
1.3.6.1.2.1.2.2.1.10.1 | 端口1的入向流量 | 1024(字节) |
OIDs(Object Identifiers,对象标识符) 是SNMP协议中用于唯一标识被管理设备(如路由器、交换机、服务器等)上各类数据的层级化数字编码系统,相当于设备的“数据GPS坐标”。
想象你要在全球找到一个具体位置:
中国.广东省.深圳市.南山区.科技园.腾讯大厦
.1.3.6.1.2.1.1.5.0
(设备名称)每一级数字代表一个明确的分类,最终指向唯一数据点。
.1.3.6.1.2.1.25.3.3.1.2
(来自标准MIB库)。OID的每一层数字都有明确含义(类似域名解析):
根(root)
├── 1 (ISO)
│ ├── 3 (ISO-identified-orgs)
│ │ └── 6 (US DoD → 互联网的起源)
│ │ └── 1 (internet)
│ │ ├── 2 (mgmt → IETF管理的设备)
│ │ │ └── 1 (mib-2 → 最常用标准库)
│ │ │ ├── 1 (system组)
│ │ │ │ └── 5 (sysName → 设备名称)
│ │ │ └── 25 (hrDevice组 → 硬件信息)
.1.3.6.1.4.1.2011
(华为企业编号为2011)。.1.3.6.1.2.1.2.2.1.10.1
→ 端口1的入向流量.1.3.6.1.2.1.2.2.1.10.2
→ 端口2的入向流量sequenceDiagram
管理端(NMS)->>设备Agent: SNMP GET请求(携带OID 1.3.6.1.2.1.1.5.0)
设备Agent->>管理端(NMS): 返回数据 "Router-A"
SNMP操作 | OID作用 | 类比 |
---|---|---|
GET | 精确查询单个OID的数据 | 问:“深圳市南山区人口是多少?” |
GETNEXT | 遍历OID树的下一个节点 | 问:“南山区之后是哪个区?” |
WALK | 递归获取整个OID子树的数据 | 获取“广东省所有城市列表” |
OID | 描述 | 数据类型 | 示例值 |
---|---|---|---|
1.3.6.1.2.1.1.1.0 | 设备描述 | STRING | “Huawei AR2200” |
1.3.6.1.2.1.1.3.0 | 设备运行时间 | Timeticks | 123456 (秒) |
1.3.6.1.2.1.2.2.1.10.1 | 端口1接收字节数 | Counter32 | 1024000 |
1.3.6.1.2.1.25.3.3.1.2.1 | CPU1温度 | INTEGER | 45 (℃) |
snmptranslate
解析MIB):snmptranslate -On -IR sysName
# 输出:1.3.6.1.2.1.1.5
snmpwalk
自动发现设备所有OID:snmpwalk -v 2c -c public 192.168.1.1
.1.3.6.1.4.1.2011
)。关键总结:OIDs是SNMP的基石,理解它就能精准控制任何支持SNMP的设备。
以Linux的snmpwalk
命令为例:
# 查询设备的所有系统信息(OID从1.3.6.1.2.1.1开始)
snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1
输出示例:
1.3.6.1.2.1.1.5.0 = STRING: "Router-A"
1.3.6.1.2.1.1.6.0 = STRING: "机房A-3F"
下一步改进计划:在优雅草星云智控系统中,所有支持SNMP的设备均可通过OID自动发现和监控!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。