●基礎篇
章操作繫統的安裝與基礎配置3
1.1操作繫統的安裝3
1.1.1準備Linux操作繫統安裝文件3
1.1.2配置虛擬機3
1.1.3安裝CentOS操作繫統10
1.2操作繫統的基礎配置15
1.2.1修改默認主機名15
1.2.2配置IP地址16
1.2.3為繫統添加操作用戶16
1.2.4安裝常用軟件17
1.2.5配置Yum源17
1.2.6關閉防火牆服務17
1.2.7關閉SELinux服務18
1.2.8修改SSH服務默認配置18
1.2.9修改文件描述符19
1.2.10登錄超時退出19
第2章Linux繫統的目錄及重要文件20
2.1繫統目錄及其作用20
2.1.1根目錄結構及其作用20
2.1.2根下常見目錄介紹20
2.2Linux繫統的重要文件21
2.2.1網卡配置文件21
2.2.2DNS配置文件22
2.2.3繫統hosts文件22
2.2.4主機名配置文件23
2.2.5fstab文件23
2.2.6rc.local文件23
2.2.7全局環境變量配置文件24
2.2.8定時任務配置文件24
2.2.9用戶相關的配置文件25
第3章新手必備的繫統基礎命令26
3.1繫統管理命令26
3.1.1man命令26
3.1.2ls命令26
3.1.3cd命令27
3.1.4useradd命令28
3.1.5passwd命令28
3.1.6free命令29
3.1.7whoami命令30
3.1.8ps命令30
3.1.9date命令31
3.1.10pwd命令33
3.1.11shutdown命令33
3.2文件目錄管理命令34
3.2.1touch命令34
3.2.2cat命令35
3.2.3mkdir命令36
3.2.4rm命令37
3.2.5cp命令37
3.2.6mv命令38
3.2.7find命令39
3.3文件壓縮與解壓命令40
3.3.1tar命令40
3.3.2zip命令41
3.3.3unzip命令42
3.4磁盤管理命令43
3.4.1df命令43
3.4.2du命令44
3.4.3fdisk命令44
3.4.4mount命令45
3.5網絡管理命令46
3.5.1ping命令46
3.5.2wget命令46
3.5.3telnet命令47
3.5.4netstat命令47
3.5.5curl命令49
3.5.6ss命令49
3.6繫統性能管理命令51
3.6.1uptime命令51
3.6.2top命令51
3.6.3iostat命令53
3.6.4ifstat命令55
3.6.5lsof命令55
3.6.6time命令57
3.7軟件包管理命令57
3.7.1yum命令57
3.7.2rpm命令59
第4章Linux文件繫統、用戶與權限61
4.1文件繫統概述61
4.1.1文件類型61
4.1.2文件屬性62
4.2用戶與用戶組63
4.2.1用戶分類63
4.2.2用戶組64
4.3用戶權限65
4.3.1默認權限65
4.3.2umask值與默認權限的關繫65
4.3.3如何修改默認權限66
4.4文件權限66
4.4.1文件權限分類66
4.4.2如何修改權限67
第5章磁盤管理68
5.1磁盤分類68
5.2磁盤的容量計算68
5.3磁盤分區69
5.4磁盤分區工具69
5.4.1fdisk分區工具69
5.4.2parted分區工具70
5.5RAID技術概述71
5.5.1RAID的定義71
5.5.2RAID的級別與分類72
5.5.3RAID的優點72
5.5.4常用RAID對比72
第6章正則表達式與vim編輯器的使用73
6.1什麼是正則表達式73
6.2字符73
6.3文本處理命令74
6.3.1grep命令74
6.3.2sed命令74
6.3.3awk命令75
6.4正則表達式使用示例75
6.5vim編輯器75
6.5.1什麼是vim編輯器75
6.5.2vim編輯器的3種模式76
6.6vim編輯的操作76
6.6.1光標的移動方法76
6.6.2搜索與查找76
6.6.3刪除、復制與粘貼77
6.6.4保存與退出77
LAMP/LNMP架構篇
第7章Apache的安裝與配置81
7.1Apache概述81
7.1.1什麼是Apache81
7.1.2Apache的應用場景81
7.2安裝Apache81
7.2.1安裝環境準備81
7.2.2Apache的安裝過程82
7.3Apache的目錄結構與配置文件84
7.3.1Apache的目錄結構與作用85
7.3.2Apache的主配置文件86
7.3.3Apache的日志格式與日志切割86
7.4配置Apache的虛擬主機88
7.4.1配置基於域名的虛擬主機88
7.4.2配置基於端口的虛擬主機90
7.5Apache的優化配置91
7.5.1修改默認用戶與組91
7.5.2優化錯誤頁面的顯示內容92
7.5.3隱藏Apache的版本信息92
7.5.4配置Apache的日志輪詢93
7.5.5優化站點目錄權限94
7.5.6開啟Apache防盜鏈功能94
7.5.7禁止PHP程序解析指定站點目錄95
第8章MySQL與PHP的安裝與配置96
8.1MySQL概述96
8.1.1MySQL簡介96
8.1.2MySQL版本96
8.2MySQL的部署過程96
8.2.1MySQL常見的安裝方式96
8.2.2MySQL的安裝與部署97
8.3MySQL的目錄結構與配置文件99
8.3.1MySQL的目錄結構99
8.3.2MySQL的配置文件99
8.4PHP的安裝與配置100
8.4.1準備安裝環境100
8.4.2PHP的安裝過程101
8.4.3配置Apache支持PHP程序103
8.4.4測試配置104
8.4.5PHP目錄105
第9章Nginx的安裝與配置107
9.1Nginx概述107
9.1.1什麼是Nginx107
9.1.2Nginx的功能107
9.1.3Nginx的優點107
9.2安裝Nginx108
9.2.1準備安裝環境108
9.2.2安裝依賴庫109
9.2.3編譯和安裝Nginx109
9.3配置Nginx支持PHP程序111
9.3.1修改配置文件111
9.3.2啟動服務並檢查112
9.4Nginx目錄與配置文件114
9.4.1Nginx目錄結構及其說明114
9.4.2Nginx的配置文件簡介114
9.5配置Nginx虛擬主機115
9.5.1配置基於域名的虛擬主機115
9.5.2配置基於IP的虛擬主機117
9.5.3配置基於端口的虛擬主機119
9.6優化Nginx主配置文件120
9.6.1精簡主配置文件120
9.6.2拆分主配置文件121
9.6.3開啟日志功能122
9.6.4配置Nginxgzip壓縮功能123
9.6.5配置expires緩存功能124
9.6.6優化Nginx錯誤頁面125
0章使用WordPress搭建自己的博客站點127
10.1安裝環境127
10.1.1繫統環境127
10.1.2軟件環境127
10.2準備工作128
10.2.1WordPress軟件128
10.2.2配置Nginx虛擬主機128
10.2.3創建WordPress數據庫129
10.3搭建WordPress博客站點129
10.3.1復制站點文件並授權129
10.3.2安裝和配置WordPress130
應用服務篇
1章Linux繫統登錄與管理139
11.1SSH服務概述139
11.1.1什麼是SSH服務139
11.1.2SSH服務的認證類型139
11.2SSH服務的操作140
11.2.1SSH服務的安裝與啟動140
11.2.2SSH相關操作命令141
11.3SSH免密登錄實戰142
11.3.1環境配置142
11.3.2生成密鑰對142
11.3.3分發密鑰143
11.3.4測試免密分發數據144
11.4定時任務144
11.4.1什麼是定時任務144
11.4.2crond命令144
11.4.3繫統定時任務145
11.4.4定時任務的書寫與配置146
11.5服務器權限管理146
11.5.1sudo介紹146
11.5.2/etc/sudoers配置文件147
11.5.3編輯配置文件規範149
2章網絡文件繫統(NFS)與數據同步151
12.1網絡文件繫統簡介151
12.1.1什麼是網絡文件繫統151
12.1.2NFS實現過程151
12.2NFS的安裝與部署152
12.2.1NFS服務端的部署152
12.2.2NFS客戶端的部署154
12.2.3客戶端安全配置156
12.3NFS客戶端掛載優化157
12.3.1掛載參數157
12.3.2優化實例測試157
12.4rsync數據同步服務158
12.4.1rsync服務簡介158
12.4.2rsync服務的安裝與操作命令159
12.4.3rsync數據同步實戰操作160
12.5sersync數據同步服務162
12.5.1sersync服務簡介162
12.5.2sersync服務的工作過程163
12.5.3sersync服務的安裝準備163
12.5.4安裝配置sersync服務164
12.5.5啟動sersync服務166
12.5.6測試數據同步167
3章MySQL服務常用管理169
13.1MySQL的基礎管理操作169
13.1.1MySQL服務的啟動與停止169
13.1.2MySQL服務的登錄和退出169
13.1.3MySQL服務密碼修改與找回171
13.2MySQL數據庫常用管理操作172
13.2.1創建、刪除數據庫173
13.2.2連接數據庫174
13.2.3創建與刪除用戶174
13.2.4權限管理176
13.3MySQL數據庫表管理177
13.3.1創建表177
13.3.2表結構178
13.3.3表主鍵178
13.3.4表索引179
13.4表數據操作181
13.4.1插入數據181
13.4.2查詢數據181
13.4.3修改(更新)數據182
13.4.4刪除數據183
13.4.5表字段的增刪184
13.4.6表更名185
13.4.7刪除表185
4章MySQL數據庫的備份與恢復187
14.1數據庫備份概述187
14.1.1全量與增量備份187
14.1.2數據庫備份方法188
14.2MySQL數據庫備份操作188
14.2.1庫備份188
14.2.2數據庫表和表結構備份191
14.2.3備份優化191
14.2.4不同數據庫引擎備份的注意事項192
14.3MySQL數據庫的恢復192
14.3.1使用source命令193
14.3.2使用mysql命令193
14.4MySQL物理備份工具XtraBackup193
14.4.1什麼是XtraBackup193
14.4.2XtraBackup的特點194
14.4.3XtraBackup的備份過程194
14.4.4XtraBackup的增量備份195
14.4.5XtraBackup的恢復195
14.4.6XtraBackup的安裝環境195
14.4.7安裝XtraBackup196
14.4.8XtraBackup的命令介紹196
14.4.9XtraBackup全量備份與數據恢復197
14.4.10XtraBackup增量備份與數據恢復200
5章無人值守批量安裝操作繫統205
15.1PXE技術概述205
15.1.1什麼是PXE技術205
15.1.2PXE的工作過程205
15.2KickStart簡介206
15.3無人值守安裝準備207
15.3.1配置環境207
15.3.2配置HTTP服務207
15.3.3安裝與配置TFTP服務208
15.3.4安裝與配置DHCP服務209
15.4KickStart部署209
15.4.1配置PXE引導210
15.4.2修改客戶端配置文件210
15.4.3配置ks.cfg文件211
15.4.4客戶端無人值守安裝213
6章集群架構技術216
16.1集群概述217
16.1.1什麼是集群217
16.1.2集群架構的特性217
16.2集群的分類217
16.2.1負載均衡集群218
16.2.2高可用集群219
16.2.3常用集群軟硬件220
16.3企業集群架構迭代過程220
16.3.1初期架構220
16.3.2中期架構222
16.3.3終期架構223
7章Nginx負載均衡226
17.1負載均衡概述226
17.1.1為什麼要使用負載均衡226
17.1.2負載均衡簡介226
17.1.3負載均衡分類226
17.2Nginx負載均衡簡介227
17.3Nginx實現負載均衡的方式227
17.4Nginx負載均衡應用配置228
17.4.1環境準備228
17.4.2Nginx輪詢模式負載均衡配置228
17.4.3Nginx權重模式負載均衡配置229
17.4.4Nginxip_hash模式負載均衡配置231
17.4.5Nginx負載均衡模塊參數232
17.5Nginx的7層代理負載均衡233
17.5.1根據目錄實現動靜態分離234
17.5.2通過匹配擴展名實現動靜態分離235
8章LVS負載均衡237
18.1LVS服務概述237
18.1.1LVS服務簡介237
18.1.2LVS的發展與組成237
18.1.3LVS相關的術語237
18.1.4為什麼需要LVS238
18.2LVS的工作模式238
18.2.1網絡地址轉換模式238
18.2.2隧道模式239
18.2.3直接路由模式241
18.2.4FullNAT模式242
18.3LVS調度算法242
18.4LVS負載均衡部署244
18.4.1LVS服務DR模式部署244
18.4.2LVS服務NAT模式部署247
18.4.3LVS服務TUN模式部署249
18.5ipvsadm命令及參數介紹251
9章Keepalived高可用集群服務253
19.1高可用概述253
19.1.1什麼是高可用253
19.1.2如何構建高可用253
19.2Keepalived高可用服務254
19.2.1Keepalived服務介紹254
19.2.2Keepalived故障切換原理254
19.3Keepalived服務的部署與配置255
19.3.1部署環境255
19.3.2Keepalived服務的部署256
19.3.3Keepalived配置文件詳解257
19.3.4Keepalived實例配置258
第20章NoSQL數據庫服務的部署與管理264
20.1NoSQL數據庫簡介264
20.1.1什麼是NoSQL數據庫264
20.1.2NoSQL數據庫的分類264
20.1.3NoSQL數據庫的使用場景265
20.2Memcached服務的部署與配置265
20.2.1什麼是Memcached265
20.2.2Memcached的工作流程265
20.2.3Memcached的特性與應用場景266
20.2.4Memcached的部署與配置267
20.2.5Memcached操作命令268
20.3Redis服務的部署與配置270
20.3.1什麼是Redis270
20.3.2Redis的應用場景270
20.3.3Redis服務的部署271
20.3.4Redis服務的啟動與關閉271
20.3.5Redis的數據類型272
20.3.6Redis的管理命令275
20.3.7Redis事務與安全配置276
20.3.8Redis持久化、備份與恢復277
第21章JavaWeb應用服務器Tomcat服務280
21.1Tomcat服務概述280
21.1.1Tomcat服務簡介280
21.1.2Tomcat名稱的由來280
21.1.3Tomcat常用版本介紹280
21.2Tomcat服務的部署281
21.2.1環境準備281
21.2.2安裝和啟動Tomcat282
21.3Tomcat服務的配置283
21.3.1Tomcat目錄結構及功能283
21.3.2Tomcatserver.xml配置文件簡介284
21.3.3Tomcat核心組件285
21.3.4Tomcat日志切割286
21.4Tomcat性能優化287
21.4.1服務器繫統優化287
21.4.2網絡優化288
21.4.3服務自身優化289
21.4.4集群化291
第22章Zabbix監控服務293
22.1監控體繫概述293
22.1.1為什麼需要監控293
22.1.2監控目標與流程293
22.1.3監控的對像293
22.1.4監控工具295
22.2Zabbix簡介295
22.2.1什麼是Zabbix295
22.2.2Zabbix的功能296
22.2.3Zabbix的工作原理296
22.3Zabbix服務的部署與配置297
22.3.1部署環境297
22.3.2部署Zabbix297
22.3.3配置中文支持302
22.4Zabbix相關組件與概念303
22.4.1Zabbix的組件303
22.4.2Zabbix重要概念簡介303
22.5Zabbix監控實戰操作304
22.5.1Agent端的部署與配置304
22.5.2Web端添加被監控主機305
22.5.3繪制圖形展示306
22.5.4配置郵件報警通知310
第23章企業級數據庫監控服務
Lepus317
23.1Lepus概述317
23.1.1Lepus的由來317
23.1.2Lepus監控繫統簡介317
23.1.3Lepus的功能與特性317
23.1.4Lepus解決的難題318
23.2Lepus的部署319
23.2.1安裝環境要求319
23.2.2LAMP基礎環境安裝319
23.2.3Python基礎模塊安裝320
23.2.4Lepus采集器安裝321
23.2.5安裝Web管理端324
23.3Lepus配置管理實例326
23.3.1配置監控MySQL326
23.3.2配置監控OS328
第24章企業源代碼管理工具331
24.1常見的版本管理工具331
24.1.1VSS331
24.1.2CVS331
24.1.3SVN331
24.1.4Git331
24.2Git的安裝332
24.2.1安裝所需的依賴包332
24.2.2安裝Git332
24.3Git的工作流程與核心概念333
24.3.1Git的工作流程333
24.3.2Git的核心概念333
24.4Git的常用命令與基本操作333
24.4.1倉庫管理命令333
24.4.2分支管理命令334
24.4.3查看操作命令335
24.4.4其他命令336
24.5Git代碼服務器的搭建336
24.5.1Git協議336
24.5.2環境準備337
24.5.3搭建代碼管理服務器337
第25章Docker容器技術入門340
25.1Docker簡介340
25.1.1什麼是Docker340
25.1.2為什麼要使用Docker340
25.1.3Docker名詞術語341
25.2Docker的優點與應用場景342
25.2.1Docker的優點342
25.2.2Docker的應用場景342
25.3Docker的部署344
25.3.1Docker的部署要求344
25.3.2Docker的部署操作344
25.4Docker的網絡模式345
25.4.1host模式345
25.4.2container模式345
25.4.3none模式345
25.4.4bridge模式346
25.5Docker的數據存儲346
25.5.1數據卷346
25.5.2容器卷350
25.6Docker容器的管理351
25.6.1Docker容器的創建與刪除351
25.6.2進入與退出容器352
25.6.3Docker容器的運行353
25.6.4Docker容器常用管理命令353
第26章Docker鏡像倉庫的構建與鏡像管理365
26.1Docker私有倉庫簡介365
26.1.1什麼是私有倉庫365
26.1.2為什麼需要私有倉庫365
26.2構建Docker私有倉庫365
26.2.1部署環境365
26.2.2服務端部署366
26.2.3客戶端配置367
26.3私有鏡像倉庫測試367
26.3.1客戶端測試環境準備367
26.3.2上傳鏡像368
26.3.3鏡像368
26.4Dockerfile概述369
26.4.1什麼是Dockerfile369
26.4.2Dockerfile的組成369
26.4.3Dockerfile的指令分類370
26.4.4Dockerfile指令詳解370
26.5通過Dockerfile快速構建鏡像372
26.5.1編輯Dockerfile文件373
26.5.2構建過程373
26.5.3通過構建的鏡像啟動容器374
第27章Docker三劍客375
27.1DockerMachine375
27.1.1什麼是DockerMachine375
27.1.2Docker與DockerMachine的區別375
27.1.3安裝DockerMachine375
27.1.4DockerMachine命令幫助信息376
27.1.5DockerMachine命令詳解377
27.1.6DockerMachine命令實例操作377
27.1.7DockerMachine配置實戰380
27.2DockerCompose382
27.2.1什麼是DockerCompose382
27.2.2DockerCompose的工作流程382
27.2.3DockerCompose的部署383
27.2.4DockerCompose管理命令383
27.2.5DockerCompose的配置文件385
27.2.6運行DockerCompose配置文件386
27.2.7DockerCompose配置實戰387
27.3DockerSwarm391
27.3.1什麼是Swarm391
27.3.2Swarm集群版本391
27.3.3Swarm的核心概念391
27.3.4Swarm服務的運行部分391
27.3.5Swarm的調度策略392
27.3.6如何創建Swarm集群392
27.3.7DockerSwarm常用管理命令393
27.3.8Swarm集群的部署394
27.3.9DockerSwarm部署服務實戰401
第28章自動化運維工具SaltStack服務404
28.1SaltStack簡介404
28.1.1什麼是SaltStack404
28.1.2SaltStack的功能與工作方式404
28.2SaltStack的安裝與部署405
28.2.1部署環境405
28.2.2SaltStack的安裝405
28.3SaltStack認證配置407
28.3.1salt-key命令407
28.3.2配置認證407
28.4SaltStack功能介紹408
28.4.1SaltStack數據繫統408
28.4.2SaltStack文件繫統410
28.4.3SaltStack遠程執行411
28.4.4SaltStack配置管理414
28.5SaltStack的Job管理416
28.5.1Job簡介416
28.5.2Job的基本管理417
架構運用篇
第29章MySQL性能優化及主從同步架構實踐421
29.1數據庫優化421
29.1.1硬件性能優化421
29.1.2配置文件優化421
29.2MySQL主從同步概述423
29.2.1為什麼需要主從同步架構423
29.2.2MySQL主從同步的原理424
29.3MySQL主從同步架構實踐424
29.3.1環境準備424
29.3.2配置MySQL主從同步425
29.3.3驗證MySQL主從同步428
29.3.4MySQL主從同步常見故障的處理429
第30章MySQL高可用集群與讀寫分離架構實踐430
30.1MySQL高可用架構概述430
30.1.1主從架構430
30.1.2MySQLDRBD架構431
30.1.3MySQLMHA架構431
30.1.4MySQLMMM架構432
30.1.5MySQLCluster架構433
30.2MHA軟件概述433
30.2.1MHA簡介433
30.2.2MHA相關工具434
30.3MHA高可用的部署與配置434
30.3.1環境準備435
30.3.2配置SSH免密登錄436
30.3.3部署MHA軟件437
30.3.4MHA高可用方案配置437
30.3.5測試MHA故障切換440
30.3.6解決實際生產場景問題441
30.4MySQL讀寫分離架構實踐442
30.4.1什麼是讀寫分離443
30.4.2讀寫分離實現的方式443
30.4.3讀寫分離工具Atlas簡介443
30.4.4Atlas的部署與配置444
第31章搭建企業日志分析平臺449
31.1日志概述449
31.1.1日志分類449
31.1.2日志級別449
31.2ELK日志繫統449
31.2.1ELK日志繫統簡介450
31.2.2ELK日志繫統的部署450
31.2.3收集繫統日志並展示效果453
31.3配置Kibana登錄認證455
第32章Linux服務器集群架構案例實踐457
32.1LVS+Keepalived集群實踐457
32.1.1部署環境457
32.1.2配置Keepalived457
32.1.3啟動服務並測試458
32.1.4測試故障切換460
32.2Nginx+Keepalived集群實踐460
32.2.1Keepalived與Nginx配置460
32.2.2Nginx+Keepalived雙主企業架構實踐463
第33章數據備份與運維管理467
33.1數據備份概述467
33.2企業常用的數據備份方法與實踐468
33.2.1企業常用的數據備份方法468
33.2.2數據備份實踐操作468
33.3運維管理470
33.3.1日常運維470
33.3.2數據運維471
33.3.3安全運維471
內容簡介
本書繫統全面、由淺入深地介紹了Linux繫統運維的知識,以及在企業實際環境中用到的各類服務、架構和運維管理。本書分基礎篇、LAMP/LNMP架構篇、應用服務篇和架構運用篇。基礎篇詳細介紹Linux繫統的基礎知識,LAMP/LNMP架構篇介紹時下企業中很常見的兩種架構的部署與配置,應用服務篇以企業實際運維環境為出發點詳細介紹當下企業用到的各類開源軟件服務,架構運用篇對前三篇的知識進行總結,並結合企業的實際場景加以實踐。
本書既適合在Linux繫統運維方面零基礎的技術人員閱讀,也適合初、中級運維工程師和網絡工程師學習使用。