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