描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111575856丛书名: Linux/Unix技术丛书
内容简介
本书是以动视暴雪中国运维团队七位作者的日常工作作为背景,全面解析了Linux集群在动视暴雪的应用现状,内容包括Linux系统、网络、安全、监控、备份、日志分析、自动化等,跳出了一般书籍仅仅能覆盖的原理层面,详尽真实地展现了各项技术在集群架构和运维方向上的实际应用和发展趋势,是一本不可多得的实战案例。
目 录
Contents 目 录
前言
第1章 Linux系统管理入门1
1.1 系统安装1
1.1.1 安装CentOS1
1.1.2 首次启动CentOS14
1.1.3 更多设置14
1.2 系统登录20
1.2.1 本地登录20
1.2.2 远程登录22
1.3 用户管理24
1.3.1 用户和用户组的概念24
1.3.2 新增和删除用户25
1.3.3 新增和删除用户组26
1.3.4 用户切换26
1.4 文件系统27
1.4.1 什么是文件系统27
1.4.2 常见的文件系统27
1.4.3 磁盘分区和创建文件系统28
1.5 文件管理33
1.5.1 文件和目录简介33
1.5.2 文件和目录权限34
1.5.3 文件查找35
1.5.4 文件压缩和打包36
1.6 网络管理37
1.6.1 网络配置管理37
1.6.2 Linux防火墙38
1.6.3 网络连通性诊断40
1.7 进程管理42
1.7.1 什么是进程43
1.7.2 进程的常见状态43
1.7.3 进程优先级的调整43
1.7.4 进程的终止44
1.8 软件安装46
1.8.1 源码编译安装46
1.8.2 使用包管理Yum48
1.8.3 创建自己的Yum仓库49
1.9 系统安全检测与审计51
1.9.1 AIDE系统入侵检测 51
1.9.2 审计53
第2章 系统性能分析56
2.1 性能分析简介56
2.2 系统分析的基本工具56
2.2.1 CPU性能分析工具56
2.2.2 内存性能分析工具60
2.2.3 磁盘性能分析工具62
2.2.4 sar64
2.3 软件分析的基本工具66
2.3.1 ldd66
2.3.2 strace与ltrace66
2.3.3 ipcs71
2.3.4 systemtap73
2.4 与内存相关的那些事情76
2.4.1 内存泄漏76
2.4.2 虚拟内存、物理内存与页缺失78
2.4.3 Out of Memory79
2.4.4 Overcommit79
2.4.5 cache与buffer80
2.5 与磁盘相关的那些事情80
2.5.1 HDD与SSD80
2.5.2 HDD磁盘的调度算法81
2.5.3 文件系统中的日志82
2.6 系统资源限制82
2.6.1 ulimit82
2.6.2 Cgroup84
第3章 用户集中认证91
3.1 openLDAP简介91
3.2 openLDAP的安装91
3.3 openLDAP的配置92
3.4 利用openLDAP集中认证95
第4章 域名服务器DNS97
4.1 DNS服务简介97
4.2 DNS安装配置98
4.2.1 DNS安装过程98
4.2.2 关于chroot的解释99
4.2.3 配置主配置文件99
4.2.4 DNS的正向解析配置100
4.2.5 DNS的反向解析配置101
4.2.6 利用DNS实现负载均衡103
4.3 DNS的主从复制104
4.4 配置纯缓存的DNS服务106
4.5 DNS的客户端配置107
4.5.1 Linux中的配置107
4.5.2 Windows中的配置108
第5章 系统备份109
5.1 为什么要备份109
5.2 常见的备份机制110
5.2.1 完全备份110
5.2.2 增量备份110
5.2.3 差异备份111
5.3 Bacula简介111
5.3.1 什么是Bacula111
5.3.2 Bacula的基本组件112
5.4 Bacula的安装和配置112
5.4.1 Bacula控制器114
5.4.2 Bacula存储守护进程120
5.4.3 Bacula客户端文件守护进程121
5.4.4 Bacula控制台122
5.4.5 启动服务122
5.4.6 Bacula配置综述122
5.5 使用Bacula进行备份和恢复124
5.5.1 执行备份124
5.5.2 文件恢复127
5.6 Bacula的使用和维护129
5.6.1 Bconsole的用法129
5.6.2 使用Bacula进行文件验证130
5.6.3 Catalog的维护和备份131
5.7 备份的策略132
5.7.1 备份什么133
5.7.2 备份到哪里133
5.7.3 备份的时间133
5.7.4 测试和监控备份133
第6章 集群与存储134
6.1 存储的基本概念134
6.2 SAN134
6.2.1 SAN的选择135
6.2.2 iSCSI的配置135
6.3 分布式文件系统与集群文件系统138
6.3.1 分布式文件系统138
6.3.2 GlusterFS的配置138
6.4 高可用集群141
6.4.1 Red Hat HA Cluster简介141
6.4.2 配置一个高可用的Apache集群142
6.5 负载均衡集群151
6.5.1 HAProxy负载均衡151
6.5.2 Nginx负载均衡153
6.5.3 LVS负载均衡155
第7章 Graphite159
7.1 Graphite是什么159
7.1.1 Graphite不是一个告警系统159
7.1.2 Graphite的功能和特色159
7.2 Graphite的基本组件160
7.2.1 Whisper160
7.2.2 Carbon161
7.2.3 Graphite Web162
7.3 Graphite的安装162
7.3.1 安装Whisper数据库163
7.3.2 安装Carbon守护进程163
7.3.3 安装graphite-web163
7.4 Graphite 的配置(单点)164
7.4.1 配置Carbon守护进程164
7.4.2 给Carbon Cache发送数据166
7.4.3 配置Graphite-web167
7.5 Graphite的配置(集群配置)169
7.5.1 配置Carbon Relay170
7.5.2 Relay中的数据复制172
7.5.3 数据聚合172
7.5.4 Graphite Cluster174
7.6 使用Graphite Web175
7.6.1 Graphite的Render API175
7.6.2 Graphite作图函数176
7.6.3 Graphite Dashboard和Grafana178
7.7 Graphite 的性能监控和调整181
7.8 其他182
7.8.1 Whisper文件操作182
7.8.2 压力测试183
7.8.3 其他工具185
第8章 系统大规模部署186
8.1 概述186
8.2 与PXE不得不说的故事186
8.2.1 PXE简介186
8.2.2 PXE实战187
8.3 系统部署工具Cobbler192
8.3.1 Cobbler简介192
8.3.2 Cobbler安装192
8.3.3 Cobbler 配置193
8.3.4 Cobbler应用197
8.3.5 Cobbler API202
8.3.6 Cobbler Replicat
前言
第1章 Linux系统管理入门1
1.1 系统安装1
1.1.1 安装CentOS1
1.1.2 首次启动CentOS14
1.1.3 更多设置14
1.2 系统登录20
1.2.1 本地登录20
1.2.2 远程登录22
1.3 用户管理24
1.3.1 用户和用户组的概念24
1.3.2 新增和删除用户25
1.3.3 新增和删除用户组26
1.3.4 用户切换26
1.4 文件系统27
1.4.1 什么是文件系统27
1.4.2 常见的文件系统27
1.4.3 磁盘分区和创建文件系统28
1.5 文件管理33
1.5.1 文件和目录简介33
1.5.2 文件和目录权限34
1.5.3 文件查找35
1.5.4 文件压缩和打包36
1.6 网络管理37
1.6.1 网络配置管理37
1.6.2 Linux防火墙38
1.6.3 网络连通性诊断40
1.7 进程管理42
1.7.1 什么是进程43
1.7.2 进程的常见状态43
1.7.3 进程优先级的调整43
1.7.4 进程的终止44
1.8 软件安装46
1.8.1 源码编译安装46
1.8.2 使用包管理Yum48
1.8.3 创建自己的Yum仓库49
1.9 系统安全检测与审计51
1.9.1 AIDE系统入侵检测 51
1.9.2 审计53
第2章 系统性能分析56
2.1 性能分析简介56
2.2 系统分析的基本工具56
2.2.1 CPU性能分析工具56
2.2.2 内存性能分析工具60
2.2.3 磁盘性能分析工具62
2.2.4 sar64
2.3 软件分析的基本工具66
2.3.1 ldd66
2.3.2 strace与ltrace66
2.3.3 ipcs71
2.3.4 systemtap73
2.4 与内存相关的那些事情76
2.4.1 内存泄漏76
2.4.2 虚拟内存、物理内存与页缺失78
2.4.3 Out of Memory79
2.4.4 Overcommit79
2.4.5 cache与buffer80
2.5 与磁盘相关的那些事情80
2.5.1 HDD与SSD80
2.5.2 HDD磁盘的调度算法81
2.5.3 文件系统中的日志82
2.6 系统资源限制82
2.6.1 ulimit82
2.6.2 Cgroup84
第3章 用户集中认证91
3.1 openLDAP简介91
3.2 openLDAP的安装91
3.3 openLDAP的配置92
3.4 利用openLDAP集中认证95
第4章 域名服务器DNS97
4.1 DNS服务简介97
4.2 DNS安装配置98
4.2.1 DNS安装过程98
4.2.2 关于chroot的解释99
4.2.3 配置主配置文件99
4.2.4 DNS的正向解析配置100
4.2.5 DNS的反向解析配置101
4.2.6 利用DNS实现负载均衡103
4.3 DNS的主从复制104
4.4 配置纯缓存的DNS服务106
4.5 DNS的客户端配置107
4.5.1 Linux中的配置107
4.5.2 Windows中的配置108
第5章 系统备份109
5.1 为什么要备份109
5.2 常见的备份机制110
5.2.1 完全备份110
5.2.2 增量备份110
5.2.3 差异备份111
5.3 Bacula简介111
5.3.1 什么是Bacula111
5.3.2 Bacula的基本组件112
5.4 Bacula的安装和配置112
5.4.1 Bacula控制器114
5.4.2 Bacula存储守护进程120
5.4.3 Bacula客户端文件守护进程121
5.4.4 Bacula控制台122
5.4.5 启动服务122
5.4.6 Bacula配置综述122
5.5 使用Bacula进行备份和恢复124
5.5.1 执行备份124
5.5.2 文件恢复127
5.6 Bacula的使用和维护129
5.6.1 Bconsole的用法129
5.6.2 使用Bacula进行文件验证130
5.6.3 Catalog的维护和备份131
5.7 备份的策略132
5.7.1 备份什么133
5.7.2 备份到哪里133
5.7.3 备份的时间133
5.7.4 测试和监控备份133
第6章 集群与存储134
6.1 存储的基本概念134
6.2 SAN134
6.2.1 SAN的选择135
6.2.2 iSCSI的配置135
6.3 分布式文件系统与集群文件系统138
6.3.1 分布式文件系统138
6.3.2 GlusterFS的配置138
6.4 高可用集群141
6.4.1 Red Hat HA Cluster简介141
6.4.2 配置一个高可用的Apache集群142
6.5 负载均衡集群151
6.5.1 HAProxy负载均衡151
6.5.2 Nginx负载均衡153
6.5.3 LVS负载均衡155
第7章 Graphite159
7.1 Graphite是什么159
7.1.1 Graphite不是一个告警系统159
7.1.2 Graphite的功能和特色159
7.2 Graphite的基本组件160
7.2.1 Whisper160
7.2.2 Carbon161
7.2.3 Graphite Web162
7.3 Graphite的安装162
7.3.1 安装Whisper数据库163
7.3.2 安装Carbon守护进程163
7.3.3 安装graphite-web163
7.4 Graphite 的配置(单点)164
7.4.1 配置Carbon守护进程164
7.4.2 给Carbon Cache发送数据166
7.4.3 配置Graphite-web167
7.5 Graphite的配置(集群配置)169
7.5.1 配置Carbon Relay170
7.5.2 Relay中的数据复制172
7.5.3 数据聚合172
7.5.4 Graphite Cluster174
7.6 使用Graphite Web175
7.6.1 Graphite的Render API175
7.6.2 Graphite作图函数176
7.6.3 Graphite Dashboard和Grafana178
7.7 Graphite 的性能监控和调整181
7.8 其他182
7.8.1 Whisper文件操作182
7.8.2 压力测试183
7.8.3 其他工具185
第8章 系统大规模部署186
8.1 概述186
8.2 与PXE不得不说的故事186
8.2.1 PXE简介186
8.2.2 PXE实战187
8.3 系统部署工具Cobbler192
8.3.1 Cobbler简介192
8.3.2 Cobbler安装192
8.3.3 Cobbler 配置193
8.3.4 Cobbler应用197
8.3.5 Cobbler API202
8.3.6 Cobbler Replicat
前 言
Preface 前 言为什么要写这本书五个Linux爱好者和开源软件的密集使用者因为同事关系相聚在动视暴雪,茶余之际谈及目前市场上已出版的Linux图书,一致的看法是,虽然市场上以Linux为主题的书很多,但绝大多数集中于Linux基础介绍或是单纯的服务搭建,有一些书着眼点在Linux集群的架构设计,但是往往内容重合度较高、篇幅零散,且基本上限于对原理的讲解,缺乏对实际系统的集成梳理。虽然Linux及Linux集群目前在互联网已经非常流行,但是基于实际生产应用讲解Linux集群的书仍难觅踪迹。因为从严格意义上来说,“集群”属于一门多种技术融合的科学,包含了Linux基础系统、系统安全、系统调优、网络安全、日志分析、系统监控、自动化管理、资产管理等多方面的内容,单个人写作很难达到这么全面的剖析范围。于是,我们五人决定合作来写一本相对更全面实用的Linux图书。
在决定动笔之际,参与本书写作的五位作者都就职于世界的游戏出版公司动视暴雪,因此,本书以动视暴雪中国运维团队的日常工作为背景,内容也基于(但不拘泥)日常运维的生产系统和测试系统,力图从实际生产系统和应用出发,以自己平日的实际运维工作为基本立足点,全方位、真实地展示目前Linux集群的应用现状。书中内容包括Linux系统、网络、安全、监控、备份、日志分析等,跳出了一般书籍仅仅能覆盖的原理层面,详尽真实地展现了各项技术在集群架构和运维方向上的实际应用和发展趋势,其中很多内容更是动视暴雪中国运维团队多年运维总结的实践。
对于我们自己来说,完成这本书的写作,不但能分享自己多年的工作心得,也是一次极为难得的和众多Linux爱好者一起学习和成长的机会。
读者对象本书主要适合于以下读者:
希望更深入地了解Linux系统的中高级人员希望更深入地了解网络的中高级人员基于Linux系统的网站前后端开发人员系统运维工程师和架构师如何阅读本书本书第1章详细描述了Linux的安装、配置、用户管理、文件管理、网络管理、进程管理、软件管理等内容,这是Linux的基础入门知识,建议所有没有Linux基础的读者,或是新手通读本章。第2章是Linux性能分析,介绍了Linux系统中性能分析工具的使用方法,这在实际工作中很常用,但是根据不同的场景,也有很多组合的使用方式。第3章至第5章是所有生产环境都会使用到的用户集中认证、DNS服务和系统备份等内容,这些内容属于必知必会的部分,建议通读。第6章针对集群和集群存储进行了讲解,建议读者视自己的实际使用情况选读。第7章详细介绍了一款当前非常流行的、实时metric工具Graphite,对于很多大型系统来说,这是一款极好的系统状态记录工具。第8章介绍Cobbler,对于依然在使用传统DC的管理员来说,Cobbler是一款很好的系统自动安装配置工具。第9章和第10章详细描述了Puppet在自动化部署中的使用,这也是当前非常流行的一款配置管理工具。第11章介绍了CMDB,建议感兴趣的读者阅读。第12章是日志管理内容,描述了两种当前流行的日志处理工具Splunk和ELK,它们都是处理海量日志非常好的工具。
勘误和支持由于作者水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,您有任何宝贵意见都可以发送至邮箱[email protected],我们很期待能够听到您的真挚反馈。
致谢这本书能顺利的交稿,首先要感谢参与写作的各位作者,能从百忙的工作和各自的家庭生活中抽出宝贵的时间,分享自己的心得和体会,才能有机会让更多的爱好者和同行沟通交流。
此外,感谢机械工业出版社华章公司的编辑杨绣国(Lisa)老师,感谢她在这段时间里始终支持我们的写作,她的鼓励和帮助引导我们顺利完成全部书稿。
王军2017年5月
在决定动笔之际,参与本书写作的五位作者都就职于世界的游戏出版公司动视暴雪,因此,本书以动视暴雪中国运维团队的日常工作为背景,内容也基于(但不拘泥)日常运维的生产系统和测试系统,力图从实际生产系统和应用出发,以自己平日的实际运维工作为基本立足点,全方位、真实地展示目前Linux集群的应用现状。书中内容包括Linux系统、网络、安全、监控、备份、日志分析等,跳出了一般书籍仅仅能覆盖的原理层面,详尽真实地展现了各项技术在集群架构和运维方向上的实际应用和发展趋势,其中很多内容更是动视暴雪中国运维团队多年运维总结的实践。
对于我们自己来说,完成这本书的写作,不但能分享自己多年的工作心得,也是一次极为难得的和众多Linux爱好者一起学习和成长的机会。
读者对象本书主要适合于以下读者:
希望更深入地了解Linux系统的中高级人员希望更深入地了解网络的中高级人员基于Linux系统的网站前后端开发人员系统运维工程师和架构师如何阅读本书本书第1章详细描述了Linux的安装、配置、用户管理、文件管理、网络管理、进程管理、软件管理等内容,这是Linux的基础入门知识,建议所有没有Linux基础的读者,或是新手通读本章。第2章是Linux性能分析,介绍了Linux系统中性能分析工具的使用方法,这在实际工作中很常用,但是根据不同的场景,也有很多组合的使用方式。第3章至第5章是所有生产环境都会使用到的用户集中认证、DNS服务和系统备份等内容,这些内容属于必知必会的部分,建议通读。第6章针对集群和集群存储进行了讲解,建议读者视自己的实际使用情况选读。第7章详细介绍了一款当前非常流行的、实时metric工具Graphite,对于很多大型系统来说,这是一款极好的系统状态记录工具。第8章介绍Cobbler,对于依然在使用传统DC的管理员来说,Cobbler是一款很好的系统自动安装配置工具。第9章和第10章详细描述了Puppet在自动化部署中的使用,这也是当前非常流行的一款配置管理工具。第11章介绍了CMDB,建议感兴趣的读者阅读。第12章是日志管理内容,描述了两种当前流行的日志处理工具Splunk和ELK,它们都是处理海量日志非常好的工具。
勘误和支持由于作者水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,您有任何宝贵意见都可以发送至邮箱[email protected],我们很期待能够听到您的真挚反馈。
致谢这本书能顺利的交稿,首先要感谢参与写作的各位作者,能从百忙的工作和各自的家庭生活中抽出宝贵的时间,分享自己的心得和体会,才能有机会让更多的爱好者和同行沟通交流。
此外,感谢机械工业出版社华章公司的编辑杨绣国(Lisa)老师,感谢她在这段时间里始终支持我们的写作,她的鼓励和帮助引导我们顺利完成全部书稿。
王军2017年5月
评论
还没有评论。