从“脚本小子”到“乐高玩家”:聊聊我的Python网络自动化巡检心得,核心就俩字:解耦!

2027年新疆职业院校技能大赛“网络系统管理”A模块网络构建真题 2027年新疆职业院校技能大赛“网络系统管理”A模块——网络构建真题,仅供学习使用。 阅读详情

引言

 

本文旨在向大家分享原子化网络巡检架构的设计思路。通过解构网络巡检诊断流程的核心要素模块,构建可编排的自动化流水线,并延伸至可视化流程编排的进阶实现。

 

巡检转维的“爱恨情仇”

 

搞网络这些年,巡检和转维这俩活儿,着实让人又爱又恨。爱的是入网巡检作为网络运维的第一道“护城河”,能在第一时间有效识别风险隐患,确保设备合规入网,为现网稳定运行保驾护航;恨的是其重复、繁琐、体量庞大的特性,常令人苦不堪言。

相信不少同行和我一样,都尝试过用Python脚本来自动化巡检用例或流程,试图把自己从“人肉CLI”中解放出来。笔者所在的公司亦是如此——近5年网络设备数量增速巨快,单板、光模块等零部件数量更是无比庞大。在数字化加速的背景下,我也从处理故障、变更的传统网工,转变为全职负责网络转产验收及平台建设的专项网工。历经多年积累与沉淀,公司的入网转产已从“人工为主,工具为辅”蜕变为如今的“工具主导,人工为辅”。目前,自动化巡检用例已达95%,九成的交付场景已实现了自动验收→自动转维的平台自动作业流程。

然而,自动化之路并非坦途,相信大家和我一样都踩过如下这些“深坑”:

  1. “祖传脚本”综合症: 写完巡检脚本,当时美滋滋。结果设备型号一换、基线一更新、或者巡检要求加个新检查项... 完犊子!脚本得大改!改着改着就成了无人敢碰的“屎山”,自己都不想看第二眼。这就是典型的“脚本小子”困境——高度定制化导致代码质量脆弱不堪、隐患横生、任何微小的基线改动都需要修改代码。

  2. “复制粘贴”工程师: 不同场景(比如查端口状态和查BGP邻居),需求不同,逻辑不同。结果就是每个需求都得吭哧吭哧从头写新脚本,测试用例,评审,上线...或在一个大脚本里疯狂堆叠代码。效率低下、重复造轮子、极易引入新Bug。

  3. “黑盒子”恐慌: 脚本写得稍复杂点,过俩月自己都忘了内部逻辑如何流转。更别提交接给其他同事,人家一看密密麻麻的代码就头大,维护和交接成本巨高。

这种传统的、强耦合的脚本化巡检模式,已然面临严峻的效率瓶颈与技术断层。

 

顿悟:解耦是核心,拥抱“乐高”哲学!

 

 

在无数次踩坑后,我终于顿悟:网络自动化巡检/转维的核心竞争力,不在于编写多么高深的代码,而在于将“业务逻辑” 与“代码实现” 彻底分离!用行业术语说,就是“解耦”。

如何实现解耦?原子化 + 可视化编排 + 工作流引擎 ,必是不二之选!

 

解构网络巡检:在包罗万象的每一个巡检业务中提炼出殊途同归的原子动作

 

在探讨方案前,我们先梳理网络巡检的典型范畴:

  • 设备基础信息: OS版本、补丁、License、整机及部件型号(含配比)。

  • 设备硬件状态: 电源、风扇、单板、接口、光模块状态等。

  • 配置信息: 网络管理、交换、路由、可靠性、安全、QoS等配置是否符合基线。

  • 协议状态: OSPF、BGP、BFD等协议运行状态。

  • 表项规格及产品特性: 如大路由表能力、框式设备单板互通模式、IPv6资源等。

  • 架构及工程合规: 检查交付单元(网元、带宽、收敛比、物理连线、IP资源、AS号、BGP团体字等)是否符合企业网络架构设计与工程规划。

  • 运维平台纳管: 确认设备是否已在CMDB、日志、告警、自动化作业等平台纳管。

  • 深度巡检: 由现网告警/故障触发的软件级或芯片级深度检查。

  • 其他未列举项

从业务角度看,网络巡检涵盖方面不可谓不复杂,从软件到硬件、从静态配置到协议状态、从单个网元到整网的方方面面,可谓包罗万象。

