SNMP(简单网络管理协议)是现代网络监控的核心技术,它能让管理员轻松掌握所有可管理设备的运行状态和内部资源使用情况。可以在设备出现比较严重问题之前,发出及时的通知。那么需要怎样合理的使用SNMP实现呢?我们需要先全面了解SNMP监控。
SNMP基础原理
SNMP监控实现需要4项:
监控端(例如:ManageEngine OpManager(简称OPM))
SNMP Agent(可以在被监控的设备上直接开启)
需要厂商的SNMP MIB库文件
需要OID(获取监视项的树结构节点)
生成如下视图:
SNMP版本
SNMP存在三种版本,V1、V2C、V3
V1对比V2C之间,不存在本质上的区别,都是基于明码的SNMP团体名实现监控,但是V2C具有GetBulk操作和处理Inform请求的能力,可以批量获取数据并且支持确认型告警。V3具有强大的安全机制,V3与V1/V2C的主要区别就在于此处。V3使用加密协议和认证协议进行通信,使用V3,即使V3包出现泄密,也无法获取对应数据。
SNMP实现监控的流程
配置SNMP代理:用户需要在被监控的设备上配置SNMP代理,配置方式Windows可以在功能中安装配置;Linux需要安装SNMP配置代理;网络设备需要配置命令进行配置。
配置团体名:团体名是使用V1/V2进行监控设备时,才存在的一种联系方式,监控需要通过团体名进行访问设备。而对于V3凭证,使用的是认证协议和加密方式,无需配置团体名。
加载MIB库文件:团体名是为了OPM端和Agent端可以互相通信,如果需要获取数据,需要通过MIB库中的OID进行发送get请求,然后回应请求,从而实现获取数据的需求。因此需要在监控端加载MIB库文件。
采集方式:主动轮询(Get/GetNext)方式,OPM通过主动发送Get请求的方式获取对应数据,Agent会在设备端收集数据并且给与应答,从而实现监控。此监控方式是当前主流的监控方式。另外一种方式是被动接收模式(Trap),OPM端被动接收设备Trap文件,OPM需要通过Trap的MIB库文件进行解析,当解析完成之后,OPM将会通过邮件、短信、企业微信等方式产生告警。
这两种采集方式针对情况是有所不同的:
主动获取:
数据准确性较高:通常针对的是需要精确获取的厂商或者客户
数据完整性高:定期轮询会形成数据完整链,形成连续性能曲线,可以预测后续趋势等
兼容性强:所有的可管理设备都存在SNMP,并且所有的SNMP版本都支持Get操作
OPM具有完整的获取方案,能够自主定义产品轮询获取的间隔,实现数据完整性,并且支持所有的SNMP数据获取。
如图:OPM接口流量图:
OPM预测视图:
被动接收:
实时事件响应:毫秒级事件响应,任何事件触发都将发送Trap达到实时监控的效果。
资源利用率高:仅在事件发生时,才会占用设备资源,产生发送Trap通知。
关键事件覆盖率高:支持标准的预定义事件,例如:登录失败、认证失败等。支持厂商自定义Trap,例如:温度、磁盘损坏等
OPM也具有Trap监控的优势,产品内置共有MIBTrap告警,也可以自主导入私有MIBTrap,实现实时监控。
内置共有Trap的MIB文件:
综上所述:
SNMP是监控的“网络中枢”,通过SNMP可以使监控端实现监控设备所有性能,可以通过主动获取和被动接收的方式监控设备。可以为以下场景提供强有力的帮助:
实时性能分析的能力:OPM的流量可视化
主动告警:OPM具有丰富的告警机制,可以通过邮件、工单、短信、聊天工具等主动告警
容量规划:OPM可以基于历史数据进行预测后续趋势
另外,随着物联网设备激增,掌握SNMP监控方式成为了主要竞争力,建议重点关注可以实现SNMPV3版本监控(OPM)的软件,并且建立层次化的监控策略。