使用Python进行网络监控
1. 网络监控方法概述
网络监控是保障网络稳定运行的重要手段。常见的网络监控方法有基于SNMP的监控和基于流的监控。
1.1 SNMP监控
SNMP(Simple Network Management Protocol)是一种常用的网络管理协议,通过SNMP管理器向网络设备上的SNMP代理发送特定树形结构的OID(Object Identifier)来查询信息。通常关注的信息如CPU负载、内存使用和接口流量等,这些数值可以随时间进行绘图,以观察其变化趋势。
不过,SNMP属于拉取(pull)式方法,即不断向设备请求特定答案。这种方法会给设备带来负担,因为设备需要在控制平面花费CPU周期从子系统查找答案并回复管理站。如果多个SNMP轮询器每30秒对同一设备进行查询,管理开销将显著增加。
1.2 基于流的监控
与SNMP的拉取式不同,基于流的监控是推送(push)式的。网络设备以约定格式将流量信息(即流)推送给管理站。常见的格式有Cisco专有的NetFlow(版本5或版本9)、行业标准的IPFIX以及开源的sFlow。
2. 利用Python进行SNMP监控
2.1 配置与查询
在网络设备上配置与SNMP相关的命令,使用带有SNMP轮询器的网络管理虚拟机对设备进行查询。可以使用PySNMP模块简化和自动化SNMP查询,并将查询结果保存到平面文件中,供后续使用。
2.2 可视化
使用Python的可视化包Matplotlib和Pygal对SNMP查询结果进行绘图。Matplot
超级会员免费看
订阅专栏 解锁全文
71

被折叠的 条评论
为什么被折叠?



