DevOps故障排除:Linux服务器运维最佳实践.pdf
DevOps故障排除:Linux服务器运维最佳实践.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!第2章服务器为什么这么慢?耗尽了CPU、RAM和磁盘l/O资源……152.1系统负载………1622使用top命令解决负载问题…………………18221了解top命令的输出毛,·,,,……………19222解决高用户时间的问题…21223解决内存不足的问题………2222.4解决高LO等待时间问题……………………242.3问题发生后的高负载处理…………272.3.1配置 sysstat272.3.2查看CPU统计信息…2823.3查看RAM统计信息…2923.4查看磁盘统计信息,,,,,,,……2923.5查看之前的统计信息30第3章为什么系统无法启动?解决启动问题…………………323.1 Linux启动流程323.1.1BIOS……………333.1.2GRUB和 Linux启动载入程序…333.1.3内核与初始RAM破盘353.1.4/sbin/init…………………………353.2BIOS启动顺序3.3修复GRUB……433.3.1没有GRUB提示…4433.2阶段1.5GRUB提示………453.3.3配置错误的GRUB提示…463.3.4从活动系统中修复GRUB…,,,,,,,,,,,,,,46XII3.3.5通过恢复磁盘修复GRUB果,,,,,,,,,………………………4734禁止启动界面473.5无法挂载根文件系统483.51根内核参数483.52根设备更改………………………493.53根分区损坏或失效…………………523.6无法挂载二级文件系统…………………………52第4章为什么磁盘无法写入?解决磁盘满或者磁盘损坏的问题…,和翻车534.1磁盘满8·,,·,·,.,,、、,……………………………………534.1.1保留区块544.1.2找到占用空间最大的目录……………………554.2节点不足5743文件系统只读…………………………………5844修复损坏的文件系统584.5修复软RAID…………………………………60第5章服务器宕机了?追踪网络问题的根源635服务器A不能和服务器B通信…645.1.1客户端或者服务器问题…………………6451.2链路接通了吗6451.3接口是否启用…………………………………………665.1.4是否连通本地网络……………………6651.5DNS是否工作正常…6851.6是否可以路由到远程主机705.1.7远程端口是否开放…51.8在本地测试远端主机…72XIII5.2网络速度较慢的故障排除…………7452.1DNS的问题……………………………………………7452.2通过 traceroute查找网络缓慢的原因……552.3使用 ftop查看带宽使用情况…………………765.3抓取数据包7953.1使用 tcpdump………………………805.32使用 Wireshark…83第6章为什么主机名无法解析?解决DNS服务器的问题…876.1DNS客户端故障排除……………………………8861.1未配置名称服务器或者无法访问名称服务器………896.1.2丢失查询路径或者名称服务器问题62DNS服务器故障排除……9162.1了解dig的输出………………………926.2.2跟踪DNS查询956.2.3递归名称服务器的问题………………………………976.2.4什么情况下没有执行更新……101第7章为什么无法收发邮件?追踪邮件问题……………127.1追踪邮件请求…1137.2了解邮件头信息…,,·1167.3邮件发送的问题1187.3.1客户端无法与外部邮件服务器通信……………1197.3.2出站郎件服务器不允许转发1237.3.3出站邮件服务器无法与目标服务器通信…………12474接收邮件的问题………1277.4. I telnet测试无法连接,,,,,,·,.,,,,,,,,,,·,,·,··,,,,,,,,,,,,、,.,91297.4.2 telnet可以连接,但消息却被拒绝了……130XIV7.4.3研究邮件日志………130第8章网站宕机了?追踪Web服务器问题…1338.1服务器是否正在运行………………………1348.1.1远程端口是否开放…………………1348.1.2在本地测试远程主机…1358.2使用命令行测试Web服务器………………1378.2.1使用curl测试Web服务器………1378.22使用 telnet测试Web服务器““。·画=·“a·。1398.3HTTP状态码,,,,.,甲,,..,,,··,,音…1418.3.11××信息状态码…………………………………1418.3.22××成功状态码…………8.3.33××重定向状态码………………………1428.3.44××客户端错误状态码1438.3.55××服务器错误状态码……………………………14484分析Web服务器的日志…1458.5获取Web服务器统计数据……………………1498.6解决常见的web服务器问题……………15486.1配置问题………………………………154862权限问题………1558.6.3Web服务器性能迟缓或不可用……………157第9章为什么数据库这么慢?追踪数据库问题……1619.1查找数据库日志…………………………1629. 1. 1 MySQL……1629.1.2 PostgresQL………16292数据库还在运行吗1639.2.1 MYSOL……164922 PostgresQL……………………1659.3获得数据库度量值……1669.3.1 MySQL…………………………16693.2 PostgreSQL……………………16894识别查询缓慢的问题………………1719.4.1 MySQL……17194.2 PostgresQL……………………173第10章这是硬件问题!诊断常见的硬件问题17410.1硬盘驱动器无法工作…17510.2测试内存错误………178103网卡故障…180104服务器过热………………………………l8110.5电源供电故障………………………………183第1章故障排除的最佳实践故障排除是一项技能,和所有的技能一样,不论是变魔术、弹吉他、烹饪或者编程,有的人生来就有天分,有的人则不然。如果你很自然地就掌握了某种技能,可能会认为别人也能轻松掌握。毕竟,如果你第一次尝试就学会了骑自行车,可能就会想当然地以为别人学会骑自行车也不需要付出多少努力。有人天生善于排除故障,当出现故障的时候,他们会不假思索地采取行动,本能地选择方法进一步隔离故障,直到查清故障的根本原因。当你把汽车交给一个善于排除故障的汽车修理工,在你刚描述完车子的“症状”后,他就已经开始摆弄你的汽车了,因为在你描述时他已经把问题锁定在少数几个成因上,并且预判了问题的原因。做过一些测试之后,他确认了预判的正确性,开始动手修理了。另外一种情况是,当你把汽车送给一个不善于排除故障的汽车修理工,你将会收到高昂的维修账单,不断地去维修店换掉汽车的个又一个部件。故障排除技能任何人都可以学会,和很多技能一样,故障排除需要用到一些技术,不论是否有天赋,都可以通过训练使这些技术成为本能。你不仅想成为排除故障的高手,还希望能够成为排除故2◆第1章故障排除的最佳实践障的快手。在用金钱衡量故障时间的环境下工作更是这样。毕竞,不论是优秀的汽车修理工还是差的汽车修理工最终都会修好你的车,但是你更希望哪个汽车修理工来修理你的汽车呢?在 DevOps组织里,团队中的每位成员都负责一部分故障排除。开发者排除软件中的漏洞,系统管理员排除硬件问题,质量团队首先花费大量时间寻找问题,然后尝试定位问题的根本成因。当DevOps团队中的每个人使用相同的经过验证的故障排除技术时,整个团队都会从中受益。本章介绍的一些故障排除最佳实践可以应用到任何问题上。当你读过本章之后,会发现其中大部分实践都是常识,但是你会惊讶地发现,当遇到问题时,竞然有那么多人都忽略了这些常识。1.1划分问题空间如果让你去猜我正在想的一个1~100内的数,你会猜哪个?比如这个数是73,每次猜完之后我会告诉你你猜测的数字比这个数大还是小。一些人可能会随机猜某个数字,或者从1开始逐步递加。善于排除故障的人可能会这样猜:50(小了),75(大了),63(小了),69(小了),72(小了),73。每次猜测都会排除一半的可能性。这个例子里,为找到正确答案只猜了6次。而如果从1开始递加,需要猜73次。如果是随机猜,有可能要遍历所有的数字才能猜中答案。这个方法适用于所有的故障排除。面对问题,一些人从可能产生问题的原因列表的底层开始,一步一步解决问题,另外一些人选择随机测试直到幸运地找到原因。一位优秀的故障排除人员选择的每一项测试的结果都会排除一类原因,而不是一个原因,将故障分而治之。划分问题空间之后,即使一项测试不能找到故障的根本原因,测试结果最少也能排除掉几个可能的原因。1.2协同工作时的良好沟通例如,如果我尝试用浏览器访问一个网站,但是请求超时,此时我想测试是网站的原因还是我的网络连接有问题,但我不会立即去査看网线是否没有插好,而是访问一两个通常都很稳定的其他网站。如果别的网站能正常加载,就可以确定我的网络连接正常,从而省去一系列本地网络测试。当你和团队中的其他人协作排除故障时,也会在团队成员之间划分问题空间,没有比跟踪一个问题的时候发现有人也在做相同的测试更坏的事情了。当你在团队环境下着手解决一个问题时,要给每个人分配不同的测试并保证一旦某个人排除了一个原因,能及时把结果传达给其他人。1.2协同工作时的良好沟通建立良好的沟通方法是团队排除故障的最大挑战之一。如果没有良好的沟通,两个人不会意识到正在解决相同的问题,一个人会重复排查别人已经检查过的问题。更糟糕的是,人们误解了说明,让问题变得愈加严重。下面几节将会介绍协作时用到的不同沟通方法,并且描述在不同场景下哪些沟通方式有效,哪些无效。1.2.1电话会议电话会议是解决问题时最常见但也绝对是最坏的方法之一。它最大的问题是电话会议上每次只有一个人可以说话。即便你很幸运,只与直接解决问题的人打电话,但其他人就算有新信息、突破性进展、警告或者别的信息,都不得不等轮到自己发言时说。即使轮到他们发言,因为多次发言的中断、糟糕的电话信号或者来自忘记静音的麦克风的背景噪音,不能保证每个人一次就能理解他们所说的内容。在沟通命令行命令、IP地址、日志输出或者任何其他远程技术时尤为困难。
下载地址
用户评论
非常不错的,谢谢!