随着互联网技术的发展,Linux运维工程师的需求量也在大增。Linux作为一个全能的操作系统,想彻底搞明白操作系统的方方面面是不太可能的事情,短时间内更是不太现实的。本文针对Linux运维工程师总结了前期必须掌握的内容,大家可以有针对性的学习和练习,争取早日成为一名优秀的运维工程师。
Linux操作系统基础知识
作为Linux运维工程师,操作系统的基础知识自然是最为基础的。操作系统主要负责对存储(磁盘管理、文件管理等)、计算(进程状态等)和网络资源(网卡配置,IP配置,流量监控等)的管理和调度,因此对于运维工程师来说最重要的也是学会这几方面的工具。这些工具分为配置管理和监控查询等类型。
当然,市面上这方面的图书也是非常多,大家反响比较好的有两本书,一本书是《鸟哥的Linux私房菜》系列,另外一本是《UNIX/Linux系统管理技术手册(第四版)》。鸟哥的这本书建议先阅读基础版的,里面内容很基础,讲解的也很详细。
《UNIX/Linux系统管理技术手册(第四版)》则是一本非常全面的技术手册,可以当作工具书来用。其中不仅仅介绍了Linux的操作系,主流类UNIX的配置管理都有介绍,非常适合运维人员使用。毕竟很多数据中心不仅仅是Linux,还有很多UNIX系统。
网络服务
涉及运维的企业大多是对外提供服务的企业,以互联网公司居多。自然网络服务是其最主要的服务之一了。在Linux操作系统上网络服务的类型很多,大致上有Web服务、共享文件服务和邮件服务等几类。当然这只是常见的几类,其实还要多得多。
以Web服务为例,通常LAMP和LNMP是必须要熟练掌握的。这里LAMP是一系列软件的缩写,分别是Linux、Apache、MySQL和PHP。而LNMP中的N是Nginx的缩写。对于运维人员来说,主要是Apache和Nginx的安装、配置和故障诊断修复。
当然,这里举了一个具体的例子。由于Linux的网络服务非常之多,具体还要根据自己从事的工作进行选择。具体可以参考鸟哥私房菜的服务器架设篇。
Shell脚本
Linux最大的特点是基于Linux命令行终端实现对操作系统的控制。这种方式虽然入门门槛较高,但是却大大提升了效率。Linux命令行终端最大的特点是可以支持自动化处理,也就是通过Shell脚本实现命令的批处理。
我们在日常运维的过程中经常需要执行一些命令,而且很多时候是一系列的,例行的命令。这时就用到Shell脚本了。比如我们要监控系统CPU的使用情况,并且定时地记录在一个文本文件中,此时脚本就派上用场了。作为运维工程师,Shell脚本是必学的内容。
正则表达式与文本处理
运维工程师最常见的工作可能就是分析日志和调整配置文件了。而这些文件都是文本文件,因此学习文本文件的处理是非常必要的。比如我们要在海量日志中检索某个关键字符串,或者减少日志中某个时间段的日志等等。
对于文本文件分析常用的命令包括grep、sort、sed和awk等。其中sed和awk的功能尤其强大,可以借助正则表达式对文本进行复杂的处理。因此在学习这些工具使用的情况下,还需要对正则表达式有所了解。对于正则表达式,本文推荐OReilly的《精通正则表达式》一书。
学习正则表达式不是一蹴而就的,需要在实践中不断学习。
监控工具
监控工具是运维工程师必须掌握的工具,开源的工具很多,比如cacti,nagios和zibbix等。很多大型的互联网公司都有自己开发的监控系统,这就另当别论了。
为什么要学习监控工具,因为对于大规模Web服务,我们不可能坐等问题发生,甚至问题发生了都不知道。而是需要在出现问题的时候进行告警,或者是做到预警,最好能做到在客户感知问题之前已经将问题解决。监控工具就是起到这个作用的,它将问题通过短信或者邮件的方式及时的告知运维人员,以便修复问题。
集群高可用
对于关键业务通常要做到7*24小时不中断,也就是高可用。以某东和某宝为例,如果出现一分钟的业务中断,估计要损失数百万,甚至数千万了。因此对于关键业务必须通过服务器集群的方式保证其高可用。
高可用在Linux操作系统中也有很多开源软件,很多公司也使用这些软件。比如用户负载均衡的LVS和Nginx,用户高可用的Linux-HA和KeepAlive等,还有数据库主备软件等等。这些软件不一定要精通,但原理一定要清楚。
数据备份与恢复
数据就是企业的生命,如果一个企业出现丢失数据的情况,那么这个公司离倒闭也就不远了。因此,对于运维人员来说,学习数据备份和恢复也是不可或缺的。
关于数据备份方面有很多商业的软件,本文不再赘述。在Linux操作系统中其实也有很多备份的软件。比如网络存储NFS,它可以作为数据的集中备份服务器,实现业务服务数据的备份;rsync工具,可以实现数据的差量备份等等。
今天本号总结了Linux运维必须要知道的Linux相关技术和知识点,这里仅是抛砖引玉,希望对刚入门的运维工程师有所帮助。另外,为了大家能够深入地学习,本文推荐了基本不错的图书。相信大家通过不断的学习和实践,一定能够成为一名优秀的运维工程师。