高性能Linux服務器構建實戰:系統安全、故障排查、自動化運維與集群架構

高俊峰 著

  • 出版商: 機械工業
  • 出版日期: 2014-09-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7111472497
  • ISBN-13: 9787111472490
  • 相關分類: Linux

已絕版

相關主題

商品描述

性能和穩定性一直是服務器(尤其是面向大規模服務器集群)運維領域最重要的主題,也是運維工程師公認最難的主題之一,因為影響服務器性能和穩定性的因素太多,而且問題會隨著業務需求、服務器規模、服務器運行環境和運維技術的變化而不斷變化。“高性能Linux服務器構建實戰”系列圖書以具有一定規模的Linux服務器集群為研究對象,以幫助運維工程師構建高可靠、高性能的Linux服務器為目標,逐一對影響服務器性能的各種因素和能提高服務器性能的各種方法抽絲剝繭,深入分析。
《高性能Linux服務器構建實戰:運維監控、性能調優與集群應用》一書從Web應用系統、數據備份恢復、網絡存儲、運維監控、性能優化、集群應用等角度切入,上市後在運維領域引起了廣泛的關註和強烈的反響,讀者給予了極高的評價,被譽為Linux服務器運維領域少有的經典著作之一。本書與《高性能Linux服務器構建實戰:運維監控、性能調優與集群應用》一脈相承、互為補充,從系統安全、故障排查、自動化運維、集群架構4個不同的維度講解了構建大規模和高性能Linux服務器集群所需技術、工具、方法及技巧。

作者簡介

高俊峰(南非蚂蚁) 资深运维专家、系统架构师、DBA和技术顾问,从事Linux/Unix服务器系统的架构、运维和管理多年。擅长大规模服务器集群的运维和管理,在故障诊断与排除、自动化运维、安全运维、性能调优、虚拟化等方面积累了大量的实战经验。国内知名IT技术社区51CTO的博客专家和ChinaUnix论坛高可用集群版块的版主,同时还活跃于ITPUB等技术社区,在社区和论坛里发表了大量技术文章,深受欢迎。此外,他还著有畅销书《循序渐进Linux》和《高性能Linux服务器构建实战:运维监控、性能调优

目錄大綱