然而,从执行流程看,无论任务简单或复杂,核心无非是执行以下几类“原子动作”:

1,获取信息 (Fetch):

  • 通过CLI执行命令获取信息(display version, display interface...)。

  • 从CMDB或其他API获取设备信息(IP、型号、位置...)。

  • 从监控系统获取性能数据(CPU、内存...)。

  • 从基线系统获取数据(配置基线、工程规划...)。

2,处理信息 (Process/Transform):

  • 文本处理: 切分、拼接、删减。

  • 文本解析: 使用正则表达式或TextFSM等库,将CLI返回的非结构化文本转换为结构化的数据(字典、列表),如JSON格式,便于后续处理。

  • 变量转换: 对已解析变量进行条件过滤、数据类型转换、键值映射等操作,生成新变量。

  • 动态代码 (可选): 对于极其复杂的处理,可通过Python的exec()函数封装动态代码执行引擎(谨慎使用,但威力强大)。

  • 命令渲染: 使用Jinja2模板,结合中间变量生成待下发的命令集。

3,逻辑控制 (Control Flow):

  • 选择器: 实现条件分支(类似if...elif...else),决定下一步执行哪个原子动作。

  • 循环器: 实现循环逻辑。

4,判断决策 (Decide/Output):

  • 合规检查: 判断配置或状态是否符合规范(例如:是否配置了ACL?SNMP版本是否正确?BGP团体字中是否包含特定字段如上联AS号?)。

  • 合规条件: 基于解析后的结构化数据进行逻辑判断(“端口状态是否为down?”,“CPU利用率是否>80%?”)。将合规条件抽象为对变量数据的运算(字符串包含、整数比较、列表操作等)。

  • 输出结果: 生成报告、触发告警、或驱动后续动作(如自动修复)。

 

核心思想:构建可复用的“原子积木”

重点来了!上述列出的每一个“原子动作”(如“获取CLI回显”、“文本解析”、“条件判断”、“变量聚合”等),都应该被设计成独立的、高度可复用的“小积木”(即模块化函数或组件)!

“搭积木”式编排:可视化与工作流引擎

拥有了这些标准化、原子化的“小积木”,巡检用例的构建方式将发生革命性变化——无需再编写冗长、耦合的脚本,而是进行可视化“搭积木”!

想象一个类似Visio或流程图工具的可视化界面:

  1. “零件盒”: 左侧区域存放所有预定义好的原子动作积木,例如:【下发命令】、【获取CMDB信息】、【TextFSM解析】、【选择器】、【合规条件判断】、【聚合数据】...

  2. “画布”: 中央工作区。

  3. 构建流程:用箭头将需要的积木按业务逻辑顺序连接起来,形成一个有向无环图 (DAG),清晰表达执行流程。

  4. 节点配置: 双击每个积木进行具体参数配置(如命令字符串、模板路径、判断条件等)。

  5. 保存与执行: 给这个流程图命名(如内存使用率巡检),点击“保存”即可,后续需要执行时通过执行引擎调用这个流程图即可。

 

解耦架构的显著优势

告别“脚本小子”,拥抱“乐高大师”:

  • 业务与代码分离: 原子动作的底层实现(由少数“积木开发者”维护)与上层的巡检逻辑编排完全解耦。网络工程师(即使不懂Python)也能通过拖拉拽和配置完成复杂巡检的设计。

  • 业务逻辑可视化: 流程图本身就是清晰、直观的设计文档,彻底告别“黑盒子”。

 

复用度爆表,效率飙升:

  • 一次开发,处处使用: 构建新的巡检用例时,只需在“零件盒”中选取现有积木进行组合与配置,效率极高,彻底摆脱“复制粘贴工程师”的窘境。

 

灵活敏捷,响应快速:

  • 需求变更易如反掌: 例如内存阈值需从20%调至15%,只需修改积木的配置参数即可,整个流程无需改动。

  • 环境适应性强: 设备型号升级导致解析规则变化?仅需更新对应的TextFSM模板文件,所有使用该解析积木的巡检任务将自动生效。

 

门槛降低,维护无忧:

  • 易于理解与交接: 流程图是最佳的活文档,新人一目了然。维护时能快速定位问题积木,检查配置或查看日志。

  • 协作更顺畅: 不同角色(架构师、工程师、开发者)能在统一的可视化模型上高效沟通。

 

