高效运维工具 Python
Posted 上海逐鹿信息
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高效运维工具 Python相关的知识,希望对你有一定的参考价值。
对 Python 的了解首先是从运维工具开始的,2017年随着 AlphaGo (用Python 开发)的名声大噪,让 Python 在人工智能方面的应用也为大家知晓。
运维与开发语言
随着数据中心规模日益扩大和复杂,运维工程师如果能掌握一门开发语言无疑将显著提升管理自动化能力和效率。
目前,构建复杂的自动化任务还得是要用专门的开发语言,现有的开源软件如 puppet\saltstack\zabbix\nagios 等很多软件,但这些都是独立的系统软件,二次开发需要开发部门的配合,但开发部门不懂运维的实际业务逻辑,工作最后还得交给运维开发人员来做。
高效开发工具 Python
PYTHON 能满足绝大部分自动化运维的需求,又能做后端 C/S 架构,又能用 WEB 框架快速开发出高大上的 WEB 界面,还能做机器学习,如果运维人员有能力做出一套运维自动化系统的时候,其价值无疑将显著体现出来。
Python 运维应用案例
第一、静态文件服务器
重点练习使用redux管理状态。前端api与后端交互、数据封装、状态变化等。
第二、Python开发jumpserver跳板机
jumpserver跳板机是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
特点:
完全开源,GPL授权,Python编写,Django开发框架,容易再次开发
实现了跳板机基本功能:
认证、授权、审计。集成了Ansible、批量命令等。功能强大。
通俗点就是起到监控谁在服务器上做了什么操作等。录像回放、命令搜索、实时监控、批量上传下载等。
第三:Python开发的Magedu分布式监控系统
以自动化运维视角为出发点,自动化功能、监控告警、性能调优,结合saltstack实现自动化配置管理等内容进行了全方位的深入剖析。
企业主要用于解决:
自动化监控常用系统服务、应用、网络设备等。分布式可监控更多服务器,分区域监控再汇总。Zabbix监控结合Python自定义监控脚本。
第四:Python开发的Magedu的CMDB
企业主要用于解决:
项目功能,采集硬件数据、Api、页面管理。统计资产,例如服务器存放位置,服务器上的账号等等。
cmdb的开发需要包含三部分功能:
采集硬件数据、API、页面管理。执行服务的过程如下:
服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示。
第五:Python开发的任务调度系统
Python任务调度系统的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。
企业主要用于解决:批量管理crontab定时任务。原理用户通过web页面设置任务,传输到任务调度系统服务器上的客户端,客户端收集数据反馈给服务器端,服务器端根据任务具体内容调度后端的集群服务器做定时任务。
一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模块来实现一个简单的作业调度系统。
第六:Python运维流程系统
使用python语言编写的调度和监控工作流的平台内部用来创建、监控和调整数据管道。任何工作流都可以在这个使用Python来编写的平台上运行。
企业主要用于解决:通俗点说就是规范运维的操作,加入审批,一步一步操作的概念。
这个平台拥有和 Hive、Presto、mysql、HDFS、Postgres和S3交互的能力,并且提供了钩子使得系统拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于Web的用户界面让您可以可视化管道的依赖关系、监控进度、触发任务等。
以上是关于高效运维工具 Python的主要内容,如果未能解决你的问题,请参考以下文章