当前: 首页 - 图书专区 - 大规模Linux集群架构最佳实践:如何管理上千台服务器
大规模Linux集群架构最佳实践:如何管理上千台服务器


  在线购买
魔软运维社 著
978-7-111-57585-6
79.00
408
2017年09月01日

计算机 > 计算机网络 > 计算机网络

183
简体中文
16

店面
Linux/Unix技术丛书








本书是以视暴雪中国运维团队七位作者的日常工作作为背景,全面的解析了Linux集群在动视暴雪的应用现状,内容包括Linux系统、网络、安全、监控、备份、日志分析、自动化等内容,跳出了一般书籍仅仅能覆盖的原理层面,详尽真实的展现了各项技术在集群架构和运维方向上的实际应用和发展趋势,绝对是一本不可多得的实战案例。
本书所有涉及到的软件全是Linux开源软件,且全部都真实在动视暴雪中国部署使用,内容按照技术方向分为五部分,十六章节。第一章至第四章为基础篇;第五章至第十一章为集群篇;第十二章、第十三章是网络和存储篇;第十四章、十五章为监控篇;第十六章为实战篇。
第一章主要内容是Linux系统简介和基础入门,对于Linux中高级人员,有基础的读者可以略过;第二章是Linux系统性能分析,是作者多年来的经验总结和实战理解,建议读者阅读;第三章主讲基于Openldap的用户集中认证,这在很多公司都有实际部署应用;第四章是DNS的配置管理和使用;第五章是大规模系统部署工具cobbler的实战篇,也是目前最为流行的PXE套件;第六章是强大的内容配置管理系统puppet的实战篇;第七章是自动化备份软件bacular的讲解,这也是一款极为流行的自动化备份工具;第八章是系统自动化管理的方法论和实践;第九章是关于资产管理CMDB的讨论;第十章是Linux高可用集群和负载均衡集群的实战篇;第十一章是日志管理篇,简要的描述了实用的日志管理工具;第十二章是系统赖以工作的基础支撑系统——网络的讲解,涉及防火墙、负载均衡、交换网络、设备配置管理、网络监控和排错方面的知识,更从实际经验谈到了合理的网络设计;第十三章简要的讲了SAN和NAS存储的知识;第十四章是重量级监控工作zabbix的使用和分析;第十五章是另一款监控工具graphite的讲解;第十六章是全书的集大成篇,该篇基于真实的系统架构,是前十五章的有机结合,让读者了解到真实集群运行中软件集成的方式。
随着互联网技术的迅猛发展,互联网应用已经触及并深入到人们的日常生活中,为人们提供了极大的便利,Linux作为被广泛使用的各类应用的后端操作系统,也因此迎来了重要的大规模应用,Linux集群服务应运而生。那么,如何更简易、更快捷、更有效地管理Linux集群呢?本书作者将以自己的实践经验为基础,通过实战案例讲解大规模Linux集群服务的应用与运维技巧。
本书的主要内容和特色:
结合大量的实践案例,以授之以渔的方式对大规模Linux集群架构技术点进行总结和归纳,从而迅速提高读者的实战能力。
5位作者都是各自负责领域的专家,对开源工具的利用和理解有着深厚的功力和独到的见解,本书取众人之所长,更好地保证了内容的准确性与实用性。
从多个技术角度详尽地描述了Linux集群的设计、搭建、部署和运维,特别强化了自动化、规模化的概念,帮助读者快速上手并掌握相关知识点。
随着Linux开源软件的发展,涌现了一批非常好的自动化备份、配置管理、日志分析等工具,本书针对这一系列工具进行了深入讲解。
以鼓励动手的方式增强阅读效果,读者在多次阅读后技能上会有本质的提高。
为什么要写这本书
五个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,它们都是处理海量日志非常好的工具。
勘误和支持
由于作者水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,您有任何宝贵意见都可以发送至邮箱johnwang.wangjun@gmail.com,我们很期待能够听到您的真挚反馈。
致谢
这本书能顺利的交稿,首先要感谢参与写作的各位作者,能从百忙的工作和各自的家庭生活中抽出宝贵的时间,分享自己的心得和体会,才能有机会让更多的爱好者和同行沟通交流。
此外,感谢机械工业出版社华章公司的编辑杨绣国(Lisa)老师,感谢她在这段时间里始终支持我们的写作,她的鼓励和帮助引导我们顺利完成全部书稿。

王军
2017年5月
前言
第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 Replication203
8.3.7 Cobbler实战204
8.4 操作系统无盘技术206
8.4.1 定义206
8.4.2 制作无盘镜像206
8.4.3 测试无盘镜像212
8.5 本章小结213
第9章 Puppet配置管理214
9.1 什么是Puppet214
9.1.1 Puppet对于系统运维意味着什么214
9.1.2 为什么选择Puppet215
9.2 安装Puppet216
9.2.1 准备工作216
9.2.2 安装一个服务端219
9.2.3 安装一个客户端219
9.2.4 连接第一个客户端220
9.2.5 Puppet master上的site.pp220
9.2.6 制作第一个模块223
9.3 深入Puppet227
9.3.1 深入resources type227
9.3.2 深入metaparameter240
9.3.3 深入fact245
9.3.4 深入流程控制248
9.3.5 深入function252
9.3.6 深入template257
9.3.7 深入define type259
第10章 Puppet实战262
10.1 扩展Puppet262
10.1.1 自定义模块262
10.1.2 使用公有模块271
10.1.3 神奇的enc273
10.1.4 自定义resource type/facter/function275
10.2 管理好一个Puppet集群280
10.2.1 监控Puppet运行状况280
10.2.2 做好Puppet的容量规划288
10.2.3 使用版本控制来管理代码295
10.2.4 确保你的代码不是留给别人的坑311
第11章 CMDB配置中心管理314
11.1 什么是DCIM314
11.2 什么是CMDB315
11.3 运维为什么需要CMDB316
11.3.1 整合信息316
11.3.2 关系映射316
11.3.3 防止配置偏差316
11.3.4 自动化317
11.3.5 中央管理317
11.4 如何选择适合的CMDB317
11.4.1 每个项目都会遇到的那些任务317
11.4.2 选择开源的CMDB321
11.5 自主搭建CMDB324
11.5.1 openDCIM安装324
11.5.2 openDCIM配置327
11.5.3 openDCIM API339
11.5.4 解决每个项目都会遇到的那些任务359
11.6 如何管理好一个CMDB371
11.6.1 制定相应流程管理371
11.6.2 CMDB与自动化373
11.6.3 做好CMDB的架构设计374
11.6.4 那些年,我们碰过的坑375
第12章 日志管理378
12.1 日志中的四个W378
12.2 首先要有一个日志服务器378
12.2.1 rsyslog379
12.2.2 syslog-ng380
12.2.3 如何选择syslog程序382
12.3 常见的日志分析处理工具382
12.4 Splunk的安装配置384
12.4.1 下载Splunk安装程序包384
12.4.2 安装启动Splunk384
12.4.3 配置Splunk385
12.4.4 搜索日志388
12.5 Elasticsearch+Logstash+Kiana388
12.5.1 ELK简介388
12.5.2 安装ELK软件包389
12.5.3 配置Logstash391
12.5.4 配置Elasticsearch392
12.5.5 配置Kibana393
12.6 Elasticsearch入门395
12.6.1 基本配置395
12.6.2 安装插件397
12.6.3 API397
计算机\网络
读者书评
发表评论



高级搜索
无线通信网络与系统
运营有道:重新定义互联网运营
无线网络:理解和应对互联网环境下网络互连所带来的挑战


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才