无缝延伸至自动化转维:

  • 转维即检查项组合: 转维本质是一系列检查用例的组合。利用相同的“原子积木”和“可视化编排”思路,可轻松将CheckList自动化,生成标准化的转维报告,极大提升转维效率和可靠性。

 

结语

 

编排的本质是知识沉淀 -- 把老师傅的诊断经验变成可复用的原子能力,OK,今天先写这么多,后续将继续在文章中分享网络自动化巡检及修复业务的原子化技巧及可视化编排方案等,谢谢大家。

 

Anaconda离线创建python环境 既然是离线创建python环境,就需要有一个已经创建好的python环境。所以我们有两台win10的机器,分别是A和B。两台机器都安装了anaconda。其中A可以连网,因此我们在A上创建好一个python2.7的环境py27,然后将py27移植(安装)到B上。B连不连网都无所谓。 一、机器上A上创建python2.7的环境py27 有两种方法: 方法1:使用Anaconda的图形界面。首先,点击Environments->Create,然后输入要创建的环境名称"py27",然后选择2.7,如图 阅读详情

相关推荐

多模态情感识别(MER)数据集实战指南:从IEMOCAP到应用落地

本文提供了多模态情感识别(MER)从数据集到应用落地的完整实战指南。以经典IEMOCAP数据集为例,详细讲解了音频、视觉、文本等多模态数据的预处理、特征提取与融合技术,并分享了模型训练调优心得及面向智能客服、在线教育等场景的部署考量,帮助开发者快速构建高效可用的MER系统。

h3i4j的博客 1071

四路 CAN 转 4G 网关

SG‑CAN‑4G‑410 为**四路隔离 CAN 转 4G 工业网关**,把 CAN2.0A/B 报文封装成 TCP/UDP 报文,通过 4G 无线网络实现 CAN 总线远程监控、远程控制。四路 CAN 相互独立;以太网仅用于本地配置,不做业务数据传输;支持移动 / 联通 / 电信 4G 网络。

S2003120416的博客 166

ROS学习【11】-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真(camera、kinect、Lidar),并通过Rviz进行数据显示

ROS学习-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真目录一、Gazebo环境搭建前的准备1、将搭建模型下载到我们的gazebo环境下2、升级我们的gazebo版本二、创建配置launch文件参数的world文件1、进入工程包mbot_gazebo2、创建文件夹worlds3、进入该文件夹4、创建playground.world文件5、创建room.world文件三...

qq_42451251的博客 3608

汽车电子标定与测量的核心基石XCP协议

控制逻辑(算法)与标定参数(数据)。如果每次优化参数都要修改源码、重新编译并刷写Flash,整个研发周期的效率将趋近于零。标定(Calibration)技术正是为了解决这一痛点而生。它允许工程师在ECU运行过程中,动态观察内部变量(测量,Measurement),并在不中断运行的前提下实时修改控制变量(标定,Calibration)。在这一领域,XCP(Universal Measurement and Calibration Protocol,通用测量与标定协议)是公认的行业标准与核心基石。

diansandaosilaodanan的博客 381

RV1126B芯片实战:如何用这款视觉处理器SoC打造你的第一个AI摄像头项目

本文详细介绍了如何利用瑞芯微RV1126B视觉处理器SoC从零构建AI摄像头项目。涵盖硬件选型、开发环境搭建、ISP配置、AI模型部署及系统集成等关键步骤,帮助开发者高效实现边缘计算方案,特别适合智能安防和工业检测应用。

dropout6artist的博客 931

ATR2660:卫星导航高增益低噪声放大器芯片数据手册

中国BDS(北斗卫星导航系统),美国的GPS,俄罗斯的GLONASS和欧盟的GALILEO导航系统应用而专门设计。芯片支持3.3V至5V宽电源供电。采用2级放大器的结构设计,具有28dB高增益和0.85dB的低噪声系数。支持BDS、GPS、GALILEO、GLONASS等L。典型功率增益:30dB@5V;典型输入P1dB:-18dBm@3.3V;典型工作电流:12.7mA@3.3V;宽供电电压范围:3.3V~5V;典型噪声系数:0.85dB;频段的多个卫星导航系统;ATR2660是一颗。

YHPsophie的博客 561

【计算机网络】断点续传是怎么做到的:从 Range 请求到分片上传的完整机制

