一線運維專家的運維方法、技巧與實踐

《一線運維專家的運維方法、技巧與實踐》是於2017年2月機械工業出版社出版的一本圖書,作者是雲技術社區。

內容簡介

本書是運維領域的“集大成”之作,精選了運維領域重要的6大主題:
(1)自動化運維
(2)系統運維
(3)雲與虛擬化
(4)Web運維
(5)遊戲運維
(6)資料庫運維
一共涵蓋14個重要的知識點。所有的知識點既有理論的指導,又有方法論的提煉;既有來自這些專家們共事過的企業的商業案例,又有針對企業常見問題的解決方案。

圖書目錄

第1章 自動化運維之深度解碼 1
1.1 概述 1
1.2 運維自動化的三重境界 3
1.3 運維自動化的困境和價值 4
1.3.1 運維自動化的困境 4
1.3.2 運維自動化的價值 4
1.4 運維自動化的多維解讀 5
1.4.1 基於套用變更場景的維度劃分 5
1.4.2 基於系統層次的維度劃分 8
1.4.3 基於與業務程式耦合緊密程度的維度劃分 8
1.4.4 面向服務的自動化能力劃分 9
1.5 運維自動化的方法論 11
1.6 運維自動化系統的實現 12
1.6.1 DNS管理系統 12
1.6.2 CMDB管理系統 13
1.6.3 名字服務中心繫統 13
1.6.4 持續部署管理系統 14
1.6.5 運維調度管理系統 15
1.7 運維自動化系統的API參考實現 16
1.8 運維自動化依賴的團隊模型 17
1.8.1 團隊的能力模型 17
1.8.2 團隊的驅動模型 18
1.8.3 團隊的技能模型 18
1.8.4 參考的運維團隊組織結構 19
1.9 小結 19
第2章 利用Facter和Django快速構建CMDB 20
2.1 CMDB簡介 21
2.2 開源CMDB介紹 21
2.2.1 OneCMDB介紹 21
2.2.2 CMDBuild介紹 22
2.2.3 其他的開源CMDB 23
2.3 Puppet及Facter介紹 24
2.3.1 什麼是Puppet 24
2.3.2 為什麼是Puppet 25
2.3.3 什麼是Facter 25
2.3.4 Facter的特點 25
2.3.5 Facter變數 26
2.4 如何利用Python獲取Facts 27
2.4.1 工作原理 27
2.4.2 利用Python腳本獲取Facts 27
2.5 使用Django快速構建CMDB系統 28
2.5.1 Django介紹 28
2.5.2 Django安裝 29
2.5.3 Django常用命令 30
2.5.4 Django的配置 30
2.6 高級進階 44
2.6.1 歷史查詢功能 44
2.6.2 API功能 45
2.6.3 數據表結構 48
2.6.4 用戶管理功能 50
2.6.5 用戶組管理功能 51
2.7 小結 53

第3章 數據中心搬遷中的x86自動化運維 54

3.1 數據中心搬遷準備 54

3.1.1 數據中心搬遷介紹 54

3.1.2 搬遷環境介紹 55

3.1.3 搬遷前的準備工作 56

3.1.4 搬遷信息收集 56

3.2 利用VMware腳本簡化虛擬化層的搬遷 58

3.2.1 通過腳本完成ESXI安裝後的基礎設定 58

3.2.2 批量掛載數據盤 63

3.2.3 批量註冊虛擬機 67

3.2.4 vCenter目錄結構的調整 68

3.2.5 批量更改虛擬機名稱及port group 69

3.2.6 批量設定虛擬機版本和CPU、記憶體保留值 70

3.3 利用批處理與Shell腳本簡化邏輯節點的搬遷 71

3.3.1 邏輯節點切換腳本的思路 71

3.3.2 利用批處理腳本簡化Windows邏輯節點的搬遷 72

3.3.3 利用Shell腳本簡化Linux邏輯節點的搬遷 78

3.3.4 通過SFTP和WMIC指令將腳本檔案上傳至所有虛擬機 86

3.3.5 搬遷期間的注意事項 87

3.4 小結 87

第4章 集中配置管理工具Puppet 88

4.1 如何同步puppet-agent端上的常用服務 89

4.2 如何在puppet-agent端上自動安裝常用的軟體包 90

4.3 如何自動同步puppet-agent端的yum源 90

4.4 如何根據不同名字的節點機器推送不同的檔案 92

4.5 如何根據節點機器名來選擇性地執行Shell程式 95

4.6 如何快速同步puppet-server端的www目錄檔案 97

4.7 如何利用ERB模板自動配置Apache虛擬主機 102

