Linux 系统运维自动化概述

简介:

大纲

一、运维自动化背景

二、运维自动化发展阶段

三、运维自动化体系架构

四、运维自动化常用工具

五、运维自动化对运维人员要求

注,最近在学习运维自动化相关专题,现在总结一下与大家分享一下。(如有雷同,纯属意外


一、运维自动化背景

1.问题引入

近期一网站业务需要上线,预计短时间内会有几百台服务器要上线, 部署几百台服务器, 以运维部目前有限的人手, 根本不够。怎么办?解决方案:采取自动化安装、配置及监控的方案(运维自动化)。


2.官方解释

何谓运维自动化,即在最少的人工干预下,利用脚本与第三方工具,保证业务系统7*24小时高效稳定运行。


3.高端、大气、上档次

运维自动化是指搂着妹子、喝着Coffee、看着显示器、点点鼠标。(运维的终极目标啊,不解释,你懂得。哈哈^_^……)


二、运维自动化发展阶段

1.苦B阶段(纯手工)

依靠纯手工,重复的进行软件的部署与运维;


2.给力阶段(脚本+文档)

通过编写脚本,方便的进行软件的部署与运维;

  • 硬件状态监控:通过编写脚本,对CPU、内存、磁盘、进程、网络等关键硬件参数状态进行实时监控,发现异常触发报警(发送短信或邮件)信息给管理员;

  • 业务监控:通过编写脚本对常用业务的网站实时进行监控,发现网站页面异常触发报警信息给管理员;

  • 系统安全加固:通过编写脚本对常用的Windows、Linux、Unix服务器进行快速的安全加固;

  • 补丁更新:通过编写脚本实现应用及操作系统补丁的快速更新;

  • 数据备份:通过编写脚本实现关键业务数据、关键日志、数据库、操作系统、中间件等的快速备份(本地与异地);

  • 过期日志清理:通过编写脚本实现过期日志清理;

  • ……


3.高富帅阶段(自动化运维工具)

借助第三方工具,高效的进行软件的部署与运维;

我在选择对于百万量级、千万量级的网站尤其会考虑选择成熟的工具、性能高的工具、熟悉的工具、第三方工具。而对于小规模的网站,则会考虑选择一些开源的、免费的工具。这个原则就是以应用为导向,百万量级、千万量级的网站牵涉的面广、要求高,不成熟的工具往往很难说服我使用,所以主要是在成熟度方面。


4.阶段对比

各个阶段 运维规模(/台) 运维效率 技能要求
纯手工 小于50 一般
脚本与文档 50-100 一般
运维工具(第三方工具) 100-500 一般
脚本+运维工具 大于500 最高


三、运维自动化体系架构

一个完善的运维自动化体系包括,系统预备、配置管理以及监控报警3个功能模块 :

1. 系统预备

  • 自动化安装操作系统及常用软件包

  • 自动化安装与升级系统补丁

  • 自动化升级相关软件

  • ……


2. 配置管理

  • 自动化部署业务系统软件包并完成配置

  • 远程管理服务器(开关服务等 )

  • 变更回滚……


3. 监控报警

  • 服务器可用性、性能状态、安全监控

  • 向管理员发送报警信息等

  • ……


四、运维自动化常用工具

根据提供的功能不同,运维自动化工具也可以分为以下3类,如下表所示:

运维工具

1. 预备类工具

预备类工具可以使 Linux 操作系统及软件安装自动化。它们借助服务器上的软件包系统比如 rpm 或者 apt 来安装软件包,甚至会做一些粗略的配置工作。


2. 配置管理类工具

配置管理类工具可以自动化部署常用的应用程序,设置参数或者开启一个新服务器上的服务,也可以用来把对操作系统及业务支撑系统的变更管理回滚到上一版本。


3. 监控报警类工具

监控工具用来收集服务器数据,从而生成可用性、性能和其它系统状态的报告。可用性监控可以第一时间向运维人员发送业务不可用的警告,以便第一时间 处理,减少业务中断时间。

红帽资助的 Genome 项目是将预备类、配置管理类集成到一起的框架,如 下图所示:

运维工具2


4.常用自动化运维工具对比选型

(1).预备类工具

  • Kickstart 供 Anaconda 读取的无人值守安装配置脚本, 自动化安装配置过程繁琐

  • Cobbler 一个集成工具,集成了 PXE、DHCP、DNS 和 Kickstart 服务管理和 yum 仓库管理,简化了运 维工程师工作量 (常用)

(2).集中化配置管理类

chef 工具

  • 需要用户熟悉 ruby 语言,入门门槛高,管 理模块开发周期长

  • 资源脚本从前向后执行,维护调试繁琐

  • chef 在配置中心服务器端需要依赖软件比 较多,需要 couchdb、RabbitMQ、Solr、java 和 erlang,配置过程复杂繁琐

  • chef 的配置管理文件放在 couchdb 和 solr 索引等二进制文件中,通过远程命令工具 knife 来操作这些配置,维护不方便

  • chef 的用户群少,出了问题不方便排查

puppet 工具 (常用)

  • puppet 自有的配置语言较为高级,入门简单,管理模块开发周期短

  • puppet 资源之间有显式的依赖关系,与这 些资源在配置文件的位置或前后没有关系

  • puppet 安装简单,需要的支持软件也少, 配置过程十分简单

  • puppe 的配置管理文件为 puppet 语言描述 的文本文件,易于发布、备份和扩展

  • puppet 的用户很多,Google、Redhat 等大公司都在使用,可以借鉴成熟的经验

cfengine 工具

  • 老牌的配置管理工具,功能强大,但语法 晦涩,学习、维护成本高

Puppet + Func 工具

  • 新兴的配置管理工具,语法简单,易于学 习、维护,但远程执行命令 Exec 资源只能返回成功与否,执行过程无法跟踪查看, 需要和简单易用的 Linux 集群管理工具 Func 配合使用

(3).监控类工具

监控类工具中有 Zabbix、Nagois 和 Cacti 等工具,Zabbix 和 Nagois+cacti 组合都是很优秀的 工具,鉴于 Zabbix 参考资料相对较少,选择了常用的 Nagois+Cacti 组合。


五、运维自动化对运维人员要求

1.事前预警

在故障出现之前,管理人员应该能在任何时间,任何地点接收到告警信息,并及时处理问题,把故障隐患扼杀在摇篮中。(强大的监控与报警机制)


2.事中恢复

即使是再完美的运维方案,也可能有预料之外的故障。为保证在最短时间内恢复业务,关键数据不因故障丢失,我们需要有完整备份方案来应对自如。(强大的备份与恢复机制)


3.事后存档

这里更加强调运维管理的方法,针对处理过的故障,应该记录在案,在处理过程当中运用过的处理技术,处理方案,应该形成经验文档,以供知识分享。(强大的FAQ机制)


要实现以上三个要求,并不是一件容易的事情。需要一个经验丰富且高效的运维团队,随着我们的业务系统不断增加,业务量的不断上升,传统依靠纯手工的运维方式,逐渐被淘汰。高效的运维自动化方案正在逐渐形成规模。(不仅大公司在部署,小公司也开始逐渐部署)












本文转自陈明乾51CTO博客,原文链接:http://blog.51cto.com/freeloda/1316317,如需转载请自行联系原作者
目录
打赏
0
0
0
0
101
分享
相关文章
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
65 24
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
38 1
Linux系统之su命令的基本使用
|
20天前
|
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
99 27
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
OWL 是基于 CAMEL-AI 框架开发的多智能体协作系统,通过智能体之间的动态交互实现高效的任务自动化,支持角色分配、任务分解和记忆功能,适用于代码生成、文档撰写、数据分析等多种场景。
674 13
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
|
23天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
99 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
122 24
Linux系统之whereis命令的基本使用
|
1月前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
123 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
25天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
71 0
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控

热门文章

最新文章