SNMP 的由来
1988年,随着网络设备种类激增,工程师们面临一个问题:如何用统一的方式管理来自不同厂商的设备?
SNMP(Simple Network Management Protocol,简单网络管理协议)就是为解决这个问题而生的——一个让不同设备「说同一种语言」的协议。
三组件架构
Manager(管理站)
网络管理员的控制中心,通常是一台专用服务器或管理员的电脑。负责发送查询请求、接收告警、展示监控数据。
Agent(代理)
安装在被监控设备上的软件模块,负责收集设备数据,响应 Manager 的查询,在异常时主动发送 Trap 告警。
MIB(管理信息库)
设备能被监控的所有参数的「字典」。每个参数都有唯一的 OID(对象标识符)。
MIB 和 OID 的工作原理
OID 是树状结构的数字路径,例如:
1.3.6.1.2.1.1.1.0 → 系统描述(sysDescr)
1.3.6.1.2.1.1.3.0 → 系统运行时间(sysUpTime)
不同厂商有自己的 OID 命名空间:
- 华为:
1.3.6.1.4.1.2011 - Cisco:
1.3.6.1.4.1.9
SNMP 版本
| 版本 | 特点 |
|---|---|
| SNMPv1 | 最早版本,安全性弱(明文 Community String) |
| SNMPv2c | 性能改进,安全性仍较弱 |
| SNMPv3 | 支持认证和加密,推荐生产环境使用 |
在运维中的应用
设备监控
OpsEye 等监控平台通过 SNMP 采集交换机、路由器、服务器的状态数据:CPU、内存、端口流量、设备温度等。
告警接收
设备发生异常时,Agent 主动向 Manager 发送 Trap 消息,实现实时告警。
配置管理
通过 SNMP SET 操作远程修改设备配置(需要 SNMPv3 认证)。
配置示例
# 测试 SNMP 连通性
snmpwalk -v2c -c public 192.168.1.1 system
# 查询特定 OID
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0