高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例
定 价:145 元
丛书名:Linux技术与应用丛书
- 作者:高俊峰 编著
- 出版时间:2020/6/1
- ISBN:9787111655497
- 出 版 社:机械工业出版社
- 中图法分类:TP316.85
- 页码:488
- 纸张:胶版纸
- 版次:1
- 开本:16K
《高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例》以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,通过真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Linux运维技术的各种经验和技巧,从而真正提高企业的实战能力。
全书贯穿了由点及线、由线及面的学习方法,既可以满足初学者参考学习,也可以帮助有一定基础的中高级Linux运维管理人员进阶,使不同层次的读者都能从本书受益。
目 录
前言
第1篇 系统基础运维篇
第1章 Linux基础命令的使用
1.1 Linux命令行与shell
1.1.1 命令是Linux的精髓
1.1.2 用户和操作系统内核之间通信的桥梁shell
1.1.3 shell命令行的格式以及如何使用
1.1.4 shell中常用通配符的使用
1.1.5 shell的输入、输出和错误重定向
1.1.6 shell中的管道如何使用
1.1.7 shell中3种引用字符如何使用
1.2 基础运维类命令
1.2.1 如何对文件打包、压缩与解压缩
1.2.2 如何快速查找、搜索文件
1.2.3 如何对文件进行连接、合并、排序、去重
1.3 系统运维监控类命令
1.3.1 查询当前整个系统每个进程的线程数
1.3.2 如何检测系统中的僵尸进程并将其kill
1.3.3 如何查看当前占用CPU或内存最多的几个进程
1.4 网络故障排查类命令
1.4.1 命令行下载工具wget命令
1.4.2 强大的HTTP命令行工具curl
1.4.3 Linux系统之间文件传输工具scp命令
1.4.4 动态路由追踪及网络故障排查工具mtr命令
第2章 shell实战编程与应用案例
2.1 正则表达式与变量
2.1.1 正则表达式的组成与应用
2.1.2 shell中的变量与应用
2.1.3 变量测试、截取与替换
2.2 运算符、测试操作符以及if语句
2.2.1 算数运算符
2.2.2 条件测试与条件测试操作符
2.2.3 if/else判断结构
2.3 case选择、for循环与结构化命令
2.3.1 case选择语法与应用举例
2.3.2 for循环与结构化命令
2.4 while循环、until循环以及select循环
2.4.1 while循环结构
2.4.2 until循环语句以及应用举例
2.4.3 exit和sleep的应用环境与方法
2.4.4 select循环与菜单应用
2.5 函数以及函数的调用、参数的传递
2.5.1 函数的概念
2.5.2 函数定义与语法
2.5.3 函数的调用、存储和显示
2.5.4 函数与变量以及函数结果与返回值
2.6 企业生产环境shell脚本案例汇总
2.6.1 统计Linux进程相关数量信息脚本
2.6.2 监控主机的磁盘空间脚本
2.6.3 批量自动创建用户脚本
2.6.4 服务器状态监控脚本
2.6.5 Linux加固系统的自动化配置脚本
2.6.6 检测MySQL服务状态脚本
2.6.7 备份MySQL脚本
2.6.8 一键自动化安装Nginx脚本
2.6.9 查找指定网段活跃IP脚本
2.6.10 监控网站页面是否正常访问脚本
第3章 Linux系统运维深入实践
3.1 Linux用户权限管理
3.1.1 用户与用户组管理
3.1.2 添加、切换和删除用户组命令groupadd/newgrp/groupdel
3.1.3 添加、修改和删除用户命令useradd/usermod/userdel
3.1.4 文件的权限属性解读
3.1.5 利用chown改变属主和属组
3.1.6 利用chmod改变访问权限
3.2 Linux磁盘存储管理
3.2.1 磁盘设备在Linux下的表示方法
3.2.2 UEFI、BIOS和MBR、GPT之间的关系
3.2.3 利用fdisk工具划分磁盘分区
3.2.4 利用parted工具划分磁盘分区
3.3 Linux文件系统管理
3.3.1 线上业务系统选择文件系统标准
3.3.2 网络文件系统(NFS)介绍
3.3.3 NFS的安装与配置
3.4 Linux进程管理与监控
3.4.1 进程的分类与状态
3.4.2 进程的监控与管理
3.4.3 任务调度进程crond的使用
3.4.4 如何关闭进程
第2篇 系统性能调优篇
第4章 性能调优必备工具与技能
4.1 Linux系统性能指标有哪些
4.1.1 进程指标
4.1.2 内存指标
4.1.3 文件系统指标
4.1.4 磁盘I/O指标
4.1.5 网络指标
4.2 性能调优必备工具
4.2.1 CPU性能调优工具
4.2.2 内存性能调优工具
4.2.3 磁盘性能调优工具
4.2.4 网络性能调优工具
4.2.5 系统性能综合调优工具
4.3 分析并发现系统性能瓶颈
4.3.1 如何找到CPU瓶颈
4.3.2 如何找到内存瓶颈
4.3.3 如何找到磁盘瓶颈
4.3.4 如何找到网络瓶颈
第5章 系统性能调优实施细则
5.1 从安装Linux系统开始进行调优
5.1.1 系统基础配置与调优
5.1.2 系统安全与防护机制
5.2 Linux内核参数调优
5.2.1 Linux内核文件系统
5.2.2 内核参数优化
5.2.3 网络内核参数优化
5.2.4 系统Kernel参数优化
5.2.5 内存内核参数优化
5.2.6 文件系统内核参数优化
5.3 内存资源(物理内存/虚拟内存)性能调优
5.3.1 Linux内存中Cache与Buffer
5.3.2 Page Cache与Buffer Cache机制
5.3.3 free命令中buffers和cached
5.3.4 Page Cache优化措施以及Cache回收
5.3.5 Swap的使用与优化
5.4 磁盘I/O与文件系统方面的性能调优
5.4.1 磁盘I/O性能调优实践
5.4.2 文件系统性能优化措施
第3篇 智能运维监控篇
第6章 运维监控利器Zabbix
6.1 运维监控平台选型以及设计思路
6.1.1 常见的运维监控工具
6.1.2 运维监控平台设计思路
6.1.3 企业运维监控平台选型策略
6.1.4 运维监控平台演变历程
6.2 Zabbix运维监控平台部署过程
6.2.1 Zabbix运行架构
6.2.2 安装、部署Zabbix监控平台
6.3 Zabbix Web配置实战讲解
6.3.1 模板的管理与使用
6.3.2 创建应用集
6.3.3 创建监控项
6.3.4 创建触发器
6.3.5 创建主机组和主机
6.3.6 触发器动作配置
6.3.7 报警媒介类型配置
6.3.8 监控状态查看
6.4 Zabbix自动发现、自动注册和自定义监控的实现
6.4.1 Zabbix的自动网络发现
6.4.2 主动客户端自动注册
6.4.3 低级别发现Low-level discovery(LLD)
6.4.4 Zabbix自定义监控项
6.4.5 Zabbix的主动模式与被动模式
6.5 Zabbix监控MySQL、Apache、Nginx应用实战案例
6.5.1 Zabbix监控MySQL应用实战
6.5.2 Zabbix监控Apache应用实战
6.5.3 Zabbix监控Nginx应用实战
6.6 Zabbix监控PHP-FTPM、Tomcat、Redis应用实战案例
6.6.1 Zabbix 监控 PHP-FPM应用实战
6.6.2 Zabbix监控Tomcat应用实战
6.6.3 Zabbix监控Redis实例应用实战
6.7 Zabbix通过与微信、钉钉整合实现实时告警
6.7.1 Zabbix整合微信实现实时告警
6.7.2 Zabbix整合钉钉实现实时告警
第7章 Prometheus监控与Grafana可视化平台
7.1 基于服务的开源监控Prometheus
7.1.1 Prometheus简介
7.1.2 Prometheus 的组件与架构
7.1.3 Prometheus的安装和配置
7.1.4 Node Exporter的功能介绍与安装配置
7.1.5 Alertmanager的安装和配置
7.1.6 Prometheus告警功能演示
7.2 Grafana+Zabbix+Prometheus打造全方位立体监控系统
7.2.1 Grafana的基础知识
7.2.2 Grafana的安装与配置
7.2.3 Grafana与Zabbix整合提升运维监控档次
7.2.4 Prometheus与Grafana整合应用
第4篇 运维实战案例篇
第8章 系统运维故障处理案例
8.1 Linux系统故障问题案例汇总
8.1.1 处理Linux系统故障的思路
8.1.2 Linux系统无法启动的解决办法
8.1.3 Linux系统无响应(死机)问题分析
8.1.4 其他故障的一般解决方案
8.2 服务器出现Too many open files错误案例
8.2.1 网站后台突然无法添加数据
8.2.2 最大打开文件数超出系统限制导致Web异常
8.2.3 合理设置系统的最大打开文件数
8.2.4 Linux下ulimit使用经验总结
8.2.5 CentOS7.x/RHEL7.x中ulimit资源限制问题
第9章 运维常见应用故障案例
9.1 文件系统出现Read-only file system错误案例与分析
9.1.1 网站系统突然出现无法上传图片错误
9.1.2 分析出现Read-only file system错误的原因
9.1.3 通过fsck、xfs_reapir修复EXT4、XFS文件系统错误
9.1.4 系统异常关机导致磁盘故障案例
9.2 服务器上crontab计划任务失败案例与分析
9.2.1 crontab计划任务突然无法执行
9.2.2 文件权限问题导致crontab无法定时执行
9.2.3 分析并总结Linux系统中crontab的使用经验
9.3 Java内存溢出故障案例及Linux内存机制探究
9.3.1 线上数据分析任务被OOM Killerkill
9.3.2 OOM Killer触发机制分析
9.3.3 如何避免系统触发OOM Killer
9.4 NAS存储系统故障案例与分析
9.4.1 NAS存储突然无法添加数据
9.4.2 系统root用户被删除导致NAS系统无法启动
9.4.3 Linux下关于用户权限的管理策略
9.4.4 Linux的初始化init机制与systemd管理机制
第10章 服务器安全运维案例
10.1 网站被植入WebShell案例与Web安全防范策略
10.1.1 客户网站突然无法访问
10.1.2 网站漏洞被植入WebShell过程分析
10.1.3 如何处理被植入的WebShell木马
10.1.4 WebShell网页木马的原理与防范
10.2 云主机被植入挖矿程序案例及如何做Redis安全防范
10.2.1 从客户秒杀系统突然无法使用说起
10.2.2 服务器被植入minerd程序的过程与分析
10.2.3 深入分析Redis是如何被植入挖矿病毒的
10.3 DDos攻击案例以及入侵检测工具RKHunter、ClamAV的使用
10.3.1 关于Linux下的rootkit
10.3.2 线上服务器被DDos带宽攻击案例与分析
10.3.3 rootkit后门检测工具chkrootkit
10.3.4 rootkit后门检测工具RKHunter
10.3.5 Linux安全防护工具ClamAV的使用
10.4 服务器遭受攻击后的处理措施以及SYN Flood、CC攻击防御策略
10.4.1 处理服务器遭受攻击的一般思路
10.4.2 迅速检查并锁定可疑用户
10.4.3 检查日志信息追踪攻击来源
10.4.4 检查并关闭系统可疑进程
10.4.5 SYN Flood、CC攻击的解决办法
第11章 线上业务服务器优化案例
11.1 Java进程占用CPU过高的排查思路与案例分析
11.1.1 门户网站突然出现间歇性无法访问故障
11.1.2 排查Java进程占用CPU过高的思路
11.1.3 Tomcat调优策略与总结
11.1.4 Tomcat Connector三种运行模式比较与优化
11.2 线上MySQL数据库故障案例以及MySQL存储引擎选型
11.2.1 MySQL数据库突然出现故障
11.2.2 误删除MySQL数据文件导致MySQL运行异常
11.2.3 从内存中恢复误删除的MySQL数据文件
11.2.4 MySQL再次出现无法写入故障
11.2.5 磁盘扇区出现坏道导致MySQL无法写入数据
11.2.6 通过MySQL主从复制切换完美解决问题
11.2.7 关于MySQL存储引擎的选择
11.2.8 修复MySQL损坏表的几个方法
11.3 线上Java应用OutOfMemoryError故障案例实录
11.3.1 Hadoop平台出现OutOfMemoryError错误
11.3.2 调整JVM参数解决OutOfMemory问题
11.3.3 JVM内存组成与内存分配
11.3.4 JVM内存回收过程与优化
11.3.5 JVM内存参数设置与优化
11.3.6 OutOfMemoryError系列错误解析
11.3.7 JVM内存监控工具