【ch05】Linux系统故障排查案例实战_第1页
【ch05】Linux系统故障排查案例实战_第2页
【ch05】Linux系统故障排查案例实战_第3页
【ch05】Linux系统故障排查案例实战_第4页
【ch05】Linux系统故障排查案例实战_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Linux服务器安全管理高级运维》课程教案课题:项目5Linux系统故障排查案例实战教学目的:1.了解Linux系统运维过程中一些常见的故障2.了解Apache的常见故障3.理解Linux系统运维过程中故障的解决方法4.掌握常见故障的解决方法和思路5.掌握Apache的故障处理方法6.掌握NAS系统存储故障处理方法课型:新授课课时:本章安排4个课时。教学重点:重点:掌握Linux系统常见故障(su切换失败、Read-onlyfilesystem、Argumentlisttoolong、inode耗尽、文件删除空间未释放、Toomanyopenfiles)的排查思路与解决方法。掌握Apache常见故障(Nospaceleftondevice、httpd.pid文件错误、80端口绑定失败)的定位思路与处理方法。教学难点:难点:inode节点的概念理解及其耗尽问题的排查与解决(df-i、dumpe2fs、stat等命令的使用)。信号量(SystemV信号量)耗尽导致Apache无法启动的排查思路及ipcs/ipcrm命令的使用。教学过程:教学形式:讲授与实训结合,教学组织采用课堂整体讲授、命令行演示操作与分组讨论相结合的方式。教学媒体:采用“课堂整体讲授+投屏命令行演示+系统运行测试”的方式进行。通过整体讲授建立Linux系统故障排查的系统性思路,涵盖系统权限类故障、存储类故障、文件描述符类故障、服务启动类故障及网络服务类故障五大类型;借助投屏实时执行命令,分步演示stat查看根目录权限、fsck修复只读文件系统、getconfARG_MAX查看参数限制、find结合-exec删除大量文件、df-i查看inode使用率、lsof查看已删除但未释放空间的文件、ulimit-n查看文件描述符限制、ipcs-s查看信号量、ipcrm清除信号量、chown修改httpd.pid属主、chmodu+s设置SUID权限等关键操作;同时设计有备份恢复与无备份恢复对比、物理空间与inode空间耗尽对比、ulimit设置未生效与生效对比、root用户与普通用户绑定特权端口对比等多组对比案例,引导学生通过对比分析掌握不同类型故障的定位思路与解决方法。板书设计:本课标题Linux系统故障排查案例实战课次2授课方式理论课□讨论课□习题课□其他□课时安排4学分共2分授课对象普通高等院校学生任课教师教材及参考资料1.《Linux服务器安全管理高级运维》;电子工业出版社。2.本教材配套视频教程及学习检查等资源。3.与本课程相关的其他资源。教学基本内容教学方法及教学手段项目情境本项目主要介绍Linux系统运维过程中常见的一些故障案例,这些案例都来自实际生产环境。每个案例都会介绍一个小问题,这些问题实际上非常简单,相信大家也都遇到过。需要说明的是,本项目的重点不在于解决问题,因为系统运维过程中的问题种类繁多,无法逐一介绍每种问题。这里重点讲述解决问题的思路。针对问题,我们首先介绍问题现象,其次阐述解决问题的思路,再次介绍问题排查的过程,最后给出解决问题的方法。通过这样的介绍,使读者掌握解决问题的统一方法和思路。有了这样的思路,相信所有问题都能迎刃而解。参考以下形式:1.衔接导入2.悬念导入3.情景导入4.激疑导入5.演示导入6.实例导入7.其他形式本章基本知识汇总任务1常见的Linux系统故障案例5.1.1使用su命令切换用户时引发的问题问题现象:root用户下su切换为oracle用户出现Permissiondenied错误,oracle用户也无法直接登录。解决思路:检查/home/oracle目录权限→su命令执行权限→su依赖共享库权限→SELinux状态→系统根空间。排查过程:逐一排查目录权限、su权限、共享库权限、SELinux(均正常)→检查/home目录下各用户权限时发现根目录权限为666(正常应为755)→使用stat命令确认。解决方法:chmod755/恢复根目录执行权限。核心启示:根目录缺失可执行权限影响所有用户操作,排查权限问题时务必关注根目录权限。5.1.2“Read-onlyfilesystem”问题问题现象:网站无法添加数据,但可正常访问,服务器和磁盘阵列无报警。解决思路:检查网站程序→检查服务器磁盘故障。排查过程:程序日志显示无法创建目录→手动mkdir测试提示Read-onlyfilesystem→确认/www/data为挂载的磁盘阵列分区→umount提示devicebusy→fuser-m/dev/sdb1查找占用进程→发现apache进程未停止。解决方法:停止apache进程→umount卸载→fsck修复磁盘分区→mount重新挂载→验证可创建文件。原因分析:ext3/ext4文件系统遇到无法修复的致命错误时,为保证数据一致性转为只读模式。5.1.3“Argumentlisttoolong”问题问题现象:crontab编辑保存时发生错误,提示磁盘空间不足。解决思路:检查/tmp分区→检查根分区→检查系统其他分区。排查过程:df命令发现/var分区使用率100%→du-sh定位到/var/spool/clientmqueue目录占用90%→该目录为邮件暂存目录,因sendmail未开启导致邮件积压→rm*删除时出现Argumentlisttoolong错误。原因分析:Linux系统传递参数限制(getconfARG_MAX查看),CentOS5.x中该值较小。4种解决方法:手动分批删除(rm[a-n]*等)→find结合-exec删除(find...-execrm-f{};)→Shell脚本循环删除→重新编译内核修改MAX_ARG_PAGES(不推荐初级用户)。5.1.4inode耗尽问题问题现象:Oracle数据库服务器重启后无法启动监听,提示磁盘空间不足但df查看空间充裕。解决思路:物理磁盘空间→inode节点空间→信号量存储空间。inode概念:文件由数据块和元数据组成,inode存储元数据(创建者、日期、大小等)。格式化时确定inode总数(dumpe2fs-h查看),每个inode大小128B或256B。类比:文件系统=书,inode=目录,inode耗尽=目录写满但还有纸(磁盘空间)。查看inode使用率:df-i→发现/var分区inode已100%使用。排查定位:/var/spool/clientmqueue目录有500多万个文件,由crontab任务未重定向导致。解决方法:find/var/spool/clientmqueue/-name"*"-execrm-rf{};删除积压文件→重启监听恢复正常。5.1.5文件已被删除,但空间未被释放的问题问题现象:根分区空间满,删除/tmp/access_log(66GB)后df查看空间仍未释放。解决思路:文件系统存储机制——指针部分在meta-data中,数据部分在磁盘上。删除文件时清除指针,数据部分可被覆盖。若进程锁定文件,指针未被清除,内核认为文件未删除。排查过程:lsof命令查看已删除但仍被占用的文件列表→发现access_log被httpd进程锁定,状态为deleted,大小达70GB。解决方法:在线清空文件(echo"">/tmp/access_log)→立即释放空间且保障进程继续写入。也可重启httpd进程或重启操作系统(非最佳)。应用场景:在线清理Apache、Tomcat、NGINX等Web服务日志文件。5.1.6“Toomanyopenfiles”问题问题现象:JavaWeb应用无法添加数据,Tomcat日志提示“Toomanyopenfiles”。ulimit命令:用于限制进程对资源的使用。常用参数:-a(显示所有)、-H(硬限制)、-S(软限制)、-n(最大文件描述符数)、-u(最大进程数)等。配置方式:用户环境变量(.bashrc)、应用启动脚本、Shell终端执行、/etc/security/limits.conf统一配置(domaintypeitemvalue)。排查过程:ulimit-n显示65535(值足够)→检查www用户环境变量无ulimit限制→检查Tomcat启动脚本无ulimit限制→检查limits.conf已配置→发现Tomcat启动时间(7月6日)早于limits.conf修改时间(7月12日),且服务器已运行283天未重启,配置未生效。解决方法:重新启动Tomcat服务使ulimit配置生效。核心启示:ulimit配置对配置生效前已启动的进程无效,需重启进程或服务器。任务2Apache常见错误故障案例5.2.1“Nospaceleftondevice”错误问题现象:apachectlstart无报错但无法访问网页,无httpd进程运行,80端口未启动。解决思路:检查防火墙/SELinux→检查httpd进程/端口→查看Apacheerror日志。日志信息:“Nospaceleftondevice:mod_rewrite:couldnotcreaterewrite_log_lock”→物理磁盘空间充裕→inode节点充裕→判定为信号量存储空间耗尽。信号量知识:信号量是进程间通信的锁机制,分SystemV(ipcs查看)和POSIX两种。Apache使用SystemV信号量。系统默认信号量设置位于/proc/sys/kernel/sem(SEMMSL/SEMMNS/SEMOPM/SEMMNI)。解决方法:ipcs-s|grepnobody查看占用信号量→ipcrm清除→重启Apache恢复正常。5.2.2“Apache(20014)”错误问题现象:网站无法访问,Apache无法启动,提示httpd.pid文件错误。解决思路:httpd.pid文件是Apache进程PID文件,记录启动进程ID,防止进程启动多个副本。正常启动时创建,正常关闭时删除。启动时查找该文件,若存在但内容为空则报(20014)Internalerror。解决方法:直接删除httpd.pid空文件→或向其中写入任意数字→重启Apache自动获取新PID写入文件。5.2.3“couldnotbindtoaddress:80”错误问题现象:更换硬件重启后Apache无法启动,Tomcat可启动。排查过程:检查启动用户为www,监听端口80,目录权限正常→改为8000端口可启动但日志显示httpd.pid无权限→修改httpd.pid属主为www后8000端口启动成功→但80端口仍无法启动。端口分类知识:公认端口(0~1023,系统预留,仅root可绑定)→注册端口(1024~49151,用户进程可用)→动态端口(49152~65535)。80端口属公认端口,普通用户无权绑定。解决方法:以root用户启动Apache(简单但存在安全风险)→设置httpd文件SUID属性(chmodu+s/usr/local/apache2/bin/httpd)→普通用户可启动,父进程为root,子进程为www用户(在httpd.conf中配置User/Group)。任务3NAS系统存储故障引起的Linux系统恢复案例问题现象:NAS系统(Linux内核,16块磁盘两组RAID5)无法正常启动,启动到CUPS服务时停止,Ctrl+C无响应,磁盘状态正常。第一次排查:判断为Linux系统问题→尝试进入单用户模式(引导界面按E编辑内核选项加single)→成功进入单用户→执行chkconfig--level35cupsoff禁用CUPS自启动→重启后问题依旧。第二次排查:再次进入单用户→vi编辑cupsd.conf时提示“writefileinswap”(文件在虚拟内存中)→df命令发现系统分区未挂载→fdisk-l查看分区→手动mount/dev/sda2/mnt和/dev/sda1/opt→发现/dev/sda2(根分区)空间已100%使用。原因分析:根分区空间耗尽→CUPS服务启动时需写日志到根分区→无法写入导致服务启动失败。解决方法:du-sh/var/log发现占50.1GB→清理/var/log目录下日志文件→释放根分区空间→重启NAS系统恢复正常。核心启示:存储故障排查需关注物理空间、inode、信号量三维度;单用户模式下系统分区默认未挂载需手动挂载。1.教学以学生学习教材的基本内容为主,系统全面地学习Linux系统故障排查案例实战的基本内容。2.整个教学过程中,各教学点可根据实际情况,进行拓展知识的讲解。本章小结:本项目通过9个来自实际生产环境的故障案例,系统讲解了Linux系统运维中常见问题的排查思路与解决方法。案例覆盖了权限类故障(根目录权限错误导致su切换失败

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论