高性能Linux服務(wù)器運(yùn)維實(shí)戰(zhàn):shell編程、監(jiān)控告警、性能優(yōu)化與實(shí)戰(zhàn)案例
定 價(jià):145 元
叢書名:Linux技術(shù)與應(yīng)用叢書
- 作者:高俊峰 編著
- 出版時(shí)間:2020/6/1
- ISBN:9787111655497
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:488
- 紙張:膠版紙
- 版次:1
- 開本:16K
《高性能Linux服務(wù)器運(yùn)維實(shí)戰(zhàn):shell編程、監(jiān)控告警、性能優(yōu)化與實(shí)戰(zhàn)案例》以Linux運(yùn)維平臺(tái)下的開源應(yīng)用軟件為中心,涉及Linux運(yùn)維的各個(gè)方面,主要從系統(tǒng)基礎(chǔ)運(yùn)維、系統(tǒng)性能調(diào)優(yōu)、智能運(yùn)維監(jiān)控、運(yùn)維實(shí)戰(zhàn)案例4個(gè)方面展開介紹。本書貫穿實(shí)戰(zhàn)、實(shí)用、通俗、易懂的特點(diǎn),在內(nèi)容上注重實(shí)戰(zhàn)化,通過(guò)真實(shí)的生產(chǎn)環(huán)境從多個(gè)方面介紹運(yùn)維工作中的方方面面。通過(guò)真實(shí)案例的學(xué)習(xí),可以使讀者深入地掌握Linux運(yùn)維技術(shù)的各種經(jīng)驗(yàn)和技巧,從而真正提高企業(yè)的實(shí)戰(zhàn)能力。
全書貫穿了由點(diǎn)及線、由線及面的學(xué)習(xí)方法,既可以滿足初學(xué)者參考學(xué)習(xí),也可以幫助有一定基礎(chǔ)的中高級(jí)Linux運(yùn)維管理人員進(jìn)階,使不同層次的讀者都能從本書受益。
目 錄
前言
第1篇 系統(tǒng)基礎(chǔ)運(yùn)維篇
第1章 Linux基礎(chǔ)命令的使用
1.1 Linux命令行與shell
1.1.1 命令是Linux的精髓
1.1.2 用戶和操作系統(tǒng)內(nèi)核之間通信的橋梁shell
1.1.3 shell命令行的格式以及如何使用
1.1.4 shell中常用通配符的使用
1.1.5 shell的輸入、輸出和錯(cuò)誤重定向
1.1.6 shell中的管道如何使用
1.1.7 shell中3種引用字符如何使用
1.2 基礎(chǔ)運(yùn)維類命令
1.2.1 如何對(duì)文件打包、壓縮與解壓縮
1.2.2 如何快速查找、搜索文件
1.2.3 如何對(duì)文件進(jìn)行連接、合并、排序、去重
1.3 系統(tǒng)運(yùn)維監(jiān)控類命令
1.3.1 查詢當(dāng)前整個(gè)系統(tǒng)每個(gè)進(jìn)程的線程數(shù)
1.3.2 如何檢測(cè)系統(tǒng)中的僵尸進(jìn)程并將其kill
1.3.3 如何查看當(dāng)前占用CPU或內(nèi)存最多的幾個(gè)進(jìn)程
1.4 網(wǎng)絡(luò)故障排查類命令
1.4.1 命令行下載工具wget命令
1.4.2 強(qiáng)大的HTTP命令行工具curl
1.4.3 Linux系統(tǒng)之間文件傳輸工具scp命令
1.4.4 動(dòng)態(tài)路由追蹤及網(wǎng)絡(luò)故障排查工具mtr命令
第2章 shell實(shí)戰(zhàn)編程與應(yīng)用案例
2.1 正則表達(dá)式與變量
2.1.1 正則表達(dá)式的組成與應(yīng)用
2.1.2 shell中的變量與應(yīng)用
2.1.3 變量測(cè)試、截取與替換
2.2 運(yùn)算符、測(cè)試操作符以及if語(yǔ)句
2.2.1 算數(shù)運(yùn)算符
2.2.2 條件測(cè)試與條件測(cè)試操作符
2.2.3 if/else判斷結(jié)構(gòu)
2.3 case選擇、for循環(huán)與結(jié)構(gòu)化命令
2.3.1 case選擇語(yǔ)法與應(yīng)用舉例
2.3.2 for循環(huán)與結(jié)構(gòu)化命令
2.4 while循環(huán)、until循環(huán)以及select循環(huán)
2.4.1 while循環(huán)結(jié)構(gòu)
2.4.2 until循環(huán)語(yǔ)句以及應(yīng)用舉例
2.4.3 exit和sleep的應(yīng)用環(huán)境與方法
2.4.4 select循環(huán)與菜單應(yīng)用
2.5 函數(shù)以及函數(shù)的調(diào)用、參數(shù)的傳遞
2.5.1 函數(shù)的概念
2.5.2 函數(shù)定義與語(yǔ)法
2.5.3 函數(shù)的調(diào)用、存儲(chǔ)和顯示
2.5.4 函數(shù)與變量以及函數(shù)結(jié)果與返回值
2.6 企業(yè)生產(chǎn)環(huán)境shell腳本案例匯總
2.6.1 統(tǒng)計(jì)Linux進(jìn)程相關(guān)數(shù)量信息腳本
2.6.2 監(jiān)控主機(jī)的磁盤空間腳本
2.6.3 批量自動(dòng)創(chuàng)建用戶腳本
2.6.4 服務(wù)器狀態(tài)監(jiān)控腳本
2.6.5 Linux加固系統(tǒng)的自動(dòng)化配置腳本
2.6.6 檢測(cè)MySQL服務(wù)狀態(tài)腳本
2.6.7 備份MySQL腳本
2.6.8 一鍵自動(dòng)化安裝Nginx腳本
2.6.9 查找指定網(wǎng)段活躍IP腳本
2.6.10 監(jiān)控網(wǎng)站頁(yè)面是否正常訪問(wèn)腳本
第3章 Linux系統(tǒng)運(yùn)維深入實(shí)踐
3.1 Linux用戶權(quán)限管理
3.1.1 用戶與用戶組管理
3.1.2 添加、切換和刪除用戶組命令groupadd/newgrp/groupdel
3.1.3 添加、修改和刪除用戶命令useradd/usermod/userdel
3.1.4 文件的權(quán)限屬性解讀
3.1.5 利用chown改變屬主和屬組
3.1.6 利用chmod改變?cè)L問(wèn)權(quán)限
3.2 Linux磁盤存儲(chǔ)管理
3.2.1 磁盤設(shè)備在Linux下的表示方法
3.2.2 UEFI、BIOS和MBR、GPT之間的關(guān)系
3.2.3 利用fdisk工具劃分磁盤分區(qū)
3.2.4 利用parted工具劃分磁盤分區(qū)
3.3 Linux文件系統(tǒng)管理
3.3.1 線上業(yè)務(wù)系統(tǒng)選擇文件系統(tǒng)標(biāo)準(zhǔn)
3.3.2 網(wǎng)絡(luò)文件系統(tǒng)(NFS)介紹
3.3.3 NFS的安裝與配置
3.4 Linux進(jìn)程管理與監(jiān)控
3.4.1 進(jìn)程的分類與狀態(tài)
3.4.2 進(jìn)程的監(jiān)控與管理
3.4.3 任務(wù)調(diào)度進(jìn)程crond的使用
3.4.4 如何關(guān)閉進(jìn)程
第2篇 系統(tǒng)性能調(diào)優(yōu)篇
第4章 性能調(diào)優(yōu)必備工具與技能
4.1 Linux系統(tǒng)性能指標(biāo)有哪些
4.1.1 進(jìn)程指標(biāo)
4.1.2 內(nèi)存指標(biāo)
4.1.3 文件系統(tǒng)指標(biāo)
4.1.4 磁盤I/O指標(biāo)
4.1.5 網(wǎng)絡(luò)指標(biāo)
4.2 性能調(diào)優(yōu)必備工具
4.2.1 CPU性能調(diào)優(yōu)工具
4.2.2 內(nèi)存性能調(diào)優(yōu)工具
4.2.3 磁盤性能調(diào)優(yōu)工具
4.2.4 網(wǎng)絡(luò)性能調(diào)優(yōu)工具
4.2.5 系統(tǒng)性能綜合調(diào)優(yōu)工具
4.3 分析并發(fā)現(xiàn)系統(tǒng)性能瓶頸
4.3.1 如何找到CPU瓶頸
4.3.2 如何找到內(nèi)存瓶頸
4.3.3 如何找到磁盤瓶頸
4.3.4 如何找到網(wǎng)絡(luò)瓶頸
第5章 系統(tǒng)性能調(diào)優(yōu)實(shí)施細(xì)則
5.1 從安裝Linux系統(tǒng)開始進(jìn)行調(diào)優(yōu)
5.1.1 系統(tǒng)基礎(chǔ)配置與調(diào)優(yōu)
5.1.2 系統(tǒng)安全與防護(hù)機(jī)制
5.2 Linux內(nèi)核參數(shù)調(diào)優(yōu)
5.2.1 Linux內(nèi)核文件系統(tǒng)
5.2.2 內(nèi)核參數(shù)優(yōu)化
5.2.3 網(wǎng)絡(luò)內(nèi)核參數(shù)優(yōu)化
5.2.4 系統(tǒng)Kernel參數(shù)優(yōu)化
5.2.5 內(nèi)存內(nèi)核參數(shù)優(yōu)化
5.2.6 文件系統(tǒng)內(nèi)核參數(shù)優(yōu)化
5.3 內(nèi)存資源(物理內(nèi)存/虛擬內(nèi)存)性能調(diào)優(yōu)
5.3.1 Linux內(nèi)存中Cache與Buffer
5.3.2 Page Cache與Buffer Cache機(jī)制
5.3.3 free命令中buffers和cached
5.3.4 Page Cache優(yōu)化措施以及Cache回收
5.3.5 Swap的使用與優(yōu)化
5.4 磁盤I/O與文件系統(tǒng)方面的性能調(diào)優(yōu)
5.4.1 磁盤I/O性能調(diào)優(yōu)實(shí)踐
5.4.2 文件系統(tǒng)性能優(yōu)化措施
第3篇 智能運(yùn)維監(jiān)控篇
第6章 運(yùn)維監(jiān)控利器Zabbix
6.1 運(yùn)維監(jiān)控平臺(tái)選型以及設(shè)計(jì)思路
6.1.1 常見(jiàn)的運(yùn)維監(jiān)控工具
6.1.2 運(yùn)維監(jiān)控平臺(tái)設(shè)計(jì)思路
6.1.3 企業(yè)運(yùn)維監(jiān)控平臺(tái)選型策略
6.1.4 運(yùn)維監(jiān)控平臺(tái)演變歷程
6.2 Zabbix運(yùn)維監(jiān)控平臺(tái)部署過(guò)程
6.2.1 Zabbix運(yùn)行架構(gòu)
6.2.2 安裝、部署Zabbix監(jiān)控平臺(tái)
6.3 Zabbix Web配置實(shí)戰(zhàn)講解
6.3.1 模板的管理與使用
6.3.2 創(chuàng)建應(yīng)用集
6.3.3 創(chuàng)建監(jiān)控項(xiàng)
6.3.4 創(chuàng)建觸發(fā)器
6.3.5 創(chuàng)建主機(jī)組和主機(jī)
6.3.6 觸發(fā)器動(dòng)作配置
6.3.7 報(bào)警媒介類型配置
6.3.8 監(jiān)控狀態(tài)查看
6.4 Zabbix自動(dòng)發(fā)現(xiàn)、自動(dòng)注冊(cè)和自定義監(jiān)控的實(shí)現(xiàn)
6.4.1 Zabbix的自動(dòng)網(wǎng)絡(luò)發(fā)現(xiàn)
6.4.2 主動(dòng)客戶端自動(dòng)注冊(cè)
6.4.3 低級(jí)別發(fā)現(xiàn)Low-level discovery(LLD)
6.4.4 Zabbix自定義監(jiān)控項(xiàng)
6.4.5 Zabbix的主動(dòng)模式與被動(dòng)模式
6.5 Zabbix監(jiān)控MySQL、Apache、Nginx應(yīng)用實(shí)戰(zhàn)案例
6.5.1 Zabbix監(jiān)控MySQL應(yīng)用實(shí)戰(zhàn)
6.5.2 Zabbix監(jiān)控Apache應(yīng)用實(shí)戰(zhàn)
6.5.3 Zabbix監(jiān)控Nginx應(yīng)用實(shí)戰(zhàn)
6.6 Zabbix監(jiān)控PHP-FTPM、Tomcat、Redis應(yīng)用實(shí)戰(zhàn)案例
6.6.1 Zabbix 監(jiān)控 PHP-FPM應(yīng)用實(shí)戰(zhàn)
6.6.2 Zabbix監(jiān)控Tomcat應(yīng)用實(shí)戰(zhàn)
6.6.3 Zabbix監(jiān)控Redis實(shí)例應(yīng)用實(shí)戰(zhàn)
6.7 Zabbix通過(guò)與微信、釘釘整合實(shí)現(xiàn)實(shí)時(shí)告警
6.7.1 Zabbix整合微信實(shí)現(xiàn)實(shí)時(shí)告警
6.7.2 Zabbix整合釘釘實(shí)現(xiàn)實(shí)時(shí)告警
第7章 Prometheus監(jiān)控與Grafana可視化平臺(tái)
7.1 基于服務(wù)的開源監(jiān)控Prometheus
7.1.1 Prometheus簡(jiǎn)介
7.1.2 Prometheus 的組件與架構(gòu)
7.1.3 Prometheus的安裝和配置
7.1.4 Node Exporter的功能介紹與安裝配置
7.1.5 Alertmanager的安裝和配置
7.1.6 Prometheus告警功能演示
7.2 Grafana+Zabbix+Prometheus打造全方位立體監(jiān)控系統(tǒng)
7.2.1 Grafana的基礎(chǔ)知識(shí)
7.2.2 Grafana的安裝與配置
7.2.3 Grafana與Zabbix整合提升運(yùn)維監(jiān)控檔次
7.2.4 Prometheus與Grafana整合應(yīng)用
第4篇 運(yùn)維實(shí)戰(zhàn)案例篇
第8章 系統(tǒng)運(yùn)維故障處理案例
8.1 Linux系統(tǒng)故障問(wèn)題案例匯總
8.1.1 處理Linux系統(tǒng)故障的思路
8.1.2 Linux系統(tǒng)無(wú)法啟動(dòng)的解決辦法
8.1.3 Linux系統(tǒng)無(wú)響應(yīng)(死機(jī))問(wèn)題分析
8.1.4 其他故障的一般解決方案
8.2 服務(wù)器出現(xiàn)Too many open files錯(cuò)誤案例
8.2.1 網(wǎng)站后臺(tái)突然無(wú)法添加數(shù)據(jù)
8.2.2 最大打開文件數(shù)超出系統(tǒng)限制導(dǎo)致Web異常
8.2.3 合理設(shè)置系統(tǒng)的最大打開文件數(shù)
8.2.4 Linux下ulimit使用經(jīng)驗(yàn)總結(jié)
8.2.5 CentOS7.x/RHEL7.x中ulimit資源限制問(wèn)題
第9章 運(yùn)維常見(jiàn)應(yīng)用故障案例
9.1 文件系統(tǒng)出現(xiàn)Read-only file system錯(cuò)誤案例與分析
9.1.1 網(wǎng)站系統(tǒng)突然出現(xiàn)無(wú)法上傳圖片錯(cuò)誤
9.1.2 分析出現(xiàn)Read-only file system錯(cuò)誤的原因
9.1.3 通過(guò)fsck、xfs_reapir修復(fù)EXT4、XFS文件系統(tǒng)錯(cuò)誤
9.1.4 系統(tǒng)異常關(guān)機(jī)導(dǎo)致磁盤故障案例
9.2 服務(wù)器上crontab計(jì)劃任務(wù)失敗案例與分析
9.2.1 crontab計(jì)劃任務(wù)突然無(wú)法執(zhí)行
9.2.2 文件權(quán)限問(wèn)題導(dǎo)致crontab無(wú)法定時(shí)執(zhí)行
9.2.3 分析并總結(jié)Linux系統(tǒng)中crontab的使用經(jīng)驗(yàn)
9.3 Java內(nèi)存溢出故障案例及Linux內(nèi)存機(jī)制探究
9.3.1 線上數(shù)據(jù)分析任務(wù)被OOM Killerkill
9.3.2 OOM Killer觸發(fā)機(jī)制分析
9.3.3 如何避免系統(tǒng)觸發(fā)OOM Killer
9.4 NAS存儲(chǔ)系統(tǒng)故障案例與分析
9.4.1 NAS存儲(chǔ)突然無(wú)法添加數(shù)據(jù)
9.4.2 系統(tǒng)root用戶被刪除導(dǎo)致NAS系統(tǒng)無(wú)法啟動(dòng)
9.4.3 Linux下關(guān)于用戶權(quán)限的管理策略
9.4.4 Linux的初始化init機(jī)制與systemd管理機(jī)制
第10章 服務(wù)器安全運(yùn)維案例
10.1 網(wǎng)站被植入WebShell案例與Web安全防范策略
10.1.1 客戶網(wǎng)站突然無(wú)法訪問(wèn)
10.1.2 網(wǎng)站漏洞被植入WebShell過(guò)程分析
10.1.3 如何處理被植入的WebShell木馬
10.1.4 WebShell網(wǎng)頁(yè)木馬的原理與防范
10.2 云主機(jī)被植入挖礦程序案例及如何做Redis安全防范
10.2.1 從客戶秒殺系統(tǒng)突然無(wú)法使用說(shuō)起
10.2.2 服務(wù)器被植入minerd程序的過(guò)程與分析
10.2.3 深入分析Redis是如何被植入挖礦病毒的
10.3 DDos攻擊案例以及入侵檢測(cè)工具RKHunter、ClamAV的使用
10.3.1 關(guān)于Linux下的rootkit
10.3.2 線上服務(wù)器被DDos帶寬攻擊案例與分析
10.3.3 rootkit后門檢測(cè)工具chkrootkit
10.3.4 rootkit后門檢測(cè)工具RKHunter
10.3.5 Linux安全防護(hù)工具ClamAV的使用
10.4 服務(wù)器遭受攻擊后的處理措施以及SYN Flood、CC攻擊防御策略
10.4.1 處理服務(wù)器遭受攻擊的一般思路
10.4.2 迅速檢查并鎖定可疑用戶
10.4.3 檢查日志信息追蹤攻擊來(lái)源
10.4.4 檢查并關(guān)閉系統(tǒng)可疑進(jìn)程
10.4.5 SYN Flood、CC攻擊的解決辦法
第11章 線上業(yè)務(wù)服務(wù)器優(yōu)化案例
11.1 Java進(jìn)程占用CPU過(guò)高的排查思路與案例分析
11.1.1 門戶網(wǎng)站突然出現(xiàn)間歇性無(wú)法訪問(wèn)故障
11.1.2 排查Java進(jìn)程占用CPU過(guò)高的思路
11.1.3 Tomcat調(diào)優(yōu)策略與總結(jié)
11.1.4 Tomcat Connector三種運(yùn)行模式比較與優(yōu)化
11.2 線上MySQL數(shù)據(jù)庫(kù)故障案例以及MySQL存儲(chǔ)引擎選型
11.2.1 MySQL數(shù)據(jù)庫(kù)突然出現(xiàn)故障
11.2.2 誤刪除MySQL數(shù)據(jù)文件導(dǎo)致MySQL運(yùn)行異常
11.2.3 從內(nèi)存中恢復(fù)誤刪除的MySQL數(shù)據(jù)文件
11.2.4 MySQL再次出現(xiàn)無(wú)法寫入故障
11.2.5 磁盤扇區(qū)出現(xiàn)壞道導(dǎo)致MySQL無(wú)法寫入數(shù)據(jù)
11.2.6 通過(guò)MySQL主從復(fù)制切換完美解決問(wèn)題
11.2.7 關(guān)于MySQL存儲(chǔ)引擎的選擇
11.2.8 修復(fù)MySQL損壞表的幾個(gè)方法
11.3 線上Java應(yīng)用OutOfMemoryError故障案例實(shí)錄
11.3.1 Hadoop平臺(tái)出現(xiàn)OutOfMemoryError錯(cuò)誤
11.3.2 調(diào)整JVM參數(shù)解決OutOfMemory問(wèn)題
11.3.3 JVM內(nèi)存組成與內(nèi)存分配
11.3.4 JVM內(nèi)存回收過(guò)程與優(yōu)化
11.3.5 JVM內(nèi)存參數(shù)設(shè)置與優(yōu)化
11.3.6 OutOfMemoryError系列錯(cuò)誤解析
11.3.7 JVM內(nèi)存監(jiān)控工具