基本介紹
- 書名:大規模Linux集群架構最佳實踐:如何管理上千台伺服器
- 作者:魔軟運維社 著
- ISBN:978-7-111-57585-6
- 出版時間:2017-09
基本信息,內容簡介,目錄,
基本信息
作者:魔軟運維社 著 |
ISBN(書號):978-7-111-57585-6 |
叢書名:Linux/Unix技術叢書 |
出版日期:2017-09 |
版次:1/1 |
開本:16 |
定價:¥79.00 |
內容簡介
隨著網際網路技術的迅猛發展,網際網路套用已經觸及並深入到人們的日常生活中,為人們提供了極大的便利,Linux作為被廣泛使用的各類套用的後端作業系統,也因此迎來了重要的大規模套用,Linux集群服務應運而生。那么,如何更簡易、更快捷、更有效地管理Linux集群呢?本書作者將以自己的實踐經驗為基礎,通過實戰案例講解大規模Linux集群服務的套用與運維技巧。
本書的主要內容和特色:
結合大量的實踐案例,以授之以漁的方式對大規模Linux集群架構技術點進行總結和歸納,從而迅速提高讀者的實戰能力。
5位作者都是各自負責領域的專家,對開源工具的利用和理解有著深厚的功力和獨到的見解,本書取眾人之所長,更好地保證了內容的準確性與實用性。
從多個技術角度詳盡地描述了Linux集群的設計、搭建、部署和運維,特彆強化了自動化、規模化的概念,幫助讀者快速上手並掌握相關知識點。
隨著Linux開源軟體的發展,湧現了一批非常好的自動化備份、配置管理、日誌分析等工具,本書針對這一系列工具進行了深入講解。
以鼓勵動手的方式增強閱讀效果,讀者在多次閱讀後技能上會有本質的提高。
本書的主要內容和特色:
結合大量的實踐案例,以授之以漁的方式對大規模Linux集群架構技術點進行總結和歸納,從而迅速提高讀者的實戰能力。
5位作者都是各自負責領域的專家,對開源工具的利用和理解有著深厚的功力和獨到的見解,本書取眾人之所長,更好地保證了內容的準確性與實用性。
從多個技術角度詳盡地描述了Linux集群的設計、搭建、部署和運維,特彆強化了自動化、規模化的概念,幫助讀者快速上手並掌握相關知識點。
隨著Linux開源軟體的發展,湧現了一批非常好的自動化備份、配置管理、日誌分析等工具,本書針對這一系列工具進行了深入講解。
以鼓勵動手的方式增強閱讀效果,讀者在多次閱讀後技能上會有本質的提高。
目錄
前言
第1章 Linux系統管理入門1
1.1 系統安裝1
1.1.1 安裝CentOS1
1.1.2 首次啟動CentOS14
1.1.3 更多設定14
1.2 系統登錄20
1.2.1 本地登錄20
1.2.2 遠程登錄22
1.3 用戶管理24
1.3.1 用戶和用戶組的概念24
1.3.2 新增和刪除用戶25
1.3.3 新增和刪除用戶組26
1.3.4 用戶切換26
1.4 檔案系統27
1.4.1 什麼是檔案系統27
1.4.2 常見的檔案系統27
1.4.3 磁碟分區和創建檔案系統28
1.5 檔案管理33
1.5.1 檔案和目錄簡介33
1.5.2 檔案和目錄許可權34
1.5.3 檔案查找35
1.5.4 檔案壓縮和打包36
1.6 網路管理37
1.6.1 網路配置管理37
1.6.2 Linux防火牆38
1.6.3 網路連通性診斷40
1.7 進程管理42
1.7.1 什麼是進程43
1.7.2 進程的常見狀態43
1.7.3 進程優先權的調整43
1.7.4 進程的終止44
1.8 軟體安裝46
1.8.1 源碼編譯安裝46
1.8.2 使用包管理Yum48
1.8.3 創建自己的Yum倉庫49
1.9 系統安全檢測與審計51
1.9.1 AIDE系統入侵檢測 51
1.9.2 審計53
第2章 系統性能分析56
2.1 性能分析簡介56
2.2 系統分析的基本工具56
2.2.1 CPU性能分析工具56
2.2.2 記憶體性能分析工具60
2.2.3 磁碟性能分析工具62
2.2.4 sar64
2.3 軟體分析的基本工具66
2.3.1 ldd66
2.3.2 strace與ltrace66
2.3.3 ipcs71
2.3.4 systemtap73
2.4 與記憶體相關的那些事情76
2.4.1 記憶體泄漏76
2.4.2 虛擬記憶體、物理記憶體與頁缺失78
2.4.3 Out of Memory79
2.4.4 Overcommit79
2.4.5 cache與buffer80
2.5 與磁碟相關的那些事情80
2.5.1 HDD與SSD80
2.5.2 HDD磁碟的調度算法81
2.5.3 檔案系統中的日誌82
2.6 系統資源限制82
2.6.1 ulimit82
2.6.2 Cgroup84
第3章 用戶集中認證91
3.1 openLDAP簡介91
3.2 openLDAP的安裝91
3.3 openLDAP的配置92
3.4 利用openLDAP集中認證95
第4章 域名伺服器DNS97
4.1 DNS服務簡介97
4.2 DNS安裝配置98
4.2.1 DNS安裝過程98
4.2.2 關於chroot的解釋99
4.2.3 配置主配置檔案99
4.2.4 DNS的正向解析配置100
4.2.5 DNS的反向解析配置101
4.2.6 利用DNS實現負載均衡103
4.3 DNS的主從複製104
4.4 配置純快取的DNS服務106
4.5 DNS的客戶端配置107
4.5.1 Linux中的配置107
4.5.2 Windows中的配置108
第5章 系統備份109
5.1 為什麼要備份109
5.2 常見的備份機制110
5.2.1 完全備份110
5.2.2 增量備份110
5.2.3 差異備份111
5.3 Bacula簡介111
5.3.1 什麼是Bacula111
5.3.2 Bacula的基本組件112
5.4 Bacula的安裝和配置112
5.4.1 Bacula控制器114
5.4.2 Bacula存儲守護進程120
5.4.3 Bacula客戶端檔案守護進程121
5.4.4 Bacula控制台122
5.4.5 啟動服務122
5.4.6 Bacula配置綜述122
5.5 使用Bacula進行備份和恢復124
5.5.1 執行備份124
5.5.2 檔案恢復127
5.6 Bacula的使用和維護129
5.6.1 Bconsole的用法129
5.6.2 使用Bacula進行檔案驗證130
5.6.3 Catalog的維護和備份131
5.7 備份的策略132
5.7.1 備份什麼133
5.7.2 備份到哪裡133
5.7.3 備份的時間133
5.7.4 測試和監控備份133
第6章 集群與存儲134
6.1 存儲的基本概念134
6.2 SAN134
6.2.1 SAN的選擇135
6.2.2 iSCSI的配置135
6.3 分散式檔案系統與集群檔案系統138
6.3.1 分散式檔案系統138
6.3.2 GlusterFS的配置138
6.4 高可用集群141
6.4.1 Red Hat HA Cluster簡介141
6.4.2 配置一個高可用的Apache集群142
6.5 負載均衡集群151
6.5.1 HAProxy負載均衡151
6.5.2 Nginx負載均衡153
6.5.3 LVS負載均衡155
第7章 Graphite159
7.1 Graphite是什麼159
7.1.1 Graphite不是一個告警系統159
7.1.2 Graphite的功能和特色159
7.2 Graphite的基本組件160
7.2.1 Whisper160
7.2.2 Carbon161
7.2.3 Graphite Web162
7.3 Graphite的安裝162
7.3.1 安裝Whisper資料庫163
7.3.2 安裝Carbon守護進程163
7.3.3 安裝graphite-web163
7.4 Graphite 的配置(單點)164
7.4.1 配置Carbon守護進程164
7.4.2 給Carbon Cache傳送數據166
7.4.3 配置Graphite-web167
7.5 Graphite的配置(集群配置)169
7.5.1 配置Carbon Relay170
7.5.2 Relay中的數據複製172
7.5.3 數據聚合172
7.5.4 Graphite Cluster174
7.6 使用Graphite Web175
7.6.1 Graphite的Render API175
7.6.2 Graphite作圖函式176
7.6.3 Graphite Dashboard和Grafana178
7.7 Graphite 的性能監控和調整181
7.8 其他182
7.8.1 Whisper檔案操作182
7.8.2 壓力測試183
7.8.3 其他工具185
第8章 系統大規模部署186
8.1 概述186
8.2 與PXE不得不說的故事186
8.2.1 PXE簡介186
8.2.2 PXE實戰187
8.3 系統部署工具Cobbler192
8.3.1 Cobbler簡介192
8.3.2 Cobbler安裝192
8.3.3 Cobbler 配置193
8.3.4 Cobbler套用197
8.3.5 Cobbler API202
8.3.6 Cobbler Replication203
8.3.7 Cobbler實戰204
8.4 作業系統無盤技術206
8.4.1 定義206
8.4.2 製作無盤鏡像206
8.4.3 測試無盤鏡像212
8.5 本章小結213
第9章 Puppet配置管理214
9.1 什麼是Puppet214
9.1.1 Puppet對於系統運維意味著什麼214
9.1.2 為什麼選擇Puppet215
9.2 安裝Puppet216
9.2.1 準備工作216
9.2.2 安裝一個服務端219
9.2.3 安裝一個客戶端219
9.2.4 連線第一個客戶端220
9.2.5 Puppet master上的site.pp220
9.2.6 製作第一個模組223
9.3 深入Puppet227
9.3.1 深入resources type227
9.3.2 深入metaparameter240
9.3.3 深入fact245
9.3.4 深入流程控制248
9.3.5 深入function252
9.3.6 深入template257
9.3.7 深入define type259
第10章 Puppet實戰262
10.1 擴展Puppet262
10.1.1 自定義模組262
10.1.2 使用公有模組271
10.1.3 神奇的enc273
10.1.4 自定義resource type/facter/function275
10.2 管理好一個Puppet集群280
10.2.1 監控Puppet運行狀況280
10.2.2 做好Puppet的容量規劃288
10.2.3 使用版本控制來管理代碼295
10.2.4 確保你的代碼不是留給別人的坑311
第11章 CMDB配置中心管理314
11.1 什麼是DCIM314
11.2 什麼是CMDB315
11.3 運維為什麼需要CMDB316
11.3.1 整合信息316
11.3.2 關係映射316
11.3.3 防止配置偏差316
11.3.4 自動化317
11.3.5 中央管理317
11.4 如何選擇適合的CMDB317
11.4.1 每個項目都會遇到的那些任務317
11.4.2 選擇開源的CMDB321
11.5 自主搭建CMDB324
11.5.1 openDCIM安裝324
11.5.2 openDCIM配置327
11.5.3 openDCIM API339
11.5.4 解決每個項目都會遇到的那些任務359
11.6 如何管理好一個CMDB371
11.6.1 制定相應流程管理371
11.6.2 CMDB與自動化373
11.6.3 做好CMDB的架構設計374
11.6.4 那些年,我們碰過的坑375
第12章 日誌管理378
12.1 日誌中的四個W378
12.2 首先要有一個日誌伺服器378
12.2.1 rsyslog379
12.2.2 syslog-ng380
12.2.3 如何選擇syslog程式382
12.3 常見的日誌分析處理工具382
12.4 Splunk的安裝配置384
12.4.1 下載Splunk安裝程式包384
12.4.2 安裝啟動Splunk384
12.4.3 配置Splunk385
12.4.4 搜尋日誌388
12.5 Elasticsearch+Logstash+Kiana388
12.5.1 ELK簡介388
12.5.2 安裝ELK軟體包389
12.5.3 配置Logstash391
12.5.4 配置Elasticsearch392
12.5.5 配置Kibana393
12.6 Elasticsearch入門395
12.6.1 基本配置395
12.6.2 安裝外掛程式397
12.6.3 API397
第1章 Linux系統管理入門1
1.1 系統安裝1
1.1.1 安裝CentOS1
1.1.2 首次啟動CentOS14
1.1.3 更多設定14
1.2 系統登錄20
1.2.1 本地登錄20
1.2.2 遠程登錄22
1.3 用戶管理24
1.3.1 用戶和用戶組的概念24
1.3.2 新增和刪除用戶25
1.3.3 新增和刪除用戶組26
1.3.4 用戶切換26
1.4 檔案系統27
1.4.1 什麼是檔案系統27
1.4.2 常見的檔案系統27
1.4.3 磁碟分區和創建檔案系統28
1.5 檔案管理33
1.5.1 檔案和目錄簡介33
1.5.2 檔案和目錄許可權34
1.5.3 檔案查找35
1.5.4 檔案壓縮和打包36
1.6 網路管理37
1.6.1 網路配置管理37
1.6.2 Linux防火牆38
1.6.3 網路連通性診斷40
1.7 進程管理42
1.7.1 什麼是進程43
1.7.2 進程的常見狀態43
1.7.3 進程優先權的調整43
1.7.4 進程的終止44
1.8 軟體安裝46
1.8.1 源碼編譯安裝46
1.8.2 使用包管理Yum48
1.8.3 創建自己的Yum倉庫49
1.9 系統安全檢測與審計51
1.9.1 AIDE系統入侵檢測 51
1.9.2 審計53
第2章 系統性能分析56
2.1 性能分析簡介56
2.2 系統分析的基本工具56
2.2.1 CPU性能分析工具56
2.2.2 記憶體性能分析工具60
2.2.3 磁碟性能分析工具62
2.2.4 sar64
2.3 軟體分析的基本工具66
2.3.1 ldd66
2.3.2 strace與ltrace66
2.3.3 ipcs71
2.3.4 systemtap73
2.4 與記憶體相關的那些事情76
2.4.1 記憶體泄漏76
2.4.2 虛擬記憶體、物理記憶體與頁缺失78
2.4.3 Out of Memory79
2.4.4 Overcommit79
2.4.5 cache與buffer80
2.5 與磁碟相關的那些事情80
2.5.1 HDD與SSD80
2.5.2 HDD磁碟的調度算法81
2.5.3 檔案系統中的日誌82
2.6 系統資源限制82
2.6.1 ulimit82
2.6.2 Cgroup84
第3章 用戶集中認證91
3.1 openLDAP簡介91
3.2 openLDAP的安裝91
3.3 openLDAP的配置92
3.4 利用openLDAP集中認證95
第4章 域名伺服器DNS97
4.1 DNS服務簡介97
4.2 DNS安裝配置98
4.2.1 DNS安裝過程98
4.2.2 關於chroot的解釋99
4.2.3 配置主配置檔案99
4.2.4 DNS的正向解析配置100
4.2.5 DNS的反向解析配置101
4.2.6 利用DNS實現負載均衡103
4.3 DNS的主從複製104
4.4 配置純快取的DNS服務106
4.5 DNS的客戶端配置107
4.5.1 Linux中的配置107
4.5.2 Windows中的配置108
第5章 系統備份109
5.1 為什麼要備份109
5.2 常見的備份機制110
5.2.1 完全備份110
5.2.2 增量備份110
5.2.3 差異備份111
5.3 Bacula簡介111
5.3.1 什麼是Bacula111
5.3.2 Bacula的基本組件112
5.4 Bacula的安裝和配置112
5.4.1 Bacula控制器114
5.4.2 Bacula存儲守護進程120
5.4.3 Bacula客戶端檔案守護進程121
5.4.4 Bacula控制台122
5.4.5 啟動服務122
5.4.6 Bacula配置綜述122
5.5 使用Bacula進行備份和恢復124
5.5.1 執行備份124
5.5.2 檔案恢復127
5.6 Bacula的使用和維護129
5.6.1 Bconsole的用法129
5.6.2 使用Bacula進行檔案驗證130
5.6.3 Catalog的維護和備份131
5.7 備份的策略132
5.7.1 備份什麼133
5.7.2 備份到哪裡133
5.7.3 備份的時間133
5.7.4 測試和監控備份133
第6章 集群與存儲134
6.1 存儲的基本概念134
6.2 SAN134
6.2.1 SAN的選擇135
6.2.2 iSCSI的配置135
6.3 分散式檔案系統與集群檔案系統138
6.3.1 分散式檔案系統138
6.3.2 GlusterFS的配置138
6.4 高可用集群141
6.4.1 Red Hat HA Cluster簡介141
6.4.2 配置一個高可用的Apache集群142
6.5 負載均衡集群151
6.5.1 HAProxy負載均衡151
6.5.2 Nginx負載均衡153
6.5.3 LVS負載均衡155
第7章 Graphite159
7.1 Graphite是什麼159
7.1.1 Graphite不是一個告警系統159
7.1.2 Graphite的功能和特色159
7.2 Graphite的基本組件160
7.2.1 Whisper160
7.2.2 Carbon161
7.2.3 Graphite Web162
7.3 Graphite的安裝162
7.3.1 安裝Whisper資料庫163
7.3.2 安裝Carbon守護進程163
7.3.3 安裝graphite-web163
7.4 Graphite 的配置(單點)164
7.4.1 配置Carbon守護進程164
7.4.2 給Carbon Cache傳送數據166
7.4.3 配置Graphite-web167
7.5 Graphite的配置(集群配置)169
7.5.1 配置Carbon Relay170
7.5.2 Relay中的數據複製172
7.5.3 數據聚合172
7.5.4 Graphite Cluster174
7.6 使用Graphite Web175
7.6.1 Graphite的Render API175
7.6.2 Graphite作圖函式176
7.6.3 Graphite Dashboard和Grafana178
7.7 Graphite 的性能監控和調整181
7.8 其他182
7.8.1 Whisper檔案操作182
7.8.2 壓力測試183
7.8.3 其他工具185
第8章 系統大規模部署186
8.1 概述186
8.2 與PXE不得不說的故事186
8.2.1 PXE簡介186
8.2.2 PXE實戰187
8.3 系統部署工具Cobbler192
8.3.1 Cobbler簡介192
8.3.2 Cobbler安裝192
8.3.3 Cobbler 配置193
8.3.4 Cobbler套用197
8.3.5 Cobbler API202
8.3.6 Cobbler Replication203
8.3.7 Cobbler實戰204
8.4 作業系統無盤技術206
8.4.1 定義206
8.4.2 製作無盤鏡像206
8.4.3 測試無盤鏡像212
8.5 本章小結213
第9章 Puppet配置管理214
9.1 什麼是Puppet214
9.1.1 Puppet對於系統運維意味著什麼214
9.1.2 為什麼選擇Puppet215
9.2 安裝Puppet216
9.2.1 準備工作216
9.2.2 安裝一個服務端219
9.2.3 安裝一個客戶端219
9.2.4 連線第一個客戶端220
9.2.5 Puppet master上的site.pp220
9.2.6 製作第一個模組223
9.3 深入Puppet227
9.3.1 深入resources type227
9.3.2 深入metaparameter240
9.3.3 深入fact245
9.3.4 深入流程控制248
9.3.5 深入function252
9.3.6 深入template257
9.3.7 深入define type259
第10章 Puppet實戰262
10.1 擴展Puppet262
10.1.1 自定義模組262
10.1.2 使用公有模組271
10.1.3 神奇的enc273
10.1.4 自定義resource type/facter/function275
10.2 管理好一個Puppet集群280
10.2.1 監控Puppet運行狀況280
10.2.2 做好Puppet的容量規劃288
10.2.3 使用版本控制來管理代碼295
10.2.4 確保你的代碼不是留給別人的坑311
第11章 CMDB配置中心管理314
11.1 什麼是DCIM314
11.2 什麼是CMDB315
11.3 運維為什麼需要CMDB316
11.3.1 整合信息316
11.3.2 關係映射316
11.3.3 防止配置偏差316
11.3.4 自動化317
11.3.5 中央管理317
11.4 如何選擇適合的CMDB317
11.4.1 每個項目都會遇到的那些任務317
11.4.2 選擇開源的CMDB321
11.5 自主搭建CMDB324
11.5.1 openDCIM安裝324
11.5.2 openDCIM配置327
11.5.3 openDCIM API339
11.5.4 解決每個項目都會遇到的那些任務359
11.6 如何管理好一個CMDB371
11.6.1 制定相應流程管理371
11.6.2 CMDB與自動化373
11.6.3 做好CMDB的架構設計374
11.6.4 那些年,我們碰過的坑375
第12章 日誌管理378
12.1 日誌中的四個W378
12.2 首先要有一個日誌伺服器378
12.2.1 rsyslog379
12.2.2 syslog-ng380
12.2.3 如何選擇syslog程式382
12.3 常見的日誌分析處理工具382
12.4 Splunk的安裝配置384
12.4.1 下載Splunk安裝程式包384
12.4.2 安裝啟動Splunk384
12.4.3 配置Splunk385
12.4.4 搜尋日誌388
12.5 Elasticsearch+Logstash+Kiana388
12.5.1 ELK簡介388
12.5.2 安裝ELK軟體包389
12.5.3 配置Logstash391
12.5.4 配置Elasticsearch392
12.5.5 配置Kibana393
12.6 Elasticsearch入門395
12.6.1 基本配置395
12.6.2 安裝外掛程式397
12.6.3 API397