SNMP 和设备健康数据
了解 SNMP 如何收集网络设备的状态信息
SNMP 和设备健康数据 是 CoddyKit 上的免费 Network+ Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Network+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Network+ Academy 课程共包含 4 节课。
SNMP 是什么
SNMP(简单网络管理协议)是从路由器、交换机、防火墙和服务器等网络设备收集运行状况与状态数据的标准协议。中央管理器与运行在每台设备上的小型软件代理通信,获取 CPU 负载、接口状态和流量计数器等数值。SNMP 是大多数监控系统的基础。
管理器与代理
SNMP 有两个角色。管理器(也称为网络管理系统,即 NMS)是负责请求和存储数据的监控服务器。代理是运行在每台受管理设备上的软件,负责回应请求并可以发送告警。管理器会轮询许多代理;每个代理只报告自身设备的信息。这种管理器—代理模型可以扩展到数千台设备。
MIB 与 OID
每个代理都通过MIB(管理信息库)公开数据。MIB 是一份结构化目录,列出所有可读取的内容。每个值都有一个OID(对象标识符),即类似 1.3.6.1.2.1.1.3.0 的点分数字地址,用于表示系统正常运行时间。管理器请求特定的 OID,代理则返回其当前值。MIB 和 OID 让不同厂商的设备能够使用共同的语言进行 SNMP 通信。
SNMP 核心消息
SNMP 使用一组简短的消息:
- Get——管理器请求一个值。
- GetNext / GetBulk——高效地遍历多个值。
- Set——管理器更改一个可写值。
- Trap / Inform——代理向管理器报告事件。
Get 和 Set 由管理器发起;陷阱消息由代理发起。
使用 Get 进行轮询
管理器进行轮询时,会按计划发送 Get 请求并记录响应。随着时间推移,这些读数会形成 CPU、内存和带宽图表。轮询适合观察趋势且可靠,但会有轻微延迟,因为您只能在下一次轮询时获知变化。SNMP 轮询通常通过代理的 UDP 161 端口运行。
snmpget -v2c -c public 10.0.0.1 sysUpTime.0使用陷阱消息即时告警
陷阱消息是代理在某些值得注意的事情发生时立即发送的未经请求的消息,例如接口中断或电源故障。陷阱消息通过 UDP 端口 162 到达管理器。由于陷阱消息使用 UDP,因此无法保证送达;通知是陷阱消息的一种需要确认的版本,由管理器确认已收到。
SNMP 版本
有三个版本值得关注。SNMPv1 和 SNMPv2c 使用明文社区字符串作为密码,由于该字符串以未加密的形式传输,因此并不安全。SNMPv3 增加了身份验证和加密功能,同时保护数据和凭据。在考试和实际应用中,对于任何现代的安全部署,SNMPv3 都是推荐选择。
社区字符串
在 v1 和 v2c 中,社区字符串用于控制访问。只读字符串允许进行轮询;读写字符串还允许执行设置操作。常见的默认值“public”(读)和“private”(写)广为人知,因此保留这些默认值会带来严重风险。请始终更改默认值,更好的做法是迁移到 SNMPv3。
健康数据揭示的信息
SNMP 可以提供丰富的设备健康数据:接口的启用或停用状态、每个接口的字节数和数据包数、错误和丢弃计数、CPU 和内存使用率、温度以及运行时间。监控工具会将这些数据组合成图表和警报。例如,接口错误不断增加可能暗示网线损坏,而 CPU 使用率持续升高可能表明设备负载过重。
SNMP 与其他数据源的比较
SNMP 非常适合提供数值计数器和状态信息,但它并不是唯一的数据源。系统日志承载文本事件消息,而 NetFlow描述谁在与谁通信以及通信量有多大。完整的监控平台会结合 SNMP 健康指标、系统日志事件和流量数据。了解哪个数据源能够回答哪个问题,是排查故障的一项重要技能。
保护 SNMP
由于 SNMP 可以读取甚至更改设备设置,因此必须谨慎保护它:使用 SNMPv3 进行加密和身份验证,使用访问控制列表将访问限制在管理网络内,更改默认社区字符串,并在不需要的地方禁用 SNMP。安全措施不当的 SNMP 配置可能会泄露拓扑详细信息,或让攻击者重新配置设备。
快速检查
测试您对 SNMP 的了解。
总结
您已经了解了 SNMP。要点:
- 管理器会轮询设备上的代理,以获取健康数据。
- 数值存储在 MIB 中,并通过对象标识符进行寻址。
- 获取和设置操作由管理器发起;陷阱消息是由代理发起的警报(端口 162,轮询使用 161)。
- v1/v2c 使用明文社区字符串;SNMPv3增加了安全性。
- 将 SNMP 与系统日志和流量数据结合起来,才能获得完整的可见性。
常见问题解答
「SNMP 和设备健康数据」课时是免费的吗?
是的 — 「SNMP 和设备健康数据」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Network+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Network+ Academy 课程共包含 4 节课。
「SNMP 和设备健康数据」这节课中我会学到什么?
了解 SNMP 如何收集网络设备的状态信息 你通过在浏览器中直接运行的动手代码来练习 Network+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Network+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Network+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「SNMP 和设备健康数据」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Network+ Academy 课中编写并运行代码吗?
能。每节 Network+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 监控为何重要
- SNMP 和设备健康数据
- 日志、Syslog 和警报
- 基线和性能指标