Linux 系統運維指南:從入門到企業實戰
內容描述
本書系統全面、由淺入深地介紹了Linux系統運維的知識,
以及在企業實際環境中用到的各類服務、架構和運維管理。
本書分基礎篇、LAMP/LNMP架構篇、應用服務篇和架構運用篇。
基礎篇詳細介紹Linux系統的基礎知識,LAMP/LNMP架構篇介紹時下企業中*常見的兩種架構的部署與配置,
應用服務篇以企業實際運維環境為出發
目錄大綱
目錄:
基礎篇
第1章操作系統的安裝與基礎配置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.2 Linux系統的重要文件21
2.2.1網卡配置文件21
2.2.2 DNS配置文件22
2.2.3系統hosts文件22
2.2.4主機名配置文件23
2.2.5 fstab文件23
2.2.6 rc.local文件23
2.2. 7全局環境變量配置文件24
2.2.8定時任務配置文件24
2.2.9用戶相關的配置文件25
第3章新手*備的系統基礎命令26
3.1系統管理命令26
3.1.1 man命令26
3.1.2 ls命令26
3.1.3 cd命令27
3.1.4 useradd命令28
3.1.5 passwd命令28
3.1.6 free命令29
3.1.7 whoami命令30
3.1.8 ps命令30
3.1.9 date命令31
3.1.10 pwd命令33
3.1. 11 shutdown命令33
3.2文件目錄管理命令34
3.2.1 touch命令34
3.2.2 cat命令35
3.2.3 mkdir命令36
3.2.4 rm命令37
3.2.5 cp命令37
3.2.6 mv命令38
3.2.7 find命令39
3.3文件壓縮與解壓命令40
3.3.1 tar命令40
3.3.2 zip命令41
3.3.3 unzip命令42
3.4磁盤管理命令43
3.4.1 df命令43
3.4.2 du命令44
3.4.3 fdisk命令44
3.4.4 mount命令45
3.5網絡管理命令46
3.5.1 ping命令46
3.5.2 wget命令46
3.5.3 telnet命令47
3.5.4 netstat命令47
3.5.5 curl命令49
3.5.6 ss命令49
3.6系統性能管理命令51
3.6.1 uptime命令51
3.6. 2 top命令51
3.6.3 iostat命令53
3.6.4 ifstat命令55
3.6.5 lsof命令55
3.6.6 time命令57
3.7軟件包管理命令57
3.7.1 yum命令57
3.7.2 rpm命令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.2 umask值與默認權限的關係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.1 fdisk分區工具69
5.4.2 parted分區工具70
5.5 RAID技術概述71
5.5.1 RAID的定義71
5.5.2 RAID的級別與分類72
5.5.3 RAID的優點72
5.5.4常用RAID對比72
第6章正則表達式與vim編輯器的使用73
6.1什麼是正則表達式73
6.2字符73
6.3文本處理命令74
6.3.1 grep命令74
6.3.2 sed命令74
6.3.3 awk命令75
6.4正則表達式使用示例75
6.5 vim編輯器75
6.5.1什麼是vim編輯器75
6.5.2 vim編輯器的3種模式76
6.6 vim編輯的操作76
6.6.1光標的移動方法76
6.6.2搜索與查找76
6.6.3刪除、複製與粘貼77
6.6.4保存與退出77
LAMP/LNMP架構篇
第7章Apache的安裝與配置81
7.1 Apache概述81
7.1 .1什麼是Apache 81
7.1.2 Apache的應用場景81
7.2安裝Apache 81
7.2.1安裝環境準備81
7.2.2 Apache的安裝過程82
7.3 Apache的目錄結構與配置文件84
7.3.1 Apache的目錄結構與作用85
7.3.2 Apache的主配置文件86
7.3.3 Apache的日誌格式與日誌切割86
7.4配置Apache的虛擬主機88
7.4.1配置基於域名的虛擬主機88
7.4.2配置基於端口的虛擬主機90
7.5 Apache的優化配置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.1 MySQL概述96
8.1.1 MySQL簡介96
8.1 .2 MySQL版本96
8.2 MySQL的部署過程96
8.2.1 MySQL常見的安裝方式96
8.2.2 MySQL的安裝與部署97
8.3 MySQL的目錄結構與配置文件99
8.3.1 MySQL的目錄結構99
8.3.2 MySQL的配置文件99
8.4 PHP的安裝與配置100
8.4.1準備安裝環境100
8.4.2 PHP的安裝過程101
8.4.3配置Apache支持PHP程序103
8.4.4測試配置104
8.4.5 PHP目錄105
第9章Nginx的安裝與配置107
9.1 Nginx概述107
9.1.1什麼是Nginx 107
9.1.2 Nginx的功能107
9.1.3 Nginx的優點107
9.2安裝Nginx 108
9.2.1準備安裝環境108
9.2.2安裝依賴庫109
9.2.3編譯和安裝Nginx 109
9.3配置Nginx支持PHP程序111
9.3.1修改配置文件111
9.3.2啟動服務並檢查112
9.4 Nginx目錄與配置文件114
9.4.1 Nginx目錄結構及其說明114
9.4.2 Nginx的配置文件簡介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配置Nginx gzip壓縮功能123
9.6.5配置expires緩存功能124
9.6.6優化Nginx錯誤頁面125
第10章使用WordPress搭建自己的博客站點127
10.1安裝環境127
10.1.1系統環境127
10.1.2軟件環境127
10.2準備工作128
10.2.1下載WordPress軟件128
10.2.2配置Nginx虛擬主機128
10.2.3創建WordPress數據庫129
10.3搭建WordPress博客站點129
10.3.1複製站點文件並授權129
10.3.2安裝和配置WordPress 130
應用服務篇
第11章Linux系統登錄與管理139
11.1 SSH服務概述139
11.1.1什麼是SSH服務139
11.1.2 SSH服務的認證類型139
11.2 SSH服務的操作140
11.2.1 SSH服務的安裝與啟動140
11.2.2 SSH相關操作命令141
11.3 SSH免密登錄實戰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.2 crond命令144
11.4.3系統定時任務145
11.4.4定時任務的書寫與配置146
11.5服務器權限管理146
11.5.1 sudo介紹146
11.5.2 /etc/sudoers配置文件147
11.5.3編輯配置文件規範149
第12章網絡文件系統(NFS)與數據同步151
12.1網絡文件系統簡介151
12.1.1什麼是網絡文件系統151
12.1.2 NFS實現過程151
12.2 NFS的安裝與部署152
12.2.1 NFS服務端的部署152
12.2.2 NFS客戶端的部署154
12.2.3客戶端安全配置156
12.3 NFS客戶端掛載優化157
12.3.1掛載參數157
12.3.2優化實例測試157
12.4 rsync數據同步服務158
12.4.1 rsync服務簡介158
12.4.2 rsync服務的安裝與操作命令159
12.4.3 rsync數據同步實戰操作160
12.5 sersync數據同步服務162
12.5.1 sersync服務簡介162
12.5.2 sersync服務的工作過程163
12.5.3 sersync服務的安裝準備163
12.5.4安裝配置sersync服務164
12.5.5啟動sersync服務166
12.5.6測試數據同步167
第13章MySQL服務常用管理169
13.1 MySQL的基礎管理操作169
13.1.1 MySQL服務的啟動與停止169
13.1.2 MySQL服務的登錄和退出169
13.1.3 MySQL服務密碼修改與找回171
13.2 MySQL數據庫常用管理操作172
13.2.1創建、刪除數據庫173
13.2.2連接數據庫174
13.2.3創建與刪除用戶174
13.2.4權限管理176
13.3 MySQL數據庫表管理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
第14章MySQL數據庫的備份與恢復187
14.1數據庫備份概述187
14.1.1全量與增量備份187
14.1.2數據庫備份方法188
14.2 MySQL數據庫備份操作188
14.2.1庫備份188
14.2.2數據庫表和表結構備份191
14.2.3備份優化191
14.2.4不同數據庫引擎備份的注意事項192
14.3 MySQL數據庫的恢復192
14.3.1使用source命令193
14.3.2使用mysql命令193
14.4 MySQL物理備份工具XtraBackup 193
14.4.1什麼是XtraBackup 193
14.4.2 XtraBackup的特點194
14.4.3 XtraBackup的備份過程194
14.4.4 XtraBackup的增量備份195
14.4.5 XtraBackup的恢復195
14.4.6 XtraBackup的安裝環境195
14.4.7安裝XtraBackup 196
14.4.8 XtraBackup的命令介紹196
14.4.9 XtraBackup全量備份與數據恢復197
14.4.10 XtraBackup增量備份與數據恢復200
第15章無人值守批量安裝操作系統205
15.1 PXE技術概述205
15.1.1什麼是PXE技術205
15.1.2 PXE的工作過程205
15.2 KickStart簡介206
15.3無人值守安裝準備207
15.3.1配置環境207
15.3.2配置HTTP服務207
15.3.3安裝與配置TFTP服務208
15.3.4安裝與配置DHCP服務209
15.4 KickStart部署209
15.4.1配置PXE引導210
15.4.2修改客戶端配置文件210
15.4.3配置ks.cfg文件211
15.4.4客戶端無人值守安裝213
第16章集群架構技術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
第17章Nginx負載均衡226
17.1負載均衡概述226
17.1.1為什麼要使用負載均衡226
17.1.2負載均衡簡介226
17.1.3負載均衡分類226
17.2 Nginx負載均衡簡介227
17.3 Nginx實現負載均衡的方式227
17.4 Nginx負載均衡應用配置228
17.4.1環境準備228
17.4.2 Nginx輪詢模式負載均衡配置228
17.4.3 Nginx權重模式負載均衡配置229
17.4.4 Nginx ip_hash模式負載均衡配置231
17.4.5 Nginx負載均衡模塊參數232
17.5 Nginx的7層代理負載均衡233
17.5.1根據目錄實現動靜態分離234
17.5.2通過匹配擴展名實現動靜態分離235
第18章LVS負載均衡237
18.1 LVS服務概述237
18.1.1 LVS服務簡介237
18.1.2 LVS的發展與組成237
18.1.3 LVS相關的術語237
18.1. 4為什麼需要LVS 238
18.2 LVS的工作模式238
18.2.1網絡地址轉換模式238
18.2.2隧道模式239
18.2.3直接路由模式241
18.2.4 Full NAT模式242
18.3 LVS調度算法242
18.4 LVS負載均衡部署244
18.4.1 LVS服務DR模式部署244
18.4.2 LVS服務NAT模式部署247
18.4.3 LVS服務TUN模式部署249
18.5 ipvsadm命令及參數介紹251
第19章Keepalived高可用集群服務253
19.1高可用概述253
19.1. 1什麼是高可用253
19.1.2如何構建高可用253
19.2 Keepalived高可用服務254
19.2.1 Keepalived服務介紹254
19.2.2 Keepalived故障切換原理254
19.3 Keepalived服務的部署與配置255
19.3.1部署環境255
19.3.2 Keepalived服務的部署256
19.3.3 Keepalived配置文件詳解257
19.3.4 Keepalived實例配置258
第20章NoSQL數據庫服務的部署與管理264
20.1 NoSQL數據庫簡介264
20.1.1什麼是NoSQL數據庫264
20.1.2 NoSQL數據庫的分類264
20.1.3 NoSQL數據庫的使用場景265
20.2 Memcached服務的部署與配置265
20.2.1什麼是Memcached 265
20.2.2 Memcached的工作流程265
20.2.3 Memcached的特性與應用場景266
20.2.4 Memcached的部署與配置267
20.2.5 Memcached操作命令268
20.3 Redis服務的部署與配置270
20.3.1什麼是Redis 270
20.3.2 Redis的應用場景270
20.3.3 Redis服務的部署271
20.3.4 Redis服務的啟動與關閉271
20.3.5 Redis的數據類型272
20.3.6 Redis的管理命令275
20.3.7 Redis事務與安全配置276
20.3.8 Redis持久化、備份與恢復277
第21章Java Web應用服務器Tomcat服務280
21.1 Tomcat服務概述280
21.1.1 Tomcat服務簡介280
21.1.2 Tomcat名稱的由來280
21.1.3 Tomcat常用版本介紹280
21.2 Tomcat服務的部署281
21.2.1環境準備281
21.2.2安裝和啟動Tomcat 282
21.3 Tomcat服務的配置283
21.3.1 Tomcat目錄結構及功能283
21.3.2 Tomcat server.xml配置文件簡介284
21.3.3 Tomcat核心組件285
21.3.4 Tomcat日誌切割286
21.4 Tomcat性能優化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.2 Zabbix簡介295
22.2.1什麼是Zabbix 295
22.2.2 Zabbix的功能296
22.2.3 Zabbix的工作原理296
22.3 Zabbix服務的部署與配置297
22.3.1部署環境297
22.3.2部署Zabbix 297
22.3.3配置中文支持302
22.4 Zabbix相關組件與概念303
22.4.1 Zabbix的組件303
22.4.2 Zabbix重要概念簡介303
22.5 Zabbix監控實戰操作304
22.5.1 Agent端的部署與配置304
22.5.2 Web端添加被監控主機305
22.5.3繪製圖形展示306
22.5.4配置郵件報警通知310
第23章企業級數據庫監控服務Lepus 317
23.1 Lepus概述317
23.1.1 Lepus的由來317
23.1.2 Lepus監控系統簡介317
23.1.3 Lepus的功能與特性317
23.1.4 Lepus解決的難題318
23.2 Lepus的部署319
23.2.1安裝環境要求319
23.2. 2 LAMP基礎環境安裝319
23.2.3 Python基礎模塊安裝320
23.2.4 Lepus採集器安裝321
23.2.5安裝Web管理端324
23.3 Lepus配置管理實例326
23.3.1配置監控MySQL 326
23.3.2配置監控OS 328
第24章企業源代碼管理工具331
24.1常見的版本管理工具331
24.1.1 VSS 331
24.1.2 CVS 331
24.1.3 SVN 331
24.1.4 Git 331
24.2 Git的安裝332
24.2.1安裝所需的依賴包332
24.2.2安裝Git 332
24.3 Git的工作流程與核心概念333
24.3.1 Git的工作流程333
24.3.2 Git的核心概念333
24.4 Git的常用命令與基本操作333
24.4.1倉庫管理命令333
24.4.2分支管理命令334
24.4.3查看操作命令335
24.4.4其他命令336
24.5 Git代碼服務器的搭建336
24.5.1 Git協議336
24.5.2環境準備337
24.5.3搭建代碼管理服務器337
第25章Docker容器技術入門340
25.1 Docker簡介340
25.1.1什麼是Docker 340
25.1.2為什麼要使用Docker 340
25.1. 3 Docker名詞術語341
25.2 Docker的優點與應用場景342
25.2.1 Docker的優點342
25.2.2 Docker的應用場景342
25.3 Docker的部署344
25.3.1 Docker的部署要求344
25.3.2 Docker的部署操作344
25.4 Docker的網絡模式345
25.4.1 host模式345
25.4.2 container模式345
25.4.3 none模式345
25.4.4 bridge模式346
25.5 Docker的數據存儲346
25.5.1數據卷346
25.5.2容器卷350
25.6 Docker容器的管理351
25.6.1 Docker容器的創建與刪除351
25.6.2進入與退出容器352
25.6.3 Docker容器的運行353
25.6.4 Docker容器常用管理
命令353
第26章Docker鏡像倉庫的構建與鏡像管理365
26.1 Docker私有倉庫簡介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.4 Dockerfile概述369
26.4.1什麼是Dockerfile 369
26.4.2 Dockerfile的組成369
26.4.3 Dockerfile的指令分類370
26.4.4 Dockerfile指令詳解370
26.5通過Dockerfile快速構建鏡像372
26.5.1編輯Dockerfile文件373
26.5.2構建過程373
26.5 .3通過構建的鏡像啟動容器374
第27章Docker三劍客375
27.1 Docker Machine 375
27.1.1什麼是Docker Machine 375
27.1.2 Docker與Docker Machine的區別375
27.1.3安裝Docker Machine 375
27.1.4 Docker Machine命令幫助信息376
27.1.5 Docker Machine命令詳解377
27.1.6 Docker Machine命令實例操作377
27.1.7 Docker Machine配置實戰380
27.2 Docker Compose 382
27.2.1什麼是Docker Compose 382
27.2.2 Docker Compose的工作流程382
27.2.3 Docker Compose的部署383
27.2.4 Docker Compose管理命令383
27.2.5 Docker Compose的配置文件385
27.2.6運行Docker Compose配置文件386
27.2.7 Docker Compose配置實戰387
27.3 Docker Swarm 391
27.3.1什麼是Swarm 391
27.3.2 Swarm集群版本391
27.3.3 Swarm的核心概念391
27.3.4 Swarm服務的運行部分391
27.3.5 Swarm的調度策略392
27.3.6如何創建Swarm集群392
27.3.7 Docker Swarm常用管理命令393
27.3.8 Swarm集群的部署394
27.3.9 Docker Swarm部署服務實戰401
第28章自動化運維工具SaltStack服務404
28.1 SaltStack簡介404
28.1.1什麼是SaltStack 404
28.1.2 SaltStack的功能與工作方式404
28.2 SaltStack的安裝與部署405
28.2.1部署環境405
28.2.2 SaltStack的安裝405
28.3 SaltStack認證配置407
28.3.1 salt-key命令407
28.3.2配置認證407
28.4 SaltStack功能介紹408
28.4.1 SaltStack數據系統408
28.4.2 SaltStack文件系統410
28.4.3 SaltStack遠程執行411
28.4.4 SaltStack配置管理414
28.5 SaltStack的Job管理416
28.5.1 Job簡介416
28.5.2 Job的基本管理417
架構運用篇
第29章MySQL性能優化及主從同步架構實踐421
29.1數據庫優化421
29.1 .1硬件性能優化421
29.1.2配置文件優化421
29.2 MySQL主從同步概述423
29.2.1為什麼需要主從同步架構423
29.2.2 MySQL主從同步的原理424
29.3 MySQL主從同步架構實踐424
29.3. 1環境準備424
29.3.2配置MySQL主從同步425
29.3.3驗證MySQL主從同步428
29.3.4 MySQL主從同步常見故障的處理429
第30章MySQL高可用集群與讀寫分離架構實踐430
30.1 MySQL高可用架構概述430
30.1.1主從架構430
30.1 .2 MySQL DRBD架構431
30.1.3 MySQL MHA架構431
30.1.4 MySQL MMM架構432
30.1.5 MySQL Cluster架構433
30.2 MHA軟件概述433
30.2.1 MHA簡介433
30.2.2 MHA相關工具434
30.3 MHA高可用的部署與配置434
30.3.1環境準備435
30.3.2配置SSH免密登錄436
30.3.3部署MHA軟件437
30.3.4 MHA高可用方案配置437
30.3.5測試MHA故障切換440
30.3.6解決實際生產場景問題441
30.4 MySQL讀寫分離架構實踐442
30.4.1什麼是讀寫分離443
30.4.2讀寫分離實現的方式443
30.4.3讀寫分離工具Atlas簡介443
30.4.4 Atlas的部署與配置444
第31章搭建企業日誌分析平台449
31.1日誌概述449
31.1.1日誌分類449
31.1.2日誌級別449
31.2 ELK日誌系統449
31.2.1 ELK日誌系統簡介450
31.2.2 ELK日誌系統的部署450
31.2.3收集系統日誌並展示效果453
31.3配置Kibana登錄認證455
第32章Linux服務器集群架構案例實踐457
32.1 LVS+Keepalived集群實踐457
32.1.1部署環境457
32.1.2配置Keepalived 457
32.1.3啟動服務並測試458
32.1.4測試故障切換460
32.2 Nginx+Keepalived集群實踐460
32.2.1 Keepalived與Nginx配置460
32.2.2 Nginx+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
作者介紹
儲成友(民工哥)
互聯網開源技術愛好者,擁有十餘年IT從業經歷,
在企業信息化建設與系統運維方面經驗豐富,
專注於系統架構、高可用、高性能、高並發、數據庫等開源技術,
擅長企業信息化項目建設、運維架構設計與實施。