前言
第一部分 安全運維篇
第1章 Linux服務器安全運維 3
1.1 賬戶和登錄安全 3
1.1.1 刪除特殊的用戶和用戶組 3
1.1.2 關閉系統不需要的服務 4
1.1.3 密碼安全策略 5
1.1.4 合理使用su、sudo命令 9
1.1.5 刪減系統登錄歡迎信息 11
1.1.6 禁止Control-Alt-Delete鍵盤關閉命令 12
1.2 遠程訪問和認證安全 12
1.2.1 遠程登錄取消telnet而採用SSH方式 12
1.2.2 合理使用shell歷史命令記錄功能 14
1.2.3 啟用tcp_wrappers防火牆 16
1.3 文件系統安全 18
1.3.1 鎖定系統重要文件 18
1.3.2 文件權限檢查和修改 20
1.3.3 /tmp、/var/tmp、/dev/shm安全設定 21
1.4 系統軟件安全管理 22
1.4.1 軟件自動升級工具yum 23
1.4.2 yum的安裝與配置 23
1.4.3 yum的特點與基本用法 25
1.4.4 幾個不錯的yum源 27
1.5 Linux後門入侵檢測工具 28
1.5.1 rootkit後門檢測工具chkrootkit 29
1.5.2 rootkit後門檢測工具RKHunter 31
1.6 服務器遭受攻擊後的處理過程 35
1.6.1 處理服務器遭受攻擊的一般思路 35
1.6.2 檢查並鎖定可疑用戶 36
1.6.3 查看系統日誌 37
1.6.4 檢查並關閉系統可疑進程 37
1.6.5 檢查文件系統的完好性 38
1.7 一次Linux被入侵後的分析 39
1.7.1 受攻擊現象 39
1.7.2 初步分析 40
1.7.3 斷網分析系統 40
1.7.4  尋找攻擊源 41
1.7.5 查找攻擊原因 42
1.7.6 揭開謎團 43
1.7.7 如何恢復網站 43
第2章 Linux網絡安全運維 45
2.1 網絡實時流量監測工具iftop 45
2.1.1 iftop能做什麽 45
2.1.2 iftop的安裝 45
2.1.3 使用iftop監控網卡實時流量 46
2.2 網絡流量監控與分析工具Ntop和Ntopng 49
2.2.1 Ntop與MRTG的異同 49
2.2.2 Ntop與Ntopng的功能介紹 49
2.2.3 安裝Ntop與Ntopng 50
2.2.4 Ntop和Ntopng的使用技巧 53
2.3 網絡性能評估工具iperf 60
2.3.1 iperf能做什麽 60
2.3.2 iperf的安裝與使用 61
2.3.3 iperf應用實例 62
2.4 網絡探測和安全審核工具nmap 67
2.4.1 nmap和Zenmap簡介 67
2.4.2 nmap基本功能與結構 67
2.4.3 nmap的安裝與驗證 68
2.4.4 nmap的典型用法 68
2.4.5 nmap主機發現掃描 70
2.4.6 nmap埠掃描 71
2.4.7 nmap版本偵測 73
2.4.8 nmap操作系統偵測 74
第3章 數據安全工具DRBD、extundelete 77
3.1 數據鏡像軟件DRBD介紹 77
3.1.1 DRBD的基本功能 77
3.1.2 DRBD的構成 78
3.1.3 DRBD與現在的集群的關系 78
3.1.4 DRBD的主要特性 79
3.2 DRDB的安裝與配置 80
3.2.1 安裝環境說明 80
3.2.2 DRBD的安裝部署 81
3.2.3 快速配置一個DRBD鏡像系統 82
3.3 DRBD的管理與維護 83
3.3.1 啟動DRDB 83
3.3.2 測試DRBD數據鏡像 85
3.3.3 DRBD主備節點切換 86
3.4 數據恢復軟件extundelete介紹 88
3.4.1 如何使用“rm -rf”命令 88
3.4.2 extundelete與ext3grep的異同 89
3.4.3 extundelete的恢復原理 89
3.4.4 安裝extundelete 89
3.4.5 extundelete用法詳解 90
3.5 實戰:extundelete恢復數據的過程 91
3.5.1 通過extundelete恢復單個文件 91
3.5.2 通過extundelete恢復單個目錄 93
3.5.3 通過extundelete恢復所有誤刪除數據 93
3.5.4 通過extundelete恢復某個時間段的數據 94
第二部分 運維故障排查篇
第4章 Linux系統運維故障排查思路 97
4.1 Linux系統故障的處理思路 97
4.2 Linux系統無法啟動的解決方法 98
4.2.1 文件系統破壞導致系統無法啟動 98
4.2.2 /etc/fstab文件丟失導致系統無法啟動 100
4.3 Linux系統無響應(死機)問題分析 104
4.4 Linux下常見網絡故障的處理思路 105
4.4.1 檢查網絡硬件問題 105
4.4.2 檢查網卡是否正常工作 105
4.4.3 檢查DNS解析文件是否設置正確 106
4.4.4 檢查服務是否正常打開 107
4.4.5 檢查訪問權限是否打開 108
4.4.6 檢查局域網主機之間聯機是否正常 109
第5章 Linux故障排查案例實戰 111
5.1 常見系統故障案例 111
5.1.1 su切換用戶帶來的疑惑 111
5.1.2 “Read-only file system”錯誤與解決方法 114
5.1.3 “Argument list too long”錯誤與解決方法 116
5.1.4 inode耗盡導致應用故障 119
5.1.5 文件已刪除但空間不釋放的原因 121
5.1.6 “Too many open files”錯誤與解決方法 124
5.2 Apache常見錯誤故障案例 127
5.2.1 “No space left on device”錯誤與解決方法 127
5.2.2 apache(20014)故障與解決方法 129
5.2.3 “could not bind to address 0.0.0.0:80”錯誤與解決方法 131
5.3 因NAS存儲故障引起的Linux系統恢復案例 134
5.3.1 故障現象描述 134
5.3.2 問題判斷思路 134
5.3.3 問題處理過程 134
5.3.4 解決問題 137
第三部分 自動化運維篇
第6章 輕量級運維利器pssh、pdsh和mussh 141
6.1 並行SSH運維工具pssh 141
6.1.1 pssh應用場景 141
6.1.2 pssh的安裝與用法 142
6.1.3 pssh應用實例 144
6.2 並行分佈式運維工具pdsh 147
6.2.1 pdsh應用場景 147
6.2.2 pdsh的安裝與語法 148
6.2.3 pdsh應用實例 149
6.3 多主機ssh封裝器mussh 153
6.3.1 mussh功能介紹 153
6.3.2 mussh的安裝與語法 153
6.3.3 mussh應用實例 154
第7章 分佈式監控系統Ganglia 157
7.1 Ganglia簡介 157
7.2 Ganglia的組成 157
7.3 Ganglia的工作原理 159
7.3.1 Ganglia數據流向分析 159
7.3.2 Ganglia工作模式 160
7.4 Ganglia的安裝 161
7.4.1 yum源安裝方式 161
7.4.2 源碼方式 162
7.5 配置一個Ganglia分佈式監控系統 164
7.5.1 Ganglia配置文件介紹 164
7.5.2 Ganglia監控系統架構圖 164
7.5.3 Ganglia監控管理端配置 164
7.5.4 Ganglia的客戶端配置 165
7.5.5 Ganglia的Web端配置 166
7.6 Ganglia監控系統的管理和維護 167
7.7 Ganglia監控擴展實現機制 169
7.7.1 擴展Ganglia監控功能的方法 169
7.7.2 通過gmetric接口擴展Ganglia監控 169
7.7.3 通過Python插件擴展Ganglia監控 170
7.7.4 實戰:利用Python接口監控Nginx運行狀態 171
7.8 Ganglia在實際應用中要考慮的問題 174
7.8.1 網絡IO可能存在瓶頸 174
7.8.2 CPU可能存在瓶頸 175
7.8.3 gmetad寫入rrd數據庫可能存在瓶頸 175
第8章 基於nagios的分佈式監控報警平臺Centreon 177
8.1 Centreon概述 177
8.2 Centreon的特點 177
8.3 Centreon的結構 178
8.4 安裝Centreon+nagios監控系統 179
8.4.1 安裝支持Centreon的yum源 180
8.4.2 安裝系統基礎依賴庫 180
8.4.3 安裝nagios及nagios-plugins 181
8.4.4 安裝ndoutils 181
8.4.5 安裝nrpe 182
8.4.6 安裝Centreon 182
8.4.7 安裝配置Centreon Web 191
8.4.8 啟動Centreon相關服務 195
8.4.9 安裝問題總結 196
8.5 配置Centreon監控系統 197
8.5.1 添加主機和主機組 197
8.5.2 批量添加主機 202
8.5.3 監控引擎管理 206
8.5.4 添加服務和服務組 207
8.5.5 監控報警配置 211
8.5.6 用戶和用戶權限管理 217
8.6 配置分佈式監控 222
8.6.1 分佈式監控架構與實現原理 222
8.6.2 分佈式監控搭建環境介紹 223
8.6.3 監控軟件的安裝 224
8.6.4 配置節點間SSH信任登錄 224
8.6.5 在Central server上添加分佈式監控配置 226
8.7 常見服務監控配置 230
8.7.1  nagios插件編寫規範 231
8.7.2 監控Apache運行狀態 231
8.7.3 監控MySQL運行狀態 234
8.7.4 監控Hadoop HDFS運行狀態 237
8.8 桌面監控報警器Nagstamon 239
第9章 通過Ganglia與Centreon構建智能化監控報警平臺 243
9.1 智能運維監控報警平臺的組成 243
9.2 Ganglia作為數據收集模塊 246
9.3 Centreon作為監控報警模塊 246
9.4 Ganglia與Centreon的無縫整合 247
9.4.1 數據提取腳本 247
9.4.2 實現Ganglia與Centreon完美整合 256
9.5 在Centreon中實現批量數據收集與監控報警 259
第四部分 集群架構篇
第10章 高性能Web服務器Nginx 267
10.1 高性能Web服務器Nginx介紹 267
10.1.1 Nginx的組成與工作原理 267
10.1.2 Nginx的性能優勢 268
10.2 Nginx的安裝 269
10.2.1 安裝Nginx依賴庫 269
10.2.2 快速安裝Nginx 270
10.3 配置與調試Nginx 270
10.3.1 Nginx配置文件結構 270
10.3.2 Nginx配置文件詳解 270
10.3.3 Nginx日常維護技巧 276
10.4 Nginx常用功能介紹 278
10.4.1 Nginx反向代理應用實例 278
10.4.2 Nginx的URL重寫應用實例 282
10.5 案例:Nginx作為Web緩存服務器應用 286
10.5.1 在Nginx下安裝緩存服務器 286
10.5.2 配置Nginx緩存服務器 287
10.5.3 測試proxy_cache實現的緩存功能 289
10.5.4 如何清除指定的URL緩存 290
10.6 案例:Nginx作為負載均衡服務器應用 290
10.6.1 Nginx的負載均衡算法 291
10.6.2 Nginx的負載均衡配置實例 291
10.7 Nginx性能優化技巧 292
10.7.1 編譯安裝過程優化 292
10.7.2 利用TCMalloc優化Nginx的性能 293
10.7.3 Nginx內核參數優化 295
第11章 高性能集群軟件Keepalived 297
11.1 Keepalived介紹 297
11.1.1 Keepalived是什麽 297
11.1.2 VRRP協議與工作原理 298
11.1.3 Keepalived工作原理 298
11.1.4 Keepalived的體系結構 299
11.2 Keepalived安裝與配置 301
11.2.1 Keepalived的安裝過程 301
11.2.2 Keepalived的全局配置 303
11.2.3 Keepalived的VRRPD配置 303
11.2.4 Keepalived的LVS配置 307
11.3 Keepalived基礎功能應用實例 310
11.3.1 Keepalived基礎HA功能演示 310
11.3.2 通過vrrp_script實現對集群資源的監控 316
11.3.3 Keepalived集群中MASTER和BACKUP角色選舉策略 319
第12章 千萬級高並發負載均衡軟件HAProxy 323
12.1 高性能負載均衡軟件HAProxy介紹 323
12.1.1 HAProxy簡介 323
12.1.2 四層和七層負載均衡的區別 324
12.1.3 HAProxy與LVS的異同 325
12.2 HAProxy基礎配置與應用實例 326
12.2.1 快速安裝HAProxy集群軟件 326
12.2.2 HAProxy基礎配置文件詳解 326
12.2.3 HAProxy的日誌配置策略 333
12.2.4 通過HAProxy的ACL規則實現智能負載均衡 334
12.3 基於虛擬主機的HAProxy負載均衡系統配置實例 335
12.3.1 通過HAProxy的ACL規則配置虛擬主機 335
12.3.2 測試HAProxy實現虛擬主機和負載均衡功能 343
12.3.3 測試HAProxy的故障轉移功能 343
12.3.4 使用HAProxy的Web監控平臺 343
第13章 構建高性能的MySQL集群系統 345
13.1 常見的高可用MySQL解決方案 345
13.1.1 主從復制解決方案 345
13.1.2 MMM高可用解決方案 346
13.1.3 Heartbeat/SAN高可用解決方案 346
13.1.4 Heartbeat/DRBD高可用解決方案 346
13.1.5 MySQL Cluster高可用解決方案 347
13.2 通過Keepalived搭建MySQL雙主模式的高可用集群系統 347
13.2.1 MySQLReplication介紹 347
13.2.2 MySQL Replication實現原理 348
13.2.3 MySQL Replication常用架構 349
13.2.4 MySQL主主互備模式架構 349
13.2.5 MySQL主主互備模式配置 350
13.2.6 配置Keepalived實現MySQL雙主高可用 353
13.2.7 測試MySQL主從同步功能 356
13.2.8 測試Keepalived實現MySQL故障轉移 358
13.3 通過MMM構建MySQL高可用集群系統 360
13.3.1 MMM高可用MySQL方案簡介 360
13.3.2 MMM典型應用方案 361
13.3.3 MMM高可用MySQL方案架構 363
13.3.4 MMM的安裝與配置 364
13.3.5 MMM的管理 368
13.3.6 測試MMM實現MySQL高可用功能 371
13.4 MySQL讀寫分離解決方案 374
13.4.1 通過Amoeba實現MySQL讀寫分離 374
13.4.2 通過Keepalived構建高可用的Amoeba服務 382
第14章 高性能負載均衡集群軟件HAProxy 383
14.1 高性能負載均衡架構設計原則 383
14.1.1 HAProxy常見方案與拓撲 384
14.1.2 高可用集群軟件的選擇 386
14.2 搭建HAProxy+Keepalived高可用負載均衡系統 386
14.2.1 搭建環境描述 386
14.2.2 配置HAProxy負載均衡服務器 387
14.2.3 配置主、備Keepalived服務器 389
14.3 測試HAProxy+Keepalived高可用負載均衡集群 392
14.3.1 測試Keepalived的高可用功能 392
14.3.2 測試負載均衡功能 394
14.4 構建雙主高可用的HAProxy負載均衡系統 394
14.4.1 系統架構圖與實現原理 394
14.4.2 安裝並配置HAProxy集群系統 395
14.4.3 安裝並配置雙主的Keepalived高可用系統 397
14.4.4 測試雙主高可用的HAProxy負載均衡集群系統 399