4.8 如何利用ERB模板自動配置Nginx虛擬主機 105

4.9 小結 110

第5章 深度實踐iptables 111

5.1 禁用連線追蹤 111

5.1.1 排查連線追蹤導致的故障 111

5.1.2 分析連線追蹤的原理 113

5.1.3 禁用連線追蹤的方法 114

5.1.4 確認禁用連線追蹤的效果 117

5.2 慎重禁用ICMP協定 117

5.2.1 禁用ICMP協定導致的一則故障案例 117

5.2.2 MTU發現的原理 119

5.2.3 解決問題的方法 121

5.3 網路地址轉換在實踐中的案例 121

5.3.1 源地址NAT 121

5.3.2 目的地址NAT 122

5.4 深入理解iptables的各種表和各種鏈 123

5.5 小結 125

第6章 使用systemd管理Linux系統服務 126

6.1 systemd和sysVinit之間的關係 126

6.1.1 sysVinit方式下系統的啟動 特點 127

6.1.2 systemd方式下系統的啟動 特點 127

6.2 systemd的原理和啟動順序 128

6.2.1 sysVinit的啟動順序 128

6.2.2 systemd的啟動順序 130

6.3 systemd的進程控制命令 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服務管理 138

6.4.1 編寫Nginx的sysVinit啟動腳本 138

6.4.2 編寫Nginx的systemd啟動腳本 140

6.4.3 systemd的其他功能 142

6.5 最佳化 146

6.5.1 使用systemd-analyze最佳化啟動時間 146

6.5.2 使用systemd journal功能 148

6.6 小結 148

第7章 PHP運維實踐 149

7.1 PHP再認識 150

7.1.1 PHP進程的工作方式 150

7.1.2 PHP代碼的編譯和部署 151

7.1.3 PHP內部實現和生命周期 151

7.1.4 PHP在網際網路技術棧的位置 152

7.2 PHP開發、架構、運維問題及解決思路 153

7.2.1 運維對PHP研發提要求 153

7.2.2 運維參與PHP項目架構設計 154

7.2.3 PHP運維常見問題及解決之道 156

7.3 PHP進程部署和配置、代碼發布 157

7.3.1 PHP進程的部署 157

7.3.2 PHP配置檔案變更 161

7.3.3 PHP配置項 162

7.3.4 PHP進程部署及配置檔案管理實踐 164

7.3.5 PHP代碼發布 165

7.3.6 PHP代碼發布實踐:代碼發布系統 167

7.4 PHP性能分析 170

7.4.1 性能問題概述 170

7.4.2 PHP性能問題 171

7.4.3 性能分析方法 172

7.4.4 PHP性能分析實踐:性能分析系統 181

7.5 PHP故障處理與監控 182

7.5.1 PHP故障分類及處理思路 183

7.5.2 業務監控和故障發現 184

7.5.3 PHP故障消除的方法 186

7.5.4 故障分析案例 187

7.6 小結 189

第8章 套用系統運行分析 190

8.1 分析模型 191

8.1.1 數據採集 191

8.1.2 數據模型 194

8.2 運行分析平台建設 199

8.2.1 數據採集接口 199

8.2.2 數據分析模組 200

8.2.3 推廣 200

8.3 呼叫中心繫統運行分析示例 201

8.3.1 確定分析方案 201

8.3.2 問題分析案例介紹 202

8.4 小結 203

第9章 虛擬化中存儲配置典型場景:啟動風暴 204

9.1 oVirt虛擬化平台配置介紹 205

9.1.1 存儲配置背景知識 205

9.1.2 模板與實例同一存儲 206

9.1.3 模板與實例分離存儲 207

9.1.4 無狀態實例的硬碟與快照分離存儲 207

9.2 啟動風暴相關係列實驗 208

9.2.1 模板配置 208

9.2.2 實驗腳本 208

9.2.3 WD 1TB機械硬碟啟動Windows XP實驗 210

9.2.4 Intel 480GB SSD啟動WindowsXP實驗 212

9.2.5 實驗結論 214

9.3 私有雲中處理啟動風暴的常用方法 214

9.3.1 啟動排隊 214

9.3.2 存儲分層選擇 215

9.3.3 其他提升桌面雲存儲性能的方式 217

9.4 小結 219

第10章 私有雲桌面網路組建 220

10.1 桌面雲常用網路 220

10.1.1 NAT網路 220

10.1.2 橋接網路 223

10.1.3 VLAN網路 226

10.1.4 Access模式 226

10.1.5 Trunk模式 229

10.1.6 Open vSwitch 231

10.2 oVirt/OpenStack的桌面網路套用 232

