运维前线:一线运维专家的运维方法、技巧与实践导读
生活随笔
收集整理的這篇文章主要介紹了
运维前线:一线运维专家的运维方法、技巧与实践导读
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前 言 為什么要寫這本書 《運(yùn)維前線:一線運(yùn)維專家的運(yùn)維方法、技巧與實踐》(以下簡稱《運(yùn)維前線》)是前線系列的一個子集,前線系列圖書的出版理念是邀請多位業(yè)界專家,總結(jié)所在行業(yè)的最新理念或深度實踐經(jīng)驗。前線系列圖書不同于市面上的很多圖書,這類書并不系統(tǒng),有的只是一線專家的實戰(zhàn)經(jīng)驗,人們常稱之為“干貨”。一篇文章、一家公司、一個案例、一個場景,獨立成篇,在滿足碎片化閱讀的同時,也能讓讀者進(jìn)行橫向比較和深入思考。本系列圖書不強(qiáng)調(diào)大而全,追求的是每篇文章都是精品,希望能給讀者帶來深度的啟發(fā)和收獲。 按照這個理念,之前著名產(chǎn)品經(jīng)理蘭軍(筆名Blues)策劃的《產(chǎn)品前線》,出版之后大獲成功,隨之而來的《運(yùn)維前線》令我感覺到壓力巨大。《運(yùn)維前線》的出版猶如十月懷胎,中間充滿波折,好幾次我都以為要半途而廢了,最后終于得以出版,在此要特別感謝機(jī)械工業(yè)出版社華章公司著名出版人楊福川,是他的堅持和鼓勵讓我總能在迷茫中看到希望。我和福川有共同的理念,希望把《運(yùn)維前線》做成精品,如果有哪點不符合要求,那么我們寧愿耗時長一些,多打磨打磨,很慶幸能與福川一起合作。 本書共有14位作者,包含了在騰訊、YY語音、UC、京東、盛大游戲、金山西山居、獵豹移動、廣發(fā)銀行、優(yōu)維科技等多家公司工作的實踐經(jīng)驗,基本覆蓋了互聯(lián)網(wǎng)和傳統(tǒng)行業(yè)運(yùn)維的各個領(lǐng)域,估計這是迄今為止第一本由這么多資深運(yùn)維專家聯(lián)合寫成的圖書,也是第一本分享了眾多一線運(yùn)維專家親身實踐的圖書。本書的出版也充分體現(xiàn)了互聯(lián)網(wǎng)開放合作的精神。 看到本書的目錄時,我激動不已,即使書中的內(nèi)容我已經(jīng)看了好多遍,但是在回顧目錄的時候,我依然感到這是一本非常有吸引力的書,是一本每名運(yùn)維工程師都應(yīng)該案頭常備的書! 本書特色 當(dāng)前IT領(lǐng)域的概念層出不窮,云計算、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能、VR,所有的這一切都基于IT系統(tǒng),IT系統(tǒng)正在向規(guī)模更大、更復(fù)雜、更高級的方向演進(jìn),一切IT資源都掌握在運(yùn)維手里,通過運(yùn)維來操作。這個時代對運(yùn)維的要求越來越高,運(yùn)維如果稍有不慎,就會造成重大的損失,所以隨著IT系統(tǒng)的發(fā)展,運(yùn)維的重要性也越來越高。 根據(jù)量子力學(xué)理論,世界由基本粒子組成,因此世界是不連續(xù)的,這個理論在運(yùn)維知識體系的建立上同樣適用。仔細(xì)回想一下自己運(yùn)維體系的建立,就是逐個攻克和掌握知識點,再進(jìn)一步通過實踐不斷加深的過程。《運(yùn)維前線》也是這樣,其中的每一篇文章都能夠協(xié)助讀者更快地掌握一個或多個知識點,相信通過運(yùn)維前線系列的逐步出版,最終能夠覆蓋更多的運(yùn)維知識點,為讀者帶來更多的實踐經(jīng)驗和理念。 作為運(yùn)維前線系列的第一本書,本書覆蓋了運(yùn)維自動化、系統(tǒng)運(yùn)維、云及虛擬化、Web運(yùn)維、游戲運(yùn)維、DBA運(yùn)維等6個方面14個知識點,都是各位作者總結(jié)自己多年實踐經(jīng)驗的干貨,每一篇文章都很精彩,都值得讀者仔細(xì)品味。 本書作者 本書第1章“自動化運(yùn)維之深度解碼”,來自訂閱號“互聯(lián)網(wǎng)運(yùn)維雜談”的作者、優(yōu)維科技創(chuàng)始人王津銀,人稱“老王”。我在多個場合聽過“老王”的分享,有40分鐘的,也有長達(dá)3個小時的,令我驚訝的是,“老王”每次總能帶來新的東西。這篇“自動化運(yùn)維之深度解碼”也是如此,凝結(jié)了老王許多最新的見解,值得深讀。 胥峰是我在盛大游戲的前同事,從胥峰身上我學(xué)到了不少知識,比如解決問題的思路和方法,有時候碰到運(yùn)維難題,也許換一個角度就能迎刃而解。 劉宇、尹會生、陳立軍是我多年的同事。劉宇、會生已經(jīng)出版了多本運(yùn)維圖書,他們都是非常資深的運(yùn)維專家。劉宇無論演講還是文章都邏輯清晰,絲絲入扣。會生和立軍分享的都是我親眼所見的、在工作中碰到的難題及解決方法。 張觀石是歡聚時代(YY)互娛事業(yè)部業(yè)務(wù)運(yùn)維負(fù)責(zé)人,有多年的將PHP運(yùn)用到日常運(yùn)維中的經(jīng)驗。觀石將PHP用到了極致,即使不懂PHP,也可以通過本書一窺觀石在運(yùn)維方面的豐富經(jīng)驗。 馬亮有多年的游戲運(yùn)維經(jīng)驗,目前在騰訊云專注做游戲云的架構(gòu)設(shè)計,對游戲運(yùn)維有深刻的理解。 本書的作者還有冉宏元(老男孩)、余洪春(撫琴煮酒)、吳傳玉、彭華盛、蔣迪、趙旻、趙海軍。雖然我與他們未曾謀面,但是彼此都是熟悉的網(wǎng)友,他們的文章我都曾仔細(xì)拜讀并多次請教過,其中的運(yùn)維思想讓我深深折服,非常期待能有機(jī)會向他們當(dāng)面請教。 讀者對象 本書面向所有的運(yùn)維工程師,無論是資深運(yùn)維,還是剛?cè)胄械倪\(yùn)維,相信都能從本書中獲益。本書的讀者對象包括如下幾類: 系統(tǒng)運(yùn)維工程師 安全工程師 數(shù)據(jù)庫運(yùn)維工程師 業(yè)務(wù)運(yùn)維工程師 網(wǎng)絡(luò)運(yùn)維工程師 運(yùn)維系統(tǒng)開發(fā)工程師及架構(gòu)師 云計算/虛擬化運(yùn)維工程師 其他對運(yùn)維感興趣的讀者 勘誤和支持 由于作者的水平有限,編寫時間比較倉促,書中難免會出現(xiàn)一些錯誤或不準(zhǔn)確的地方,懇請讀者批評指正。如果您有更多寶貴的意見,歡迎關(guān)注我的訂閱號“云技術(shù)實踐”,然后在后臺將您的寶貴意見發(fā)送給我。本書的勘誤也會通過訂閱號進(jìn)行發(fā)布,關(guān)注訂閱號請掃描下面的二維碼:
“運(yùn)維前線”是一個系列,歡迎在平時工作中積累了實戰(zhàn)經(jīng)驗的廣大運(yùn)維工程師繼續(xù)參與“運(yùn)維前線”的寫作,帶來更多的干貨分享! 期待能夠得到你們的真摯反饋,在運(yùn)維之路上互勉共進(jìn)。 致謝 從開始構(gòu)思到《運(yùn)維前線》的出版,本書的創(chuàng)作過程猶如十月懷胎,期間也獲得了無數(shù)的支持與肯定。借此機(jī)會,向所有為此奉獻(xiàn)力量的人表示深深的感謝。 感謝參與本書寫作的14位行業(yè)專家,他們在百忙之中伏案寫作,將自己的經(jīng)驗共享給廣大讀者。能夠和你們合作,我深感榮幸,經(jīng)過將近一年時間的溝通和交流,你們的專業(yè)和執(zhí)著深深地打動了我,同時也讓我學(xué)到了不少東西。 感謝機(jī)械工業(yè)出版社華章公司的首席策劃楊福川,編輯高婧雅、孫海亮。在近一年的時間中,你們的敬業(yè)精神不斷地鼓舞著我前進(jìn),你們的鼓勵、幫助和堅持引導(dǎo)了本書的完成。 這里,我還要特別感謝七牛云。七牛云是我見過的最具技術(shù)氣質(zhì)的云服務(wù)企業(yè),肩負(fù)“幫助開發(fā)者縮短從想法到產(chǎn)品的距離”的使命,立志打造以數(shù)據(jù)為核心的場景化PaaS服務(wù)。七牛云主張技術(shù)共享并熱衷于技術(shù)的傳播,發(fā)起架構(gòu)師實踐日,推出各類創(chuàng)業(yè)扶持計劃,這些都是七牛云正在做的事。 特別致謝 本書在成書過程中,得到了一批熱心志愿者的協(xié)助,他們是陳家豪、曹學(xué)朋、鄧榮興、劉海文、李斯朗、韓海林,尤其劉海文做了大量的義務(wù)工作,在此特別感謝!
肖 力 志愿者的話 能在力哥組織的這本書中擔(dān)任助理,我感到非常榮幸。本書出自一群經(jīng)驗老到并樂于分享的運(yùn)維前輩之手,是一本案頭必備的好書。
劉海文
目 錄
推薦序 前 言 第1章 自動化運(yùn)維之深度解碼 ? 1.1 概述 ? 1.2 運(yùn)維自動化的三重境界 ? 1.3 運(yùn)維自動化的困境和價值? 1.4 運(yùn)維自動化的多維解讀
1.5 運(yùn)維自動化的方法論 ? 1.6 運(yùn)維自動化系統(tǒng)的實現(xiàn)? 1.7 運(yùn)維自動化系統(tǒng)的API參考實現(xiàn) ? 1.8 運(yùn)維自動化依賴的團(tuán)隊模型 ? 1.9 小結(jié) ? 第2章 利用Facter和Django快速構(gòu)建CMDB ? 2.1 CMDB簡介 ? 2.2 開源CMDB介紹 ? 2.3 Puppet及Facter介紹 ? 2.4 如何利用Python獲取Facts ? 2.5 使用Django快速構(gòu)建CMDB系統(tǒng) ? 2.6 高級進(jìn)階 ? 2.7 小結(jié) ? 第3章 數(shù)據(jù)中心搬遷中的x86自動化運(yùn)維 ? 3.1 數(shù)據(jù)中心搬遷準(zhǔn)備 ? 3.2 利用VMware腳本簡化虛擬化層的搬遷 ? 3.3 利用批處理與Shell腳本簡化邏輯節(jié)點的搬遷 3.4 小結(jié)? 第4章 集中配置管理工具Puppet ?88 4.1 如何同步puppet-agent端上的常用服務(wù) ?89 4.2 如何在puppet-agent端上自動安裝常用的軟件包 ?90 4.3 如何自動同步puppet-agent端的yum源 ?90 4.4 如何根據(jù)不同名字的節(jié)點機(jī)器推送不同的文件 ?92 4.5 如何根據(jù)節(jié)點機(jī)器名來選擇性地執(zhí)行Shell程序 ?95 4.6 如何快速同步puppet-server端的www目錄文件 ?97 4.7 如何利用ERB模板自動配置Apache虛擬主機(jī) ?102 4.8 如何利用ERB模板自動配置Nginx虛擬主機(jī) ?105 4.9 小結(jié) ?110 第5章 深度實踐iptables ?111 5.1 禁用連接追蹤 ?111 5.1.1 排查連接追蹤導(dǎo)致的故障 ?111 5.1.2 分析連接追蹤的原理 ?113 5.1.3 禁用連接追蹤的方法 ?114 5.1.4 確認(rèn)禁用連接追蹤的效果 ?117 5.2 慎重禁用ICMP協(xié)議 ?117 5.2.1 禁用ICMP協(xié)議導(dǎo)致的一則故障案例 ?117 5.2.2 MTU發(fā)現(xiàn)的原理 ?119 5.2.3 解決問題的方法 ?121 5.3 網(wǎng)絡(luò)地址轉(zhuǎn)換在實踐中的案例 ?121 5.3.1 源地址NAT ?121 5.3.2 目的地址NAT ?122 5.4 深入理解iptables的各種表和各種鏈 ?123 5.5 小結(jié) ?125 第6章 使用systemd管理Linux系統(tǒng)服務(wù) ?126 6.1 systemd和sysVinit之間的關(guān)系 ?126 6.1.1 sysVinit方式下系統(tǒng)的啟動 特點 ?127 6.1.2 systemd方式下系統(tǒng)的啟動 特點 ?127 6.2 systemd的原理和啟動順序 ?128 6.2.1 sysVinit的啟動順序 ?128 6.2.2 systemd的啟動順序 ?130 6.3 systemd的進(jìn)程控制命令 ?135 6.3.1 systemctl命令 ?136 6.3.2 hostnamectl命令 ?136 6.3.3 localectl命令 ?137 6.3.4 loginctl命令 ?137 6.3.5 timedatectl命令 ?138 6.4 systemd服務(wù)管理 ?138 6.4.1 編寫Nginx的sysVinit啟動腳本 ?138 6.4.2 編寫Nginx的systemd啟動腳本 ?140 6.4.3 systemd的其他功能 ?142 6.5 優(yōu)化 ?146 6.5.1 使用systemd-analyze優(yōu)化啟動時間 ?146 6.5.2 使用systemd journal功能 ?148 6.6 小結(jié) ?148 第7章 PHP運(yùn)維實踐 ?149 7.1 PHP再認(rèn)識 ?150 7.1.1 PHP進(jìn)程的工作方式 ?150 7.1.2 PHP代碼的編譯和部署 ?151 7.1.3 PHP內(nèi)部實現(xiàn)和生命周期 ?151 7.1.4 PHP在互聯(lián)網(wǎng)技術(shù)棧的位置 ?152 7.2 PHP開發(fā)、架構(gòu)、運(yùn)維問題及解決思路 ?153 7.2.1 運(yùn)維對PHP研發(fā)提要求 ?153 7.2.2 運(yùn)維參與PHP項目架構(gòu)設(shè)計 ?154 7.2.3 PHP運(yùn)維常見問題及解決之道 ?156 7.3 PHP進(jìn)程部署和配置、代碼發(fā)布 ?157 7.3.1 PHP進(jìn)程的部署 ?157 7.3.2 PHP配置文件變更 ?161 7.3.3 PHP配置項 ?162 7.3.4 PHP進(jìn)程部署及配置文件管理實踐 ?164 7.3.5 PHP代碼發(fā)布 ?165 7.3.6 PHP代碼發(fā)布實踐:代碼發(fā)布系統(tǒng) ?167 7.4 PHP性能分析 ?170 7.4.1 性能問題概述 ?170 7.4.2 PHP性能問題 ?171 7.4.3 性能分析方法 ?172 7.4.4 PHP性能分析實踐:性能分析系統(tǒng) ?181 7.5 PHP故障處理與監(jiān)控 ?182 7.5.1 PHP故障分類及處理思路 ?183 7.5.2 業(yè)務(wù)監(jiān)控和故障發(fā)現(xiàn) ?184 7.5.3 PHP故障消除的方法 ?186 7.5.4 故障分析案例 ?187 7.6 小結(jié) ?189 第8章 應(yīng)用系統(tǒng)運(yùn)行分析 ?190 8.1 分析模型 ?191 8.1.1 數(shù)據(jù)采集 ?191 8.1.2 數(shù)據(jù)模型 ?194 8.2 運(yùn)行分析平臺建設(shè) ?199 8.2.1 數(shù)據(jù)采集接口 ?199 8.2.2 數(shù)據(jù)分析模塊 ?200 8.2.3 推廣 ?200 8.3 呼叫中心系統(tǒng)運(yùn)行分析示例 ?201 8.3.1 確定分析方案 ?201 8.3.2 問題分析案例介紹 ?202 8.4 小結(jié) ?203 第9章 虛擬化中存儲配置典型場景:啟動風(fēng)暴 ?204 9.1 oVirt虛擬化平臺配置介紹 ?205 9.1.1 存儲配置背景知識 ?205 9.1.2 模板與實例同一存儲 ?206 9.1.3 模板與實例分離存儲 ?207 9.1.4 無狀態(tài)實例的硬盤與快照分離存儲 ?207 9.2 啟動風(fēng)暴相關(guān)系列實驗 ?208 9.2.1 模板配置 ?208 9.2.2 實驗?zāi)_本 ?208 9.2.3 WD 1TB機(jī)械硬盤啟動Windows XP實驗 ?210 9.2.4 Intel 480GB SSD啟動WindowsXP實驗 ?212 9.2.5 實驗結(jié)論 ?214 9.3 私有云中處理啟動風(fēng)暴的常用方法 ?214 9.3.1 啟動排隊 ?214 9.3.2 存儲分層選擇 ?215 9.3.3 其他提升桌面云存儲性能的方式 ?217 9.4 小結(jié) ?219 第10章 私有云桌面網(wǎng)絡(luò)組建 ?220 10.1 桌面云常用網(wǎng)絡(luò) ?220 10.1.1 NAT網(wǎng)絡(luò) ?220 10.1.2 橋接網(wǎng)絡(luò) ?223 10.1.3 VLAN網(wǎng)絡(luò) ?226 10.1.4 Access模式 ?226 10.1.5 Trunk模式 ?229 10.1.6 Open vSwitch ?231 10.2 ?oVirt/OpenStack的桌面網(wǎng)絡(luò)應(yīng)用 ?232 10.2.1 oVirt/OpenStack組網(wǎng)方式 ?232 10.2.2 應(yīng)用場景舉例 ?237 10.3 小結(jié) ?239 第11章 淺談服務(wù)器交付的那些事兒 ?240 11.1 設(shè)備簽收的學(xué)問 ?240 11.2 服務(wù)器設(shè)置 ?241 11.3 Cobbler的流程與規(guī)劃 ?244 11.4 服務(wù)器安裝時遇到的各種坑 ?247 11.4.1 DHCP客戶端獲取IP地址失敗 ?247 11.4.2 TFTP加載失敗 ?248 11.4.3 TFTP Client交互后 無響應(yīng) ?248 11.4.4 yum安裝失敗 ?249 11.4.5 Linux內(nèi)核無法識別新硬件 ?250 11.4.6 惡意PXE啟動導(dǎo)致原有系統(tǒng)被誤裝 ?250 11.5 交接后的故事 ?250 11.6 小結(jié) ?252 第12章 企業(yè)級Nginx Web服務(wù)優(yōu)化實戰(zhàn) ?254 12.1 Nginx基本安全優(yōu)化 ?254 12.1.1 調(diào)整參數(shù)隱藏Nginx軟件版本號信息 ?254 12.1.2 更改源碼隱藏Nginx軟件名及版本號 ?256 12.1.3 更改Nginx服務(wù)的默認(rèn)用戶 ?259 12.2 ?根據(jù)參數(shù)優(yōu)化Nginx服務(wù)性能 ?260 12.2.1 優(yōu)化Nginx服務(wù)的worker進(jìn)程個數(shù) ?260 12.2.2 優(yōu)化綁定不同的Nginx進(jìn)程到不同的CPU上 ?262 12.2.3 Nginx事件處理模型優(yōu)化 ?265 12.2.4 調(diào)整Nginx單個進(jìn)程允許的客戶端最大連接數(shù) ?266 12.2.5 配置Nginx worker進(jìn)程的最大打開文件數(shù) ?267 12.2.6 優(yōu)化服務(wù)器域名的散列表大小 ?267 12.2.7 開啟高效文件傳輸模式 ?269 12.2.8 優(yōu)化Nginx連接參數(shù),調(diào)整連接超時時間 ?269 12.2.9 上傳文件大小的限制(動態(tài)應(yīng)用) ?272 12.2.10 FastCGI相關(guān)參數(shù)調(diào)優(yōu)(配合PHP引擎動態(tài)服務(wù)) ?273 12.2.11 配置Nginx gzip壓縮實現(xiàn)性能優(yōu)化 ?277 12.2.12 配置Nginx expires緩存實現(xiàn)性能優(yōu)化 ?279 12.3 Nginx日志相關(guān)的優(yōu)化與安全 ?283 12.3.1 編寫腳本實現(xiàn)Nginx access日志輪詢 ?283 12.3.2 不記錄不需要的訪問日志 ?284 12.3.3 訪問日志的權(quán)限設(shè)置 ?284 12.4 Nginx站點目錄及文件URL訪問控制 ?284 12.4.1 根據(jù)擴(kuò)展名限制程序和文件訪問 ?284 12.4.2 禁止訪問指定目錄下的所有文件和目錄 ?285 12.4.3 限制網(wǎng)站來源IP訪問 ?286 12.4.4 配置Nginx,禁止非法域名解析訪問企業(yè)網(wǎng)站 ?287 12.5 Nginx圖片及目錄防盜鏈解決方案 ?288 12.6 Nginx錯誤頁面的優(yōu)雅顯示 ?295 12.6.1 生產(chǎn)環(huán)境中常見的HTTP狀態(tài)碼列表 ?295 12.6.2 為什么要配置錯誤頁面優(yōu)雅顯示 ?295 12.7 Nginx站點目錄文件及目錄權(quán)限優(yōu)化 ?298 12.8 Nginx防爬蟲優(yōu)化 ?300 12.9 利用Nginx限制HTTP的請求方法 ?302 12.10 使用CDN做網(wǎng)站內(nèi)容加速 ?302 12.10.1 什么是CDN ?302 12.10.2 CDN的特點 ?303 12.10.3 企業(yè)使用CDN的基本 要求 ?304 12.11 Nginx程序架構(gòu)優(yōu)化 ?304 12.12 使用普通用戶啟動Nginx(監(jiān)牢模式) ?305 12.12.1 為什么要讓Nginx服務(wù)使用普通用戶 ?305 12.12.2 給Nginx服務(wù)降權(quán)的解決方案 ?305 12.12.3 給Nginx服務(wù)降權(quán)實戰(zhàn) ?306 12.13 控制Nginx并發(fā)連接數(shù)量 ?308 12.14 控制客戶端請求Nginx的速率 ?312 12.15 小結(jié) ?314 第13章 游戲運(yùn)維的思考 ?315 13.1 游戲運(yùn)維最關(guān)鍵的幾件事 ?315 13.1.1 安全 ?315 13.1.2 穩(wěn)定 ?318 13.1.3 高效 ?322 13.1.4 成本節(jié)約 ?323 13.2 游戲運(yùn)維人的發(fā)展 ?325 13.3 小結(jié) ?326 第14章 數(shù)據(jù)庫平臺建設(shè)實戰(zhàn) ?327 14.1 規(guī)范建立 ?327 14.1.1 安裝規(guī)范 ?328 14.1.2 配置規(guī)范 ?329 14.1.3 賬號、權(quán)限規(guī)范 ?335 14.1.4 目錄規(guī)范 ?336 14.1.5 其他規(guī)范 ?337 14.2 架構(gòu)設(shè)計 ?339 14.2.1 架構(gòu)圖 ?339 14.2.2 各個模塊介紹 ?340 14.3 功能介紹與實踐 ?341 14.3.1 操作部分 ?341 14.3.2 日志部分 ?349 14.3.3 資產(chǎn)部分 ?351 14.3.4 信息展示 ?353 14.3.5 入口(LVS/Redir) ?354 14.4 后期功能展望 ?357 14.5 小結(jié) ?357 附錄A 求職者與面試官 ?358
“運(yùn)維前線”是一個系列,歡迎在平時工作中積累了實戰(zhàn)經(jīng)驗的廣大運(yùn)維工程師繼續(xù)參與“運(yùn)維前線”的寫作,帶來更多的干貨分享! 期待能夠得到你們的真摯反饋,在運(yùn)維之路上互勉共進(jìn)。 致謝 從開始構(gòu)思到《運(yùn)維前線》的出版,本書的創(chuàng)作過程猶如十月懷胎,期間也獲得了無數(shù)的支持與肯定。借此機(jī)會,向所有為此奉獻(xiàn)力量的人表示深深的感謝。 感謝參與本書寫作的14位行業(yè)專家,他們在百忙之中伏案寫作,將自己的經(jīng)驗共享給廣大讀者。能夠和你們合作,我深感榮幸,經(jīng)過將近一年時間的溝通和交流,你們的專業(yè)和執(zhí)著深深地打動了我,同時也讓我學(xué)到了不少東西。 感謝機(jī)械工業(yè)出版社華章公司的首席策劃楊福川,編輯高婧雅、孫海亮。在近一年的時間中,你們的敬業(yè)精神不斷地鼓舞著我前進(jìn),你們的鼓勵、幫助和堅持引導(dǎo)了本書的完成。 這里,我還要特別感謝七牛云。七牛云是我見過的最具技術(shù)氣質(zhì)的云服務(wù)企業(yè),肩負(fù)“幫助開發(fā)者縮短從想法到產(chǎn)品的距離”的使命,立志打造以數(shù)據(jù)為核心的場景化PaaS服務(wù)。七牛云主張技術(shù)共享并熱衷于技術(shù)的傳播,發(fā)起架構(gòu)師實踐日,推出各類創(chuàng)業(yè)扶持計劃,這些都是七牛云正在做的事。 特別致謝 本書在成書過程中,得到了一批熱心志愿者的協(xié)助,他們是陳家豪、曹學(xué)朋、鄧榮興、劉海文、李斯朗、韓海林,尤其劉海文做了大量的義務(wù)工作,在此特別感謝!
肖 力 志愿者的話 能在力哥組織的這本書中擔(dān)任助理,我感到非常榮幸。本書出自一群經(jīng)驗老到并樂于分享的運(yùn)維前輩之手,是一本案頭必備的好書。
劉海文
目 錄
推薦序 前 言 第1章 自動化運(yùn)維之深度解碼 ? 1.1 概述 ? 1.2 運(yùn)維自動化的三重境界 ? 1.3 運(yùn)維自動化的困境和價值? 1.4 運(yùn)維自動化的多維解讀
1.5 運(yùn)維自動化的方法論 ? 1.6 運(yùn)維自動化系統(tǒng)的實現(xiàn)? 1.7 運(yùn)維自動化系統(tǒng)的API參考實現(xiàn) ? 1.8 運(yùn)維自動化依賴的團(tuán)隊模型 ? 1.9 小結(jié) ? 第2章 利用Facter和Django快速構(gòu)建CMDB ? 2.1 CMDB簡介 ? 2.2 開源CMDB介紹 ? 2.3 Puppet及Facter介紹 ? 2.4 如何利用Python獲取Facts ? 2.5 使用Django快速構(gòu)建CMDB系統(tǒng) ? 2.6 高級進(jìn)階 ? 2.7 小結(jié) ? 第3章 數(shù)據(jù)中心搬遷中的x86自動化運(yùn)維 ? 3.1 數(shù)據(jù)中心搬遷準(zhǔn)備 ? 3.2 利用VMware腳本簡化虛擬化層的搬遷 ? 3.3 利用批處理與Shell腳本簡化邏輯節(jié)點的搬遷 3.4 小結(jié)? 第4章 集中配置管理工具Puppet ?88 4.1 如何同步puppet-agent端上的常用服務(wù) ?89 4.2 如何在puppet-agent端上自動安裝常用的軟件包 ?90 4.3 如何自動同步puppet-agent端的yum源 ?90 4.4 如何根據(jù)不同名字的節(jié)點機(jī)器推送不同的文件 ?92 4.5 如何根據(jù)節(jié)點機(jī)器名來選擇性地執(zhí)行Shell程序 ?95 4.6 如何快速同步puppet-server端的www目錄文件 ?97 4.7 如何利用ERB模板自動配置Apache虛擬主機(jī) ?102 4.8 如何利用ERB模板自動配置Nginx虛擬主機(jī) ?105 4.9 小結(jié) ?110 第5章 深度實踐iptables ?111 5.1 禁用連接追蹤 ?111 5.1.1 排查連接追蹤導(dǎo)致的故障 ?111 5.1.2 分析連接追蹤的原理 ?113 5.1.3 禁用連接追蹤的方法 ?114 5.1.4 確認(rèn)禁用連接追蹤的效果 ?117 5.2 慎重禁用ICMP協(xié)議 ?117 5.2.1 禁用ICMP協(xié)議導(dǎo)致的一則故障案例 ?117 5.2.2 MTU發(fā)現(xiàn)的原理 ?119 5.2.3 解決問題的方法 ?121 5.3 網(wǎng)絡(luò)地址轉(zhuǎn)換在實踐中的案例 ?121 5.3.1 源地址NAT ?121 5.3.2 目的地址NAT ?122 5.4 深入理解iptables的各種表和各種鏈 ?123 5.5 小結(jié) ?125 第6章 使用systemd管理Linux系統(tǒng)服務(wù) ?126 6.1 systemd和sysVinit之間的關(guān)系 ?126 6.1.1 sysVinit方式下系統(tǒng)的啟動 特點 ?127 6.1.2 systemd方式下系統(tǒng)的啟動 特點 ?127 6.2 systemd的原理和啟動順序 ?128 6.2.1 sysVinit的啟動順序 ?128 6.2.2 systemd的啟動順序 ?130 6.3 systemd的進(jìn)程控制命令 ?135 6.3.1 systemctl命令 ?136 6.3.2 hostnamectl命令 ?136 6.3.3 localectl命令 ?137 6.3.4 loginctl命令 ?137 6.3.5 timedatectl命令 ?138 6.4 systemd服務(wù)管理 ?138 6.4.1 編寫Nginx的sysVinit啟動腳本 ?138 6.4.2 編寫Nginx的systemd啟動腳本 ?140 6.4.3 systemd的其他功能 ?142 6.5 優(yōu)化 ?146 6.5.1 使用systemd-analyze優(yōu)化啟動時間 ?146 6.5.2 使用systemd journal功能 ?148 6.6 小結(jié) ?148 第7章 PHP運(yùn)維實踐 ?149 7.1 PHP再認(rèn)識 ?150 7.1.1 PHP進(jìn)程的工作方式 ?150 7.1.2 PHP代碼的編譯和部署 ?151 7.1.3 PHP內(nèi)部實現(xiàn)和生命周期 ?151 7.1.4 PHP在互聯(lián)網(wǎng)技術(shù)棧的位置 ?152 7.2 PHP開發(fā)、架構(gòu)、運(yùn)維問題及解決思路 ?153 7.2.1 運(yùn)維對PHP研發(fā)提要求 ?153 7.2.2 運(yùn)維參與PHP項目架構(gòu)設(shè)計 ?154 7.2.3 PHP運(yùn)維常見問題及解決之道 ?156 7.3 PHP進(jìn)程部署和配置、代碼發(fā)布 ?157 7.3.1 PHP進(jìn)程的部署 ?157 7.3.2 PHP配置文件變更 ?161 7.3.3 PHP配置項 ?162 7.3.4 PHP進(jìn)程部署及配置文件管理實踐 ?164 7.3.5 PHP代碼發(fā)布 ?165 7.3.6 PHP代碼發(fā)布實踐:代碼發(fā)布系統(tǒng) ?167 7.4 PHP性能分析 ?170 7.4.1 性能問題概述 ?170 7.4.2 PHP性能問題 ?171 7.4.3 性能分析方法 ?172 7.4.4 PHP性能分析實踐:性能分析系統(tǒng) ?181 7.5 PHP故障處理與監(jiān)控 ?182 7.5.1 PHP故障分類及處理思路 ?183 7.5.2 業(yè)務(wù)監(jiān)控和故障發(fā)現(xiàn) ?184 7.5.3 PHP故障消除的方法 ?186 7.5.4 故障分析案例 ?187 7.6 小結(jié) ?189 第8章 應(yīng)用系統(tǒng)運(yùn)行分析 ?190 8.1 分析模型 ?191 8.1.1 數(shù)據(jù)采集 ?191 8.1.2 數(shù)據(jù)模型 ?194 8.2 運(yùn)行分析平臺建設(shè) ?199 8.2.1 數(shù)據(jù)采集接口 ?199 8.2.2 數(shù)據(jù)分析模塊 ?200 8.2.3 推廣 ?200 8.3 呼叫中心系統(tǒng)運(yùn)行分析示例 ?201 8.3.1 確定分析方案 ?201 8.3.2 問題分析案例介紹 ?202 8.4 小結(jié) ?203 第9章 虛擬化中存儲配置典型場景:啟動風(fēng)暴 ?204 9.1 oVirt虛擬化平臺配置介紹 ?205 9.1.1 存儲配置背景知識 ?205 9.1.2 模板與實例同一存儲 ?206 9.1.3 模板與實例分離存儲 ?207 9.1.4 無狀態(tài)實例的硬盤與快照分離存儲 ?207 9.2 啟動風(fēng)暴相關(guān)系列實驗 ?208 9.2.1 模板配置 ?208 9.2.2 實驗?zāi)_本 ?208 9.2.3 WD 1TB機(jī)械硬盤啟動Windows XP實驗 ?210 9.2.4 Intel 480GB SSD啟動WindowsXP實驗 ?212 9.2.5 實驗結(jié)論 ?214 9.3 私有云中處理啟動風(fēng)暴的常用方法 ?214 9.3.1 啟動排隊 ?214 9.3.2 存儲分層選擇 ?215 9.3.3 其他提升桌面云存儲性能的方式 ?217 9.4 小結(jié) ?219 第10章 私有云桌面網(wǎng)絡(luò)組建 ?220 10.1 桌面云常用網(wǎng)絡(luò) ?220 10.1.1 NAT網(wǎng)絡(luò) ?220 10.1.2 橋接網(wǎng)絡(luò) ?223 10.1.3 VLAN網(wǎng)絡(luò) ?226 10.1.4 Access模式 ?226 10.1.5 Trunk模式 ?229 10.1.6 Open vSwitch ?231 10.2 ?oVirt/OpenStack的桌面網(wǎng)絡(luò)應(yīng)用 ?232 10.2.1 oVirt/OpenStack組網(wǎng)方式 ?232 10.2.2 應(yīng)用場景舉例 ?237 10.3 小結(jié) ?239 第11章 淺談服務(wù)器交付的那些事兒 ?240 11.1 設(shè)備簽收的學(xué)問 ?240 11.2 服務(wù)器設(shè)置 ?241 11.3 Cobbler的流程與規(guī)劃 ?244 11.4 服務(wù)器安裝時遇到的各種坑 ?247 11.4.1 DHCP客戶端獲取IP地址失敗 ?247 11.4.2 TFTP加載失敗 ?248 11.4.3 TFTP Client交互后 無響應(yīng) ?248 11.4.4 yum安裝失敗 ?249 11.4.5 Linux內(nèi)核無法識別新硬件 ?250 11.4.6 惡意PXE啟動導(dǎo)致原有系統(tǒng)被誤裝 ?250 11.5 交接后的故事 ?250 11.6 小結(jié) ?252 第12章 企業(yè)級Nginx Web服務(wù)優(yōu)化實戰(zhàn) ?254 12.1 Nginx基本安全優(yōu)化 ?254 12.1.1 調(diào)整參數(shù)隱藏Nginx軟件版本號信息 ?254 12.1.2 更改源碼隱藏Nginx軟件名及版本號 ?256 12.1.3 更改Nginx服務(wù)的默認(rèn)用戶 ?259 12.2 ?根據(jù)參數(shù)優(yōu)化Nginx服務(wù)性能 ?260 12.2.1 優(yōu)化Nginx服務(wù)的worker進(jìn)程個數(shù) ?260 12.2.2 優(yōu)化綁定不同的Nginx進(jìn)程到不同的CPU上 ?262 12.2.3 Nginx事件處理模型優(yōu)化 ?265 12.2.4 調(diào)整Nginx單個進(jìn)程允許的客戶端最大連接數(shù) ?266 12.2.5 配置Nginx worker進(jìn)程的最大打開文件數(shù) ?267 12.2.6 優(yōu)化服務(wù)器域名的散列表大小 ?267 12.2.7 開啟高效文件傳輸模式 ?269 12.2.8 優(yōu)化Nginx連接參數(shù),調(diào)整連接超時時間 ?269 12.2.9 上傳文件大小的限制(動態(tài)應(yīng)用) ?272 12.2.10 FastCGI相關(guān)參數(shù)調(diào)優(yōu)(配合PHP引擎動態(tài)服務(wù)) ?273 12.2.11 配置Nginx gzip壓縮實現(xiàn)性能優(yōu)化 ?277 12.2.12 配置Nginx expires緩存實現(xiàn)性能優(yōu)化 ?279 12.3 Nginx日志相關(guān)的優(yōu)化與安全 ?283 12.3.1 編寫腳本實現(xiàn)Nginx access日志輪詢 ?283 12.3.2 不記錄不需要的訪問日志 ?284 12.3.3 訪問日志的權(quán)限設(shè)置 ?284 12.4 Nginx站點目錄及文件URL訪問控制 ?284 12.4.1 根據(jù)擴(kuò)展名限制程序和文件訪問 ?284 12.4.2 禁止訪問指定目錄下的所有文件和目錄 ?285 12.4.3 限制網(wǎng)站來源IP訪問 ?286 12.4.4 配置Nginx,禁止非法域名解析訪問企業(yè)網(wǎng)站 ?287 12.5 Nginx圖片及目錄防盜鏈解決方案 ?288 12.6 Nginx錯誤頁面的優(yōu)雅顯示 ?295 12.6.1 生產(chǎn)環(huán)境中常見的HTTP狀態(tài)碼列表 ?295 12.6.2 為什么要配置錯誤頁面優(yōu)雅顯示 ?295 12.7 Nginx站點目錄文件及目錄權(quán)限優(yōu)化 ?298 12.8 Nginx防爬蟲優(yōu)化 ?300 12.9 利用Nginx限制HTTP的請求方法 ?302 12.10 使用CDN做網(wǎng)站內(nèi)容加速 ?302 12.10.1 什么是CDN ?302 12.10.2 CDN的特點 ?303 12.10.3 企業(yè)使用CDN的基本 要求 ?304 12.11 Nginx程序架構(gòu)優(yōu)化 ?304 12.12 使用普通用戶啟動Nginx(監(jiān)牢模式) ?305 12.12.1 為什么要讓Nginx服務(wù)使用普通用戶 ?305 12.12.2 給Nginx服務(wù)降權(quán)的解決方案 ?305 12.12.3 給Nginx服務(wù)降權(quán)實戰(zhàn) ?306 12.13 控制Nginx并發(fā)連接數(shù)量 ?308 12.14 控制客戶端請求Nginx的速率 ?312 12.15 小結(jié) ?314 第13章 游戲運(yùn)維的思考 ?315 13.1 游戲運(yùn)維最關(guān)鍵的幾件事 ?315 13.1.1 安全 ?315 13.1.2 穩(wěn)定 ?318 13.1.3 高效 ?322 13.1.4 成本節(jié)約 ?323 13.2 游戲運(yùn)維人的發(fā)展 ?325 13.3 小結(jié) ?326 第14章 數(shù)據(jù)庫平臺建設(shè)實戰(zhàn) ?327 14.1 規(guī)范建立 ?327 14.1.1 安裝規(guī)范 ?328 14.1.2 配置規(guī)范 ?329 14.1.3 賬號、權(quán)限規(guī)范 ?335 14.1.4 目錄規(guī)范 ?336 14.1.5 其他規(guī)范 ?337 14.2 架構(gòu)設(shè)計 ?339 14.2.1 架構(gòu)圖 ?339 14.2.2 各個模塊介紹 ?340 14.3 功能介紹與實踐 ?341 14.3.1 操作部分 ?341 14.3.2 日志部分 ?349 14.3.3 資產(chǎn)部分 ?351 14.3.4 信息展示 ?353 14.3.5 入口(LVS/Redir) ?354 14.4 后期功能展望 ?357 14.5 小結(jié) ?357 附錄A 求職者與面試官 ?358
總結(jié)
以上是生活随笔為你收集整理的运维前线:一线运维专家的运维方法、技巧与实践导读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《JavaScript专家编程》——第1
- 下一篇: 《SAP入门经典(第4版•修订版)》——