CentOS 7系统管理与运维实战
上QQ阅读APP看书,第一时间看更新

1.3 Linux运维工程师的技能

对运维工程师而言,需要了解的知识可以归纳为宏观和微观两个层面。宏观层面需要了解整个系统的架构,不同的服务是如何一环扣一环协同工作的;而从微观层面则需要运维工程师了解系统的每一个工作步骤。本节将试图从不同的技术层面介绍运维工程师需要的技能。

1.3.1 系统和系统服务

系统作为服务的承载,无论是在安装过程中还是在管理、维护过程中都需要一定的技能,这些技能包括:基础命令的使用、系统中的工具(例如awk、sed、日志工具等)、系统中重要配置文件等。除了这些基础技能之外,运维工程师还需要对Linux系统本身有一定的了解,以便排错及优化系统。

运维工程师做的所有工作都是为了应用系统服务能正常运行,因此这是运维工程师技能的核心部分。常见的应用系统服务有:

(1)网页服务:Apache、Nginx配合PHP无疑是Linux系统中最常用的网页服务器平台,大部分企业都会使用这两个软件搭建网站平台,因此熟悉这两种软件成了运维工程师的必备技能之一。通常需要了解这两个软件的安装、配置和优化及如何配合PHP进行工作,当然最重要的是能通过日志排除故障。

(2)数据库:与网页服务器协同运行的通常还有数据库,虽然Linux能使用的数据库有很多,例如MySQL、PostgreSQL、Oracle等,但MySQL无疑是使用最广泛的数据库软件。因此需要熟练地安装MySQL,并能熟练地在MySQL数据库中查询、插入、修改、删除数据。

(3)脚本语言:随着自动化运维的普及,运维工程师会接触到大量的脚本。接触最多的当属Bash Shell脚本,这类脚本普遍存在于Linux系统中,因此必须掌握这类脚本。除此之外,Python和Perl也是运维中经常使用的语言,但这二者通常只需要熟练地使用一种即可。

(4)文件服务:文件服务通常是FTP和Samba,目前仍有不少企业仍在使用这类服务,因此需要熟练使用。

除以上列举的常见应用系统服务之外,还有一些服务,例如DNS、邮件服务等,这些服务也有不少应用,此处不再一一列举。

1.3.2 网络知识

网络承载着所有的网络服务,是运维工作的基础所在。目前大部分企业中通常会有专职人员管理网络,因此Linux运维工程师通常无须处理与网络有关的事情。但也有一些小型企业没有专门的网络管理员,这时就需要运维工程师自己亲手建立网络或在已有网络上进行扩展。

由于Linux中的系统服务与网络息息相关,因此无论所在企业是否有专职网络管理人员,运维工程师都须要具备一定的网络知识,以便发生故障时判断问题出在哪儿。网络知识可以概括为以下几个部分:

(1)网络基础知识部分:包括IP地址与子网、路由等。无论企业是否有专职网络管理人员,操作系统的网络环境都要运维工程师设置,因此这部分知识必须要掌握。

(2)网络结构知识部分:包括VLAN、交换机与路由器配置、网络拓扑等。运维工程师至少应该了解这些知识,以便准确判断故障发生于何处。

(3)TCP和UDP协议、防火墙:在运维工作中这些知识必不可少,例如优化系统、防止攻击、配置防火墙等都需要这些知识。

网络知识远不止以上列举的这些,但对于运维工程师而言,不必完全掌握,有时只需要了解对端设备类型、特性就可以完成大部工作。