SNMP(Simple Network Management Protocol), 即,简单网络管理协议。用于网络设备的远程管理。
为不同厂商的各式网络设备提供了统一的远程管理接口。
使用场景
- 监控。例如,与 Nagios, Cacti 集成,对服务器系统指标(CPU,内存,硬盘容量等)进行监控。也可以对单片机、一个进程,网络设备路由器、交换机等进行监控。国内外大量的网络设备(如路由器、交换机)都支持SNMP协议,并作为一项标配。
- 设备的远程初始化配置
- 设备上的传感器数据异常上报
版本
目前有三个版本:v1, v2, v3
兼容性:v3 版本对 v1,v2 兼容。
系统组成
- NMS(Network Management System)即管理系统。类似于 TR069 中的自动配置服务器(Auto-Configuration Server,ACS)
- SNMP Agent
- Management Object,即,被管理对象。类似于 TR069 中的用户终端设备(Customer Premise Equipment,CPE)。一个设备中可能包含多个被管理对象,例如设备上的不同硬件。
- MIB, Management Information Base,即,管理信息库。存储对象名称,对象状态,访问权限等。
传输协议
UDP
数据流
NMS - SNMP Agent - MIB - Management Object 每个过程都是双向的。
每个被管理设备中都包含驻留在设备上的 SNMP Agent 进程、MIB 和多个被管对象。NMS 通过与运行在被管理设备上的 SNMP Agent 交互,由 SNMP Agent 通过对设备端的 MIB 进行操作,完成 NMS 的指令。
SNMP应用程序处于网络模型中的应用层,应用层中的数据最终以二进制流在网络中传输,在接收方必须理解所接收的字节流。
SNMP Traps
Trap 意为陷阱,可以理解为警告。
NMS 可以接收设备上的 SNMP Agent 主动发送的 SNMP Traps,以获知被管理设备当前的状态。
通常在设备出现故障时,主动向 NMS 发送 Traps 报警信息。由于使用的是 UDP 协议,并不保证一定能收到。
Trap 的应用场景:一般情况下,NMS 负责其名下各个站点信息的轮询,不过当管辖的 Agent 过多而且每个 Agent 信息量又很大时,NMS 一遍轮询下来负担过重,且不能保证其对各 Agent 的实时查询,甚至是不现实的。不过当引入 Trap 机制后,管理站能够在降低网络和系统开销的情况下实现设备的管理。
参考
- 《深入理解 Net-Snmp》 非常系统讲解 SNMP 的一本书
- https://support.huawei.com/enterprise/zh/doc/EDOC1100087025
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式