断点续传在下载侧靠的是 HTTP 现成的 Range 协议,Content-Range 保证偏移对得上,If-Range 防止文件变更导致的错误拼接;上传侧没有标准,需要自己设计 init/part/complete 三段式交互,核心是让服务端记住“哪些块已经收下”,从而把失败粒度从整个文件降到单个分片。 这套机制可以迁移到任何长耗时操作的设计上。判断方法很简单:先问失败粒度是多少。如果一次操作失败就得从头再来,那它迟早会在生产环境里出问题——传输、批量导入、数据迁移、长事务,都是同一个道理。把大操作切成

2503_94545876的博客 540

机器视觉学习(七)—— 卷积、边缘和滤波器

卷积运算、垂直边缘与水平边缘、滤波器

歆歆~黯了 2740

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 323

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6104

一键开关机电路

一键开关机电路

让你爱上电路设计 4180

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 429

GEE:哨兵时间序列遥感数据和动态阈值方法计算物候时期EOS/SOS(2)

本文将分享和解释论文《Improved Estimates of Arctic Land Surface Phenology Using Sentinel-2 Time Series》中使用到的基于阈值估算北极地区的植被物候,特别是北极地区的植被季节开始和结束的日期(SoS和EoS)的方法和代码。该方法使用的是使用哨兵2数据,并实现了两种阈值方法( 无平滑的阈值方法、平滑后的阈值方法)。

养乐多的博客 2971

AI 芯片片上网络 NoC 深度解析:flit、虚通道与拥塞控制如何决定 GPU/TPU/LPU 的算力利用率

AI芯片算力瓶颈不在FLOPS,而在片上网络(NoC)——数据搬运的能耗与延迟决定MFU上限。物理限制下,长线延迟不随工艺缩小,迫使NoC将全局布线拆为可流水的短链路;能量账显示,一跳传输耗能可达数十次乘加操作。拓扑选择直接影响性能:二维mesh虽布线可行,但均匀流量下每节点可用带宽按1/√N衰减,实测仅达标称值30%。虚通道、双网设计、静态调度(如Groq)等技术旨在突破此瓶颈。从总线到crossbar再到多跳NoC,本质是用延迟换可行性。未来趋势:专用通路(脉动阵列)、晶圆级集成(Cerebras)、跨

我的博客 92

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

台湾行情数据API接入教程

想用程序获取台股行情,很多人第一步会搜“台股资料 API 推荐”,结果发现选择不少:证交所有免费接口,Yahoo Finance 也能查,券商还有自己的 API。真正写代码时才发现,有的数据只到收盘,有的延迟 20 分钟,有的必须先开户。本文先梳理台湾行情数据的几种获取渠道,再用 Python 从零搭一个可以运行的台股数据脚本:查代码清单、取实时报价和盘口、拉历史K线、做复权、用 WebSocket 接收实时推送,最后结合台积电 ADR 和新台币汇率计算跨市场溢价。

qq_34102871的博客 308

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Qt网络编程实战指南:从底层Socket到现代异步架构的选型与避坑

本文梳理Qt网络编程的核心模块与演进路线,对比QTcpSocket与QNetworkAccessManager的使用边界,结合HTTP请求与TCP长连接的完整示例,说明信号槽、内存管理与事件循环的配合方式。重点记录连接池设计、证书校验、线程亲和性等实际开发中的关键决策点,帮助读者在C/S或跨平台项目中建立稳定的网络层基座。

2402_83344867的博客 294

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从母钟到子钟:NTP 网络时钟系统架构与软件接口

本文从工程角度简要介绍公共场所的时间同步需求、NTP协议的定位,以及典型LED同步时钟的系统架构与硬件设计,以讯鹏科技4寸与5寸同步时钟为例。

SPZHCS的博客 159

DPVS 报文黑匣子与 Crash 自动拉黑:给转发面装上“飞行记录仪“

谁打挂了我(crash dump)、他之前发了什么(慢路径环)、他还会再来(入口拉黑)。设计上我们始终坚持两条原则:记录与决策分离(黑匣子永远只说不做),以及误伤成本优先于漏放成本(三道闸门全部通过才拉黑,expire 到期自动解封)。性能上,全量快路径摘要 + 入口查表的综合开销低于 1.3%,在 FIP 网关的流量水位下不可感知。飞行记录仪的价值不在于飞机正常飞行的时候,而在于它让每一次事故都变成一次改进。对转发面来说,同样如此。

