开发背景

目前在日常工作中,确实十分急需自动化运维的工具,例如监控工具、巡检工具、配置工具等。身为网络行业的一员,我猜你一定碰到过类似需求或者问题:

1、公司使用了超过1000台华为交换机,有一天你接到通知,现有交换机的VRP系统存在很多安全漏洞,需要尽快升级,你怎么办?

2、大型企业网络中,有超过2000台网络设备,包括路由器、交换机、防火墙等,最近公司更换了AAA认证服务器的IP地址或更换登陆用户名和密码,你需要修改相关配置,你怎么办?

3、日常运维巡检工作,成百上千台网络设备,包括路由器、交换机、防火墙等,每日必须定时的查看设备信息(型号、版本、SN等)、状态信息(CPU、内存、电源、风扇等),在等级保护测评要求中,应提供数据的本地备份机制,每天备份至本地,且场外存放,其中包括主要网络设备配置文件。其次,日常网络运维,为了审计和防止设备故障导致设备配置丢失而造成长时间网络故障,需要对网络设备的配置做策略备份。

4、网络维护人员通常都是在凌晨0点至6点对网络进行割接升级操作,会极大地影响维护人员的工作状态和身体健康。可以提前写好设备的配置命令,并通过测试和双人审核,然后通过编写Python 代码,设置任务计划,能够实现定时地自动远程登录设备,并进行设备的配置。

类似这种重复劳动、费时费力的需求,一直伴随着每个网络工程师。。。,为此我积极探索网络自动化运维技术,自主研发基于DJANGO+VUE3.2+linux完全前后端分离的NetDevOps网络设备自动化运维平台。该平台以 NetDevOps 中的 “Netmiko+TextFSM” 模块为核心,可兼容多种主流网络设备类型,实现了配置备份、配置下发、设备巡检和配置生成等功能的自动化管理。平台后端程序使用python编程语言来管理和配置网络设备,配置生成的自动化以及推送的自动化。轻松实现分分钟搞定成百上千台网络设备的自动巡检及配置自动化,自动备份网络设备配置文件,把配置文件上传FTP服务器,备份成功后,自动打包上传至阿里云对象存储OSS,完全满足等级保护测评要求,为了审计和防止设备故障导致设备配置丢失而造成长时间网络故障。通过钉钉、企业微信或邮箱发送通知。UI界面友好美观,功能强大,备份策略可自定义。

功能展示

1、技术选型

图片

  • 前端项目技术栈
    • Vue3.2
    • Vue-router
    • Element Plus
    • Axios
  • 后端项目技术栈
    • Python3.9.16
    • Django DRF
    • Mysql8.0.30
  • 部署环境
    • 银河麒麟服务器系统Kylin Linux Advanced Server V10、华为openEuler、Rokcy8.8等Linux均完美运行
    • nginx1.21,Nginx 配置 SSL 支持 HTTPS
    • UWSGI+supervisor

2、登录验证

图片

3、主页-展示资源及日志信息

图片

4、运维管理

4.1 凭证管理

凭证管理:新增与编辑,设备关键信息通过加密算法以密文或采用密钥方式存取,每台设备的密码都不尽相同,需要针对密码做加密和解密操作,执行命令的时候不直接显示明文密码。

图片

4.2 模版管理

模版管理(用于全自动化巡检、配置下发、配置生成):解析模板做线上管理,采用的方式是把模板的内容保存到数据库中,利用 TextFSM 模块,按需设置关键指标和匹配规则,通过有效状态自动机来完成文本内容解析的自动化配置解析模板,用于提取网络设备终端回显的文本并解析成格式化数据,快速将运维经验转化成生产力,提升工作效率,最后自动生成数据存取巡检结果。整个巡检过程无需人工参与,可实现包括内存、CPU、电源、链路状态在内各类设备参数的快速巡检。

图片

4.3 通知管理

通知管理:支持各类操作成功与失败的通知,例如:每日上午对网络设备自动巡检,完成后的信息钉钉通知,也可以设置Email、企业微信通知。

图片

图片

4.4 数据库备份设置、文件备份配置

1、自定义备份策略:设置数据库自动备份的参数以及自定义各类文件、文件夹。2、在等级保护测评要求中,如每天自动备份上传的网络设备配置文件以及数据库自动备份的文件,应提供数据的本地备份机制,每天备份至本地,且场外存放,其中包括主要网络设备配置文件。其次,日常网络运维,为了审计和防止设备故障导致设备配置丢失而造成长时间网络故障,需要对网络设备的配置做策略备份。

图片

图片

用Python封装了xtrabackup备份和还原的过程,做到基于完整和增量备份自动化备份,基于时间点的自动化还原。1,基于xtrabackup的流式压缩备份。2,周六/或者任意时间的第一次备份为完整备份,其他时间为基于上一次备份的增量备份。3,将备份开始时间,结束时间,备份路径等信息写入一个日志文件,方便后续自动化还原的时候解析。效果如下:不管是什么时候,第一次必须为完整备份,然后根据上述规则,继续执行备份的话为基于最新一次备份的增量备份,每备份完成后生成修改备份日志列表信息。

图片

图片

每日定期打包已经备份的数据库文件并上传至阿里云OSS上,备份信息钉钉消息通知

图片

图片

图片

图片

5、设备管理

支持新增、编辑、删除、批量删除、批量导入功能、查看设备资源信息:CPU、内存、交换机配置信息的查看、备份。

5.1 IDC机房管理

图片

5.2 主机分组管理

图片

5.3 网络设备管理

支持新增、编辑、多关键词搜索,删除、批量删除、批量导入功能、批量设备下架,允许配置、下发配置等,查看设备资源信息:软件版本、运行时间、配置信息的查看、维保、出厂日期等。

图片

图片

新增网络设备时,只须按如下图所示填写即可,按确定后,后端程序自动登陆网络设备,自动收集软件版本信息,CPU、内存、交换机配置信息、启动文件、运行时间、产品型号、序列号、生产日期等。

图片

图片

图片

批量添加网络设备

下载导入模板

该功能主要实现对需要批量添加的设备生成一个excel文档,用来填写相应信息。

图片

批量导入模板

该功能主要实现对填写好的excel导入到数据库中,用来进行对设备操作

图片

批量导入后

图片

图片

图片

图片

编辑设备信息:

图片

图片

上传网络设备相关图片

图片

图片

在“运维管理—模版管理”填写下发配置

图片

图片

下发配置后端流程:

图片

图片

自动判断下发配置是否成功,并钉钉消息通知

图片

图片

6、网络设备自动巡检

网络设备自动化巡检流程,在基于上面介绍过的相关功能模块,各参数按需设置后,再如下图示设置后,自动对网络设备自动巡检采集参数入库,同时批量将网络设备的配置文件上传至FTP服务器以及配置文件压缩上传至阿里云OSS存储,完成后钉钉告警,全部由后端程序自动完成,无须人工干预。

图片

效果展示:

图片

图片

图片

7、定时任务和计划性维护

网络设备的定期维护和任务调度对于网络的稳定性和性能至关重要。脚本可以按计划自动执行维护任务,例如备份设备配置、定期清理日志、更新设备固件等。通过自动化管理这些定期任务,运维工程师可以减少人工干预和遗漏,确保维护活动的及时性和一致性。

图片

以上所完成的功能模块,均已应用在生产环境中安全稳定其余未展示功能开发中,有感兴趣的同学可以私聊我搭建部署,也可定制开发需求(均有偿)。后续进行优化迭代,会加入故障排除和日志分析、获取接口信息、ARP信息、LLDP信息等功能。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。