Python在网络运维中的应用
2018-11-01宋焱宏
宋焱宏
摘要:在现代移动互联及大数据时代中,不管是对于效率的喜爱或者是实现大量規模运营,自动化运营搜属于企业的主要选择。Python具备灵活、简单、强大功能及满足脚本处理的优势,所以被广泛应用到运维领域中,在网络运维过程中使用Python,能够使网络运维工作效率得到提高。基于此,本文就对Python在网络运维过程中的使用进行分析。
关键词:Python;网络;运行维护
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)19-0033-03
传统企业信息化系统的运维方法主要是根据人力检查,并且以自身实际工作经验判断设备运行的情况,导致在检查过程中出现相应的误差。在现代大数据时代逐渐到来的背景下,网络环境也越来越复杂,服务器数量不断增加,人力已经无法满足信息系统的运维需求,并且已经开始利用自动化实现运行维护。在技术不断发展的过程中,Python在企业网络运维工作过程中使用,能够使运维效率得到提高,并且降低成本。
1 Python的概念
Python属于面向对象、动态数据类型及解释型的高级程序设计语言,其能够提供简单的帮助文档,并且简单易学,而且免费。Python是在1989年被研发,主要特点就是具有较高的开发效率、较快的运行速度,并且还具有跨平台的特点。其次,其还具有大量的第三方模块支持,比如大量的优秀运维组件。另外,Python还具备脚本语言特点,并且将其在实际工作过程中使用。Python语言所编写的代码能够到多种平台中运行,其中的学习资源较多,社区学习较为活跃,便于运维人员的快速学习,能够将其使用到实际工作过程中。但是Python在使用过程中还具有一定的问题,比如在编写代码的过程中无法使程序连写一行,可以供选择的开发框架选择较多【1】。
2 Python在网络运维过程中的使用
企业的传统网络运维主要包括创建呼叫中心、运维团队,并且实现系统运行监控等,在现代物联网、云时代不断到来的过程中,企业的业务量也在不断增加,业务范围不断地扩大,不管是企业信息系统数据或者是服务器规模,都在不断地扩大。传统网络运维已经无法满足企业的实际需求,比如维护量不断地增加,团队人员不断扩张,系统软件、硬件在不断增加,不同类型管理平台不能够统一进行管理,只是根据少量的人员或者指定的系统管理平台实现基本的运维工作较为困难。为了能够有效节约运维成本,使运维效率得到提高,就要实现网络运维的自动化。Python语言能够有效满足运维工作需求的标配语言,其中的编程语言高效,并且简单明了,并且运维模块组件丰富。使用Python语言能够实现运维体系的有效整合,实现运维常用工具的二次开发,能够形成完成运维体系,使系统能够实现自动安装、监控、配置及报警等【2】。
2.1 系统安全的保护
对于现代企业来说,企业信息安全性影响着企业发展,如果出现企业信息泄露,就会导致企业出现灾难性后果,信息安全主要通过人员、系统和设备三方面的安全构成。其中的系统安全主要是利用Python和第三方安全软件结合,实现端口的安全扫描,对系统进行病毒扫描等,从而对系统的安全性进行保证。对设备及人身两方面安全来说,就是利用Python实现自动化的监控,实现设备可能会出现的问题警报,使运维人员能够及时维护,避免因为设备故障导致出现安全事故,从而对设备及人身安全进行有效保障。
2.2 数据报表
在现代网络信息技术和科学技术不断发展的过程中,增加了信息量,并且也提高了企业信息运维工作难度。在企业网络运维过程中使用Python,能够有效整理并且分析企业的日常运维工作数据信息,使运维工作效率得到有效的提高。比如,企业信息自动化运维工作过程中的监控数据、运行数据和报警数据,利用Python中的RRDtool数据表等整理系统数据并且对其进行分析【3】。
2.3 自动化运维
在市场经济不断发展的过程中,各个企业的竞争不断激烈,为了使企业市场竞争力得到有效的提高,各个企业中的业务量也在不断扩展,从而使企业社会效益及经济效益得到提高。企业在实现业务拓展的过程中,也增加了企业信息数据量,业务信息结构也不断复杂化,只是添加设备和人力,无法满足现代企业发展的需求。所以,就要促进企业信息系统的自动化运维发展的速度,从而提高信息系统的快速化、综合化及自动化反应过程中的问题,并且对其进行及时的修复,利用Python中的丰富库实现安全、高效自动化的运维模式,使运维人员工作质量及效率得到提高【4】。
2.4 使用大数据
在现代大数据背景下,企业要求收集大量的数据。但是实现对企业有益数据的快速收集属于现代企业面临的主要问题。通过长期研究表示,可以创建将Hadoop作为平台,将MapReduce作为计算模型,之后利用Python实现编程的方式,提取数据中的信息,从而有效促进企业的持续发展。
3 Python在网络运维中的使用流程
3.1 收集维护台账
利用Python编写的程序对终端、网络、主机、数据库及中间件等设备的台账信息进行收集,主要包括软件安装的情况、服务端口的开放情况、安装补丁的情况、软件漏洞的情况等,从而能够形成统一化设备安装的运行状态库【5】。图1为Python使用的流程图。
3.2 安全审计规则的维护
实现维护安全规则的自定义,主要包括以相关系统漏洞、软件漏洞的维护漏洞为主的安全规则;维护必须将端口安全规则关闭;维护必须将服务安全规则关闭;维护必须将补丁安装的安全规则。
3.3 设备的安全性分析
工具要以审计规则分析设备的安全运行状态库,寻找违规设备,之后形成设备的安全性分析报告【6】。
3.4 软件和补丁的安装情况
软件和补丁的安装情况表示最近一段时间系统中的软件、补丁安装列表及开关机的记录、网络连接的情况及进程的开关情况能够充分展现出来。
其一,Python能够扫描网络和终端端口,监控设备端口。实现多线程扫描,还能够实现单一指定主机的扫描,对制定网段中主机实现逐一的扫描。能够对指定端口或者端口段中的端口实现逐一扫描,扫描的结果通过列表方式充分地展现出来。图2为服务端口的情况。
其二,综合使用静态及动态的检测技术检测的特点,基于程序源代码的分析及目标程序运行状态的检测实现,实现动态检测规则及规则库的综合使用,以程序动态状态的检测结果及目标程序源代码的静态分析结果排查程序过程中的安全隐患。
其三,利用Python扫描中间件及数据库,分析扫描结果,从而观察中间件或者数据库中是否存在漏洞。
其四,以长期所存储的历史日志分析已经发生的日志事件,并且对其进行取证分析,评估其导致的影响,以此形成报表,并且全面分析最新发布的安全漏洞攻击代码,比如日志驱动漏洞挖掘、web攻击检测等【7】。
4 Python的实际使用
在实施某学校档案室网络预警项目的过程中,实验室网络研究中心具有选择网络站点并且安装等工作。在具体实施过程中,将Linux操作系统作为中心,使用Earthworm技术创建简单的处理平台。为了能够实现系统运行状态的监控,降低值班人员的工作量,使用Python语言编写系统运行状态监控及运维信息发布程序。
4.1 输出模型的创建
Python脚本语言属于免费的软件编程语言,其在设计过程中重视代码的可读性,所以Python语法较为清晰。本文中的方法都记录到地理处理器模型中,所以Python对终端用户使用过程中较为简单。在创建Python脚本的过程中,主要包括两种方式,第一种方式为将建模工作中的模型输出Python脚本,第二种为直接在集成开发环境中实现脚本的创建。在模型创建过程中,Python的优势比模型要多,比如决策、循环此种基础程序结构。另外,还能够在用户窗口中添加通知消息,实现数据的批量处理。简单来说,输出的信息中能够标注重点信息【8】。
图3为Python导出脚本模型,Python程序能够实现自动输出,实现时间和程序调用接口、简单注释的导出,Arcpy主要包括全部地理处理方法程序库。之后,自动化输出创建代码,从而使脚本实现参数的输出。最后,实现地理数据处理参数及方法的添加,参数表示为:
Arcpy.SmoothPoygon_cartography()
其主要优势就是脚本包括所有的函数,其能够作為其他的Python扩展基础。
4.2 集成开发环境脚本的创建
在集成开发环境中实现脚本的编写,集成开发环境的主要优势就是语法突显,自动化的执行命令,调和调试和智能缩近的功能。局部脚本结果在集成开发环境互动窗口中展现,Python属于脚本集成开发环境中的另外例子。在地理编辑器中的某部分方法只能够利用脚本实现,比如列举法。Python的列举法返回全部文件名,并且到硬盘目录中集成,此方面为到开发环境脚本编写的集成【9】。
4.3 数据文件的扫描
在企业设备运行过程中,经常会产生大量的数据,但是要对事件进行处理只需要几秒钟,我们需要观察哪些台站是能够使用的,或者要知道在此段时间中网络的运行情况。Python具有obspy脚本,其文件头能够实现数据文件格式的检查,利用计算使用红色竖线进行绘制并且标记,将小叉作为数据的起始点,将全部数据文件有效性充分地展现出来。此脚本工具能够对一千多个文件的一次性扫描,并且还能够自动绘制数据相应的年月,也能够将需要的绘制结果方法。比如,以下为简单指令,其能够实现数据文件的扫描:
4.4 绘制黑客入侵波形
通过某此学校档案室管理网络被黑客入侵事件为例,其中的128个简易的入侵数据记录实现简单排列分布:
在列表中实现入侵信息的查询,对入侵时间进行计算,黑客入侵的排列分布图;
之后编写代码:
4.5 Python脚本的运行
本文所研究的运维脚本程序能够到工具箱中添加,从而形成用户需要的工具集,对工具名称根据需求进行定义。一个工具箱主要包括多个模型和脚本。建模工具中的模型通过扩展工具模型到自定义工具箱各种存储。Python作为PY文件单独存储,工具箱能够利用链接路径将其相互连接。图5为自定义工具箱,将自定义之后的Python脚本程序到系统工具箱中添加。
之后,用户在工具箱中添加数据处理程序设置工具参数,如果用户需要,其在使用工具的过程中能够快速掌握工具属性和参数,从而掌握不同参数值域。
通过使用分析表示,利用Python语言及扩展包,能够使预警系统项目的开发效率得到有效的提高,并且使计算机编程语言的学习时间得到降低,并且还能够使数据处理的工作效率得到提高,对图形可视化的结果进行丰富,使用前景较广,也是非常值得学习及使用的高级计算机语言【10】。
5 结束语
在现代大数据及移动互联的时代中,不管是追求效率,或者针对大量规模运维要求,自动化的运维都是现代企业的主要选择。Python灵活、简单,并且具有较为强大的功能,而且还能够满足脚本处理等多重优势,所以被广泛应用到运维领域中。在实际工作过程中,企业能够以自身实际需求开发满足企业自动化运维及高效的工具,从而使企业的信息化水平得到有效的提高。
参考文献:
[1] 范文星.基于Django的网络运维管理系统的设计与实现[J].计算机科学,2012,39(s2):175-177.
[2] 魏金哥.浅谈PYTHON在企业信息自动化运维工作中的应用[J].科学与信息化,2017(16).
[3] 叶斌.PYTHON在企业信息自动化运维工作中的应用[J].科技与创新,2017(7):153-153.
[4] 周蓝捷,方韡,李文惠.Python用于简易烈度计系统运维[J].科技创新与应用,2017(26):151-152.
[5] 叶磊,文涛,刘立亮,等.基于python的网络及信息系统安全过程管理工具[J].数字技术与应用, 2017(10):187-188.
[6] 刘畅.Python代码风格对软件维护的影响研究[D].南京大学,2017.
[7] 郝亚超.一种基于用Python网络编程的P2P实现[J].电脑编程技巧与维护,2013(14):66-68.
[8] 刘天斯.Python自动化运维:技术与最佳实践:technique and best practices[M].北京:机械工业出版社,2014.
[9] 马超,冯世杰,王国仕.Linux系统自动化运维管理平台实现及应用[J].通讯世界,2015(13):119-119.
[10] 苏鹏.基于PYTHON的大型医疗设备成本效益分析软件的开发[D].上海交通大学,2013.