隨著Internet技術(shù)的發(fā)展,對Linux操作和維護工程師的需求已大大增加。 作為通用操作系統(tǒng),Linux無法完全理解操作系統(tǒng)的所有方面,并且在短時間內(nèi)是不現(xiàn)實的。 本文總結(jié)了Linux操作和維護工程師在早期階段必須掌握的內(nèi)容。 您可以有目的地學習和練習,并努力盡快成為一名出色的運維工程師。
Linux操作系統(tǒng)基礎(chǔ)知識
作為Linux運維工程師,操作系統(tǒng)的基礎(chǔ)知識自然是最為基礎(chǔ)的。操作系統(tǒng)主要負責對存儲(磁盤管理、文件管理等)、計算(進程狀態(tài)等)和網(wǎng)絡(luò)資源(網(wǎng)卡配置,IP配置,流量監(jiān)控等)的管理和調(diào)度,因此對于運維工程師來說最重要的也是學會這幾方面的工具。這些工具分為配置管理和監(jiān)控查詢等類型。
當然,市面上這方面的圖書也是非常多,大家反響比較好的有兩本書,一本書是《鳥哥的Linux私房菜》系列,另外一本是《UNIX/Linux系統(tǒng)管理技術(shù)手冊(第四版)》。鳥哥的這本書建議先閱讀基礎(chǔ)版的,里面內(nèi)容很基礎(chǔ),講解的也很詳細。
《UNIX/Linux系統(tǒng)管理技術(shù)手冊(第四版)》則是一本非常全面的技術(shù)手冊,可以當作工具書來用。其中不僅僅介紹了Linux的操作系, 主流類UNIX的配置管理都有介紹,非常適合運維人員使用。畢竟很多數(shù)據(jù)中心不僅僅是Linux,還有很多UNIX系統(tǒng)。
網(wǎng)絡(luò)服務(wù)
涉及運維的企業(yè)大多是對外提供服務(wù)的企業(yè),以互聯(lián)網(wǎng)公司居多。自然網(wǎng)絡(luò)服務(wù)是其最主要的服務(wù)之一了。在Linux操作系統(tǒng)上網(wǎng)絡(luò)服務(wù)的類型很多,大致上有Web服務(wù)、共享文件服務(wù)和郵件服務(wù)等幾類。當然這只是常見的幾類,其實還要多得多。
以Web服務(wù)為例,通常LAMP和LNMP是必須要熟練掌握的。這里LAMP是一系列軟件的縮寫,分別是Linux、Apache、MySQL和PHP。而LNMP中的N是Nginx的縮寫。對于運維人員來說,主要是Apache和Nginx的安裝、配置和故障診斷修復(fù)。
當然,這里舉了一個具體的例子。由于Linux的網(wǎng)絡(luò)服務(wù)非常之多,具體還要根據(jù)自己從事的工作進行選擇。具體可以參考鳥哥私房菜的服務(wù)器架設(shè)篇。
Shell腳本
Linux最大的特點是基于Linux命令行終端實現(xiàn)對操作系統(tǒng)的控制。這種方式雖然入門門檻較高,但是卻大大提升了效率。Linux命令行終端最大的特點是可以支持自動化處理,也就是通過Shell腳本實現(xiàn)命令的批處理。
我們在日常運維的過程中經(jīng)常需要執(zhí)行一些命令,而且很多時候是一系列的,例行的命令。這時就用到Shell腳本了。比如我們要監(jiān)控系統(tǒng)CPU的使用情況,并且定時地記錄在一個文本文件中,此時腳本就派上用場了。作為運維工程師,Shell腳本是必學的內(nèi)容。
正則表達式與文本處理
運維工程師最常見的工作可能就是分析日志和調(diào)整配置文件了。而這些文件都是文本文件,因此學習文本文件的處理是非常必要的。比如我們要在海量日志中檢索某個關(guān)鍵字符串,或者減少日志中某個時間段的日志等等。
對于文本文件分析常用的命令包括grep、sort、sed和awk等。其中sed和awk的功能尤其強大,可以借助正則表達式對文本進行復(fù)雜的處理。因此在學習這些工具使用的情況下,還需要對正則表達式有所了解。對于正則表達式,本文推薦OReilly的《精通正則表達式》一書。
學習正則表達式不是一蹴而就的,需要在實踐中不斷學習。
監(jiān)控工具
監(jiān)控工具是運維工程師必須掌握的工具,開源的工具很多,比如cacti,nagios和zibbix等。很多大型的互聯(lián)網(wǎng)公司都有自己開發(fā)的監(jiān)控系統(tǒng),這就另當別論了。
為什么要學習監(jiān)控工具,因為對于大規(guī)模Web服務(wù),我們不可能坐等問題發(fā)生,甚至問題發(fā)生了都不知道。而是需要在出現(xiàn)問題的時候進行告警,或者是做到預(yù)警,最好能做到在客戶感知問題之前已經(jīng)將問題解決。監(jiān)控工具就是起到這個作用的,它將問題通過短信或者郵件的方式及時的告知運維人員,以便修復(fù)問題。
集群高可用
對于關(guān)鍵業(yè)務(wù)通常要做到7*24小時不中斷,也就是高可用。以某東和某寶為例,如果出現(xiàn)一分鐘的業(yè)務(wù)中斷,估計要損失數(shù)百萬,甚至數(shù)千萬了。因此對于關(guān)鍵業(yè)務(wù)必須通過服務(wù)器集群的方式保證其高可用。
高可用在Linux操作系統(tǒng)中也有很多開源軟件,很多公司也使用這些軟件。比如用戶負載均衡的LVS和Nginx,用戶高可用的Linux-HA和KeepAlive等,還有數(shù)據(jù)庫主備軟件等等。這些軟件不一定要精通,但原理一定要清楚。
數(shù)據(jù)備份與恢復(fù)
數(shù)據(jù)就是企業(yè)的生命,如果一個企業(yè)出現(xiàn)丟失數(shù)據(jù)的情況,那么這個公司離倒閉也就不遠了。因此,對于運維人員來說,學習數(shù)據(jù)備份和恢復(fù)也是不可或缺的。
關(guān)于數(shù)據(jù)備份方面有很多商業(yè)的軟件,本文不再贅述。在Linux操作系統(tǒng)中其實也有很多備份的軟件。比如網(wǎng)絡(luò)存儲NFS,它可以作為數(shù)據(jù)的集中備份服務(wù)器,實現(xiàn)業(yè)務(wù)服務(wù)數(shù)據(jù)的備份;rsync工具,可以實現(xiàn)數(shù)據(jù)的差量備份等等。
今天本號總結(jié)了Linux運維必須要知道的Linux相關(guān)技術(shù)和知識點,這里僅是拋磚引玉,希望對剛?cè)腴T的運維工程師有所幫助。另外,為了大家能夠深入地學習,本文推薦了基本不錯的圖書。相信大家通過不斷的學習和實踐,一定能夠成為一名優(yōu)秀的運維工程師。