畅销书《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》姊妹篇,资深运维专家和架构师多年经验结晶;
以实际生产环境为背景,从系统安全、故障排查、自动化运维、集群架构4个维度讲解构建大规模和高性能Linux服务器集群所需技术、工具、方法和技巧。
《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》是Linux运维领域畅销的、公认的经典著作《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》的姊妹篇,它从系统安全运维、运维故障排查、自动化运维、集群架构4个维度讲解了构建大规模和高性能Linux服务器集群所需要的技术、工具、方法和技巧,二者一脉相承,互为补充,内容涵盖了运维工程师构建高性能服务器需要掌握的各种知识。本书在内容上继承了前面一本书中被读者认可的诸多优点:实用(以实际生产环境为背景)、实战(包含大量案例)、易懂,同时也改进了读者反馈的不足之处。 全书共14章,分为四个部分:安全运维篇(1-3章)主要讲解了服务器安全运维、网络安全运维和数据安全运维的关键技术和方法;运维故障排查篇(4-5章)从服务器系统和应用软件两个维度讲解了运维故障的排查思路,以及常见的和经典的运维故障的解决方案;自动化运维篇(6-9章)主要讲解了海量主机的自动化部署和配置、自动化监控、分布式监控等大规模集群运维所需的各种工具(pssh、pdsh、mussh、Ganglia、nagios、Centreon等)和方法;集群架构篇(10-14)讲解了如何构建和优化基于Web和MySQL数据库的高性能集群和高可用的负载均衡集群。
高俊峰(南非蚂蚁),专业运维专家、系统架构师、DBA和技术顾问,从事Linux/Unix服务器系统的架构、运维和管理多年。擅长大规模服务器集群的运维和管理,在故障诊断与排除、自动化运维、安全运维、性能调优、虚拟化等方面积累了大量的实战经验。国内知名IT技术社区51CTO的博客专家和ChinaUnix论坛高可用集群版块的版主,同时还活跃于ITPUB等技术社区,在社区和论坛里发表了大量技术文章,深受欢迎。此外,他还著有畅销书《循序渐进Linux》和《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,后者是本书的姊妹篇,是Linux运维领域公认的经典著作。
前言第一部分 安全运维篇第1章 Linux服务器安全运维1.1 账户和登录安全1.1.1 删除特殊的用户和用户组1.1.2 关闭系统不需要的服务1.1.3 密码安全策略1.1.4 合理使用su、sudo命令1.1.5 删减系统登录欢迎信息1.1.6 禁止Control-Alt-Delete键盘关闭命令1.2 远程访问和认证安全1.2.1 远程登录取消telnet而采用SSH方式1.2.2 合理使用shell历史命令记录功能1.2.3 启用tcp_wrappers防火墙1.3 文件系统安全1.3.1 锁定系统重要文件1.3.2 文件权限检查和修改1.3.3 /tmp、/var/tmp、/dev/shm安全设定1.4 系统软件安全管理1.4.1 软件自动升级工具yum1.4.2 yum的安装与配置1.4.3 yum的特点与基本用法1.4.4 几个不错的yum源1.5 Linux后门入侵检测工具1.5.1 rootkit后门检测工具chkrootkit1.5.2 rootkit后门检测工具RKHunter1.6 服务器遭受攻击后的处理过程1.6.1 处理服务器遭受攻击的一般思路1.6.2 检查并锁定可疑用户1.6.3 查看系统日志1.6.4 检查并关闭系统可疑进程1.6.5 检查文件系统的完好性1.7 一次Linux被入侵后的分析1.7.1 受攻击现象1.7.2 初步分析1.7.3 断网分析系统1.7.4 寻找攻击源1.7.5 查找攻击原因1.7.6 揭开谜团1.7.7 如何恢复网站第2章 Linux网络安全运维2.1 网络实时流量监测工具iftop2.1.1 iftop能做什么2.1.2 iftop的安装2.1.3 使用iftop监控网卡实时流量2.2 网络流量监控与分析工具Ntop和Ntopng2.2.1 Ntop与MRTG的异同2.2.2 Ntop与Ntopng的功能介绍2.2.3 安装Ntop与Ntopng2.2.4 Ntop和Ntopng的使用技巧2.3 网络性能评估工具iperf2.3.1 iperf能做什么2.3.2 iperf的安装与使用2.3.3 iperf应用实例2.4 网络探测和安全审核工具nmap2.4.1 nmap和Zenmap简介2.4.2 nmap基本功能与结构2.4.3 nmap的安装与验证2.4.4 nmap的典型用法2.4.5 nmap主机发现扫描2.4.6 nmap端口扫描2.4.7 nmap版本侦测2.4.8 nmap操作系统侦测第3章 数据安全工具DRBD、extundelete3.1 数据镜像软件DRBD介绍3.1.1 DRBD的基本功能3.1.2 DRBD的构成3.1.3 DRBD与现在的集群的关系3.1.4 DRBD的主要特性3.2 DRDB的安装与配置3.2.1 安装环境说明3.2.2 DRBD的安装部署3.2.3 快速配置一个DRBD镜像系统3.3 DRBD的管理与维护3.3.1 启动DRDB3.3.2 测试DRBD数据镜像3.3.3 DRBD主备节点切换3.4 数据恢复软件extundelete介绍3.4.1 如何使用"rm -rf"命令3.4.2 extundelete与ext3grep的异同3.4.3 extundelete的恢复原理3.4.4 安装extundelete3.4.5 extundelete用法详解3.5 实战:extundelete恢复数据的过程3.5.1 通过extundelete恢复单个文件3.5.2 通过extundelete恢复单个目录3.5.3 通过extundelete恢复所有误删除数据3.5.4 通过extundelete恢复某个时间段的数据第二部分 运维故障排查篇第4章 Linux系统运维故障排查思路4.1 Linux系统故障的处理思路4.2 Linux系统无法启动的解决方法4.2.1 文件系统破坏导致系统无法启动4.2.2 /etc/fstab文件丢失导致系统无法启动4.3 Linux系统无响应(死机)问题分析4.4 Linux下常见网络故障的处理思路4.4.1 检查网络硬件问题4.4.2 检查网卡是否正常工作4.4.3 检查DNS解析文件是否设置正确4.4.4 检查服务是否正常打开4.4.5 检查访问权限是否打开4.4.6 检查局域网主机之间联机是否正常第5章 Linux故障排查案例实战5.1 常见系统故障案例5.1.1 su切换用户带来的疑惑5.1.2 "Read-only file system"错误与解决方法5.1.3 "Argument list too long"错误与解决方法5.1.4 inode耗尽导致应用故障5.1.5 文件已删除但空间不释放的原因5.1.6 "Too many open files"错误与解决方法5.2 Apache常见错误故障案例5.2.1 "No space left on device"错误与解决方法5.2.2 apache(20014)故障与解决方法5.2.3 "could not bind to address 0.0.0.0:80"错误与解决方法5.3 因NAS存储故障引起的Linux系统恢复案例5.3.1 故障现象描述5.3.2 问题判断思路5.3.3 问题处理过程5.3.4 解决问题第三部分 自动化运维篇第6章 轻量级运维利器pssh、pdsh和mussh6.1 并行SSH运维工具pssh6.1.1 pssh应用场景6.1.2 pssh的安装与用法6.1.3 pssh应用实例6.2 并行分布式运维工具pdsh6.2.1 pdsh应用场景6.2.2 pdsh的安装与语法6.2.3 pdsh应用实例6.3 多主机ssh封装器mussh6.3.1 mussh功能介绍6.3.2 mussh的安装与语法6.3.3 mussh应用实例第7章 分布式监控系统Ganglia7.1 Ganglia简介7.2 Ganglia的组成7.3 Ganglia的工作原理7.3.1 Ganglia数据流向分析7.3.2 Ganglia工作模式7.4 Ganglia的安装7.4.1 yum源安装方式7.4.2 源码方式7.5 配置一个Ganglia分布式监控系统7.5.1 Ganglia配置文件介绍7.5.2 Ganglia监控系统架构图7.5.3 Ganglia监控管理端配置7.5.4 Ganglia的客户端配置7.5.5 Ganglia的Web端配置7.6 Ganglia监控系统的管理和维护7.7 Ganglia监控扩展实现机制7.7.1 扩展Ganglia监控功能的方法7.7.2 通过gmetric接口扩展Ganglia监控7.7.3 通过Python插件扩展Ganglia监控7.7.4 实战:利用Python接口监控Nginx运行状态7.8 Ganglia在实际应用中要考虑的问题7.8.1 网络IO可能存在瓶颈7.8.2 CPU可能存在瓶颈7.8.3 gmetad写入rrd数据库可能存在瓶颈第8章 基于nagios的分布式监控报警平台Centreon8.1 Centreon概述8.2 Centreon的特点8.3 Centreon的结构8.4 安装Centreon+nagios监控系统8.4.1 安装支持Centreon的yum源8.4.2 安装系统基础依赖库8.4.3 安装nagios及nagios-plugins8.4.4 安装ndoutils8.4.5 安装nrpe8.4.6 安装Centreon8.4.7 安装配置Centreon Web8.4.8 启动Centreon相关服务8.4.9 安装问题总结8.5 配置Centreon监控系统8.5.1 添加主机和主机组8.5.2 批量添加主机8.5.3 监控引擎管理8.5.4 添加服务和服务组8.5.5 监控报警配置8.5.6 用户和用户权限管理8.6 配置分布式监控8.6.1 分布式监控架构与实现原理8.6.2 分布式监控搭建环境介绍8.6.3 监控软件的安装8.6.4 配置节点间SSH信任登录8.6.5 在Central server上添加分布式监控配置8.7 常见服务监控配置8.7.1 nagios插件编写规范8.7.2 监控Apache运行状态8.7.3 监控MySQL运行状态8.7.4 监控Hadoop HDFS运行状态8.8 桌面监控报警器Nagstamon第9章 通过Ganglia与Centreon构建智能化监控报警平台9.1 智能运维监控报警平台的组成9.2 Ganglia作为数据收集模块9.3 Centreon作为监控报警模块9.4 Ganglia与Centreon的无缝整合9.4.1 数据提取脚本9.4.2 实现Ganglia与Centreon完美整合9.5 在Centreon中实现批量数据收集与监控报警第四部分 集群架构篇第10章 高性能Web服务器Nginx10.1 高性能Web服务器Nginx介绍10.1.1 Nginx的组成与工作原理10.1.2 Nginx的性能优势10.2 Nginx的安装10.2.1 安装Nginx依赖库10.2.2 快速安装Nginx10.3 配置与调试Nginx10.3.1 Nginx配置文件结构10.3.2 Nginx配置文件详解10.3.3 Nginx日常维护技巧10.4 Nginx常用功能介绍10.4.1 Nginx反向代理应用实例10.4.2 Nginx的URL重写应用实例10.5 案例:Nginx作为Web缓存服务器应用10.5.1 在Nginx下安装缓存服务器10.5.2 配置Nginx缓存服务器10.5.3 测试proxy_cache实现的缓存功能10.5.4 如何清除指定的URL缓存10.6 案例:Nginx作为负载均衡服务器应用10.6.1 Nginx的负载均衡算法10.6.2 Nginx的负载均衡配置实例10.7 Nginx性能优化技巧10.7.1 编译安装过程优化10.7.2 利用TCMalloc优化Nginx的性能10.7.3 Nginx内核参数优化第11章 高性能集群软件Keepalived11.1 Keepalived介绍11.1.1 Keepalived是什么11.1.2 VRRP协议与工作原理11.1.3 Keepalived工作原理11.1.4 Keepalived的体系结构11.2 Keepalived安装与配置11.2.1 Keepalived的安装过程11.2.2 Keepalived的全局配置11.2.3 Keepalived的VRRPD配置11.2.4 Keepalived的LVS配置11.3 Keepalived基础功能应用实例11.3.1 Keepalived基础HA功能演示11.3.2 通过vrrp_script实现对集群资源的监控11.3.3 Keepalived集群中MASTER和BACKUP角色选举策略第12章 千万级高并发负载均衡软件HAProxy12.1 高性能负载均衡软件HAProxy介绍12.1.1 HAProxy简介12.1.2 四层和七层负载均衡的区别12.1.3 HAProxy与LVS的异同12.2 HAProxy基础配置与应用实例12.2.1 快速安装HAProxy集群软件12.2.2 HAProxy基础配置文件详解12.2.3 HAProxy的日志配置策略12.2.4 通过HAProxy的ACL规则实现智能负载均衡12.3 基于虚拟主机的HAProxy负载均衡系统配置实例12.3.1 通过HAProxy的ACL规则配置虚拟主机12.3.2 测试HAProxy实现虚拟主机和负载均衡功能12.3.3 测试HAProxy的故障转移功能12.3.4 使用HAProxy的Web监控平台第13章 构建高性能的MySQL集群系统13.1 常见的高可用MySQL解决方案13.1.1 主从复制解决方案13.1.2 MMM高可用解决方案13.1.3 Heartbeat/SAN高可用解决方案13.1.4 Heartbeat/DRBD高可用解决方案13.1.5 MySQL Cluster高可用解决方案13.2 通过Keepalived搭建MySQL双主模式的高可用集群系统13.2.1 MySQLReplication介绍13.2.2 MySQL Replication实现原理13.2.3 MySQL Replication常用架构13.2.4 MySQL主主互备模式架构13.2.5 MySQL主主互备模式配置13.2.6 配置Keepalived实现MySQL双主高可用13.2.7 测试MySQL主从同步功能13.2.8 测试Keepalived实现MySQL故障转移13.3 通过MMM构建MySQL高可用集群系统13.3.1 MMM高可用MySQL方案简介13.3.2 MMM典型应用方案13.3.3 MMM高可用MySQL方案架构13.3.4 MMM的安装与配置13.3.5 MMM的管理13.3.6 测试MMM实现MySQL高可用功能13.4 MySQL读写分离解决方案13.4.1 通过Amoeba实现MySQL读写分离13.4.2 通过Keepalived构建高可用的Amoeba服务第14章 高性能负载均衡集群软件HAProxy14.1 高性能负载均衡架构设计原则14.1.1 HAProxy常见方案与拓扑14.1.2 高可用集群软件的选择14.2 搭建HAProxy+Keepalived高可用负载均衡系统14.2.1 搭建环境描述14.2.2 配置HAProxy负载均衡服务器14.2.3 配置主、备Keepalived服务器14.3 测试HAProxy+Keepalived高可用负载均衡集群14.3.1 测试Keepalived的高可用功能14.3.2 测试负载均衡功能14.4 构建双主高可用的HAProxy负载均衡系统14.4.1 系统架构图与实现原理14.4.2 安装并配置HAProxy集群系统14.4.3 安装并配置双主的Keepalived高可用系统14.4.4 测试双主高可用的HAProxy负载均衡集群系统