10.2.1 oVirt/OpenStack組網方式 232

10.2.2 套用場景舉例 237

10.3 小結 239

第11章 淺談伺服器交付的那些事兒 240

11.1 設備簽收的學問 240

11.2 伺服器設定 241

11.3 Cobbler的流程與規劃 244

11.4 伺服器安裝時遇到的各種坑 247

11.4.1 DHCP客戶端獲取IP位址失敗 247

11.4.2 TFTP載入失敗 248

11.4.3 TFTP Client互動後 無回響 248

11.4.4 yum安裝失敗 249

11.4.5 Linux核心無法識別新硬體 250

11.4.6 惡意PXE啟動導致原有系統被誤裝 250

11.5 交接後的故事 250

11.6 小結 252

第12章 企業級Nginx Web服務最佳化實戰 254

12.1 Nginx基本安全最佳化 254

12.1.1 調整參數隱藏Nginx軟體版本號信息 254

12.1.2 更改源碼隱藏Nginx軟體名及版本號 256

12.1.3 更改Nginx服務的默認用戶 259

12.2 根據參數最佳化Nginx服務性能 260

12.2.1 最佳化Nginx服務的worker進程個數 260

12.2.2 最佳化綁定不同的Nginx進程到不同的CPU上 262

12.2.3 Nginx事件處理模型最佳化 265

12.2.4 調整Nginx單個進程允許的客戶端最大連線數 266

12.2.5 配置Nginx worker進程的最大打開檔案數 267

12.2.6 最佳化伺服器域名的散列表大小 267

12.2.7 開啟高效檔案傳輸模式 269

12.2.8 最佳化Nginx連線參數,調整連線逾時時間 269

12.2.9 上傳檔案大小的限制(動態套用) 272

12.2.10 FastCGI相關參數調優(配合PHP引擎動態服務) 273

12.2.11 配置Nginx gzip壓縮實現性能最佳化 277

12.2.12 配置Nginx expires快取實現性能最佳化 279

12.3 Nginx日誌相關的最佳化與安全 283

12.3.1 編寫腳本實現Nginx access日誌輪詢 283

12.3.2 不記錄不需要的訪問日誌 284

12.3.3 訪問日誌的許可權設定 284

12.4 Nginx站點目錄及檔案URL訪問控制 284

12.4.1 根據擴展名限制程式和檔案訪問 284

12.4.2 禁止訪問指定目錄下的所有檔案和目錄 285

12.4.3 限制網站來源IP訪問 286

12.4.4 配置Nginx,禁止非法域名解析訪問企業網站 287

12.5 Nginx圖片及目錄防盜鏈解決方案 288

12.6 Nginx錯誤頁面的優雅顯示 295

12.6.1 生產環境中常見的HTTP狀態碼列表 295

12.6.2 為什麼要配置錯誤頁面優雅顯示 295

12.7 Nginx站點目錄檔案及目錄許可權最佳化 298

12.8 Nginx防爬蟲最佳化 300

12.9 利用Nginx限制HTTP的請求方法 302

12.10 使用CDN做網站內容加速 302

12.10.1 什麼是CDN 302

12.10.2 CDN的特點 303

12.10.3 企業使用CDN的基本 要求 304

12.11 Nginx程式架構最佳化 304

12.12 使用普通用戶啟動Nginx(監牢模式) 305

12.12.1 為什麼要讓Nginx服務使用普通用戶 305

12.12.2 給Nginx服務降權的解決方案 305

12.12.3 給Nginx服務降權實戰 306

12.13 控制Nginx並發連線數量 308

12.14 控制客戶端請求Nginx的速率 312

12.15 小結 314

第13章 遊戲運維的思考 315

13.1 遊戲運維最關鍵的幾件事 315

13.1.1 安全 315

13.1.2 穩定 318

13.1.3 高效 322

13.1.4 成本節約 323

13.2 遊戲運維人的發展 325

13.3 小結 326

第14章 資料庫平台建設實戰 327

14.1 規範建立 327

14.1.1 安裝規範 328

14.1.2 配置規範 329

14.1.3 賬號、許可權規範 335

14.1.4 目錄規範 336

14.1.5 其他規範 337

14.2 架構設計 339

14.2.1 架構圖 339

14.2.2 各個模組介紹 340

14.3 功能介紹與實踐 341

14.3.1 操作部分 341

14.3.2 日誌部分 349

14.3.3 資產部分 351

14.3.4 信息展示 353

14.3.5 入口(LVS/Redir) 354

14.4 後期功能展望 357

14.5 小結 357

附錄A 求職者與面試官 358

相關詞條

熱門詞條

聯絡我們