Python基于telnetlib模块实现交换机全面巡检自动化运维项目

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Python基于telnetlib模块实现交换机全面巡检自动化运维项目

说明:这是一个运维实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

image.png

image.png

项目背景

在工作中需要每天定时进行交换机运行状况的巡检,每天都是重复这样的工作,而且每天手动巡检花费很大的时间和精力。说明:这是给一个客户开发的交换机自动化巡检项目。

需求分析

需求一

批量输入交换机IP地址:

设备名

IP

shebei001

ip1

shebei002

ip2

shebei003

ip3

说明:此处IP数量不限制。

依次输入用户名yonghu密码pw123输入命令enable、configdiagnose

先执行 clear statistics emac 0//槽位号 端口号”,然后执行命令display statistics emac 0/槽位号 端口号”,槽位号1-15端口号0-7输出结果中读取Received line code error frames后的数值,例如1槽从0/1 0执行到0/1 7

image.png

当执行结果为Failure: The port of this type does not support this operation或者Failure: This board does not exist时该槽位不采集执行下一槽位每台设备读取两次,两次间隔1分钟,计算前后两次各个端口的差值最后输出差值大于0的端口,输出xls表如下

IP

端口

误码增长

ip1

0/1/0

111

ip2

0/2/3

222

ip3

0/3/1

333

需求二

目标:查每个端口下用户的光衰,统计出光衰最大和最小。  

批量输入交换机IP地址:

设备名

IP

shebei001

ip1

shebei002

ip2

shebei003

ip3

说明:此处IP数量不限制。

依次输入用户名yonghu密码pw123输入命令enable、configdiagnose

执行命令interface epon 0/1 这里0/后面跟槽位,1-15

display ont optical-info 0 all 这条命令,端口是0-7

输出结果 统计OLT Rx ONT power(dBm) 这一列

输出如下:

image.png

需求三

针对需求一和需求二输出的结果进行合并,合并到一个excel文件中。合并规则:以需求一输出的结果为基准,把需求二输出的结果合并到需求一结果中,缺失值用0填充。最终输出结果如下:

image.png

说明:此项目的IP地址均为模拟的IP,非真实IP地址,数据也均为去除敏感信息后的数据。

此项目难点:

1) 解决巡检命令输出结果超出缓冲区的问题,把巡检命令所有的日志都保存下来;

2) 通过正则表达式实现了不同类型交换机各种输出日志格式的判断以及实现了最后统一的输出。


# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1NpueUKv9Vg61BQSVpzcxkg 
提取码:kv12
相关文章
|
7天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
19 5
|
6天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
18 2
|
8天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
21 3
|
14天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
15天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
17天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
20天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
62 5
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0

热门文章

最新文章