zyun360的博客 271

HTTP、SSE、WebSocket、Socket.IO:实时通信方案深度对比与选型指南

HTTP 是基础,是整个 Web 的底座;SSE 是单向推送的轻量最优解;WebSocket 是高性能双向实时通信的底层标准;Socket.IO 是一套降低开发门槛、抹平环境差异的上层框架。技术选型永远不是“哪个技术更酷”,而是匹配业务的实时性、交互方向、网络环境、团队维护成本。简单需求优先轻方案,复杂双向实时再上 WebSocket;如果追求快速落地、兼容各种奇葩网络,Socket.IO 是很好的选择。

changshuaihua001的博客 347

计算机毕业论文系统测试怎么写:从测试用例设计到对比实验,让“工作量“看得见

本文系统阐述计算机毕业论文中“系统测试”章节的撰写方法,涵盖功能测试用例设计(等价类、边界值、判定表)、性能测试压测方案与关键指标(平均响应时间、P99、吞吐量)、对比实验设计原则及评价指标选取。强调通过量化数据、阶梯加压曲线、瓶颈定位与多维度对比,真实展现研究工作量与技术深度,提供可直接套用的测试用例表与实验方案模板,助力论文脱颖而出。

wuwangzhiduoshao的博客 301

Linux网络编程:TCP多线程远程命令执行与线程池改造

前面已经实现了 TCP Echo Server,并且通过多进程和多线程解决了多个客户端连接的问题。不过目前服务器的业务还是比较简单,客户端发送什么,服务器就返回什么。这次在原来的多线程服务器上继续做一些改动,实现一个简单的远程命令执行功能。这次主要学习了两个内容。第一个是多线程远程命令执行。通过 Command 类封装命令的接收、检查、执行和结果返回,并使用 set 对允许执行的命令进行限制。第二个是线程池版本的 TCP Echo Server。通过和std::bind。

2501_93388101的博客 370

亚远景-欧盟 NIS2 与 CRA 双法规生效,车载出口企业网络安全与过程合规建设要点

亚远景结合法规要求与车载行业特性,梳理双法规对整车与零部件出口企业的核心影响,说明如何以 ISO/SAE 21434 为核心、以 ASPICE 为过程底座,搭建满足欧盟要求的网络安全与过程合规体系。

yayuanjingkeji的博客 193

23 网络性能与 QoS:带宽、时延、吞吐计算与保障机制

带宽是上限、不是实际速度;时延由传输、传播、处理、排队四段组成。一道题让你算端到端时延和吞吐,关键是先找到瓶颈在哪一跳。QoS 靠分类、标记、队列、调度四步保障,配一张瓶颈定位+容量规划图,再跟 3 道真题。

weixin_46316564的博客 221

python如何编通讯程序

通讯程序需要处理IP地址和端口。IP地址用于标识网络上的设备,端口用于标识设备上的服务。编写通讯程序时,需要选择合适的端口号并确保它不与其他服务冲突。此外

2601_96798011的博客 178

五个压测工具简介

本文对比五款主流性能测试工具:JMeter(开源全能,适合接口与复杂业务压测)、sysbench(数据库基准调优标杆,轻量高效)、ab(极简HTTP压测,快速摸底)、LoadRunner(商业企业级,支持复杂场景与特殊协议)、mysqlslap(MySQL内置,快速验证并发能力)。各具优势,适用于不同场景,开发者可根据需求选择。

呆萌很的博客 185

reqrio协议指纹库ja3 ja4

HTTP 层的行为参数看起来琐碎,但每一条都是可比对的信号:Header 的名称大小写与排列顺序、Cookie 的存储与携带策略、重定向的跟随层数与跨域处理、压缩算法的支持范围(gzip、Deflate、Brotli、Zstd)、请求体的编码方式(表单、JSON、文本、二进制、Base64、十六进制、URL 编码)。更进一步的是流式模型——把 HTTP/1.1、HTTP/2、HTTP/3 的处理统一成同一种“流”,可以同时发出多个请求,再按需接收响应,这对需要精细控制时序的采集场景很有价值。

2603_96485347的博客 272
下一篇: NetDevOps漫谈:构建基于可视化编排的网络自动化系统
隔壁老网工
博客等级 码龄2年 6粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值