zoukankan      html  css  js  c++  java
  • Linux Sever简单笔记(第十二堂课)之linux下的系统故障分析和排查

    12章Linux下的系统故障排查和分析

    Linux下的系统故障分析和排查 

    日志文件分析 

    系统启动类故障排除 

    文件系统类故障排除

    日志文件分析 

    日志的功能

    ⚫ 用于记录系统、程序运行中发生的各种事件

    ⚫ 通过阅读日志,有助于诊断和解决系统故障 

    日志文件的分类

    ⚫ 内核及系统日志

    ◆ 由系统服务syslog统一进行管理,日志格式基本相似

    ⚫ 用户日志

    ◆ 记录系统用户登录及退出系统的相关信息

    ⚫ 程序日志

    ◆ 由各种应用程序独立管理的日志文件,记录格式不统

    日志文件分析 

    日志保存位置

    ⚫ 默认位于:/var/log 目录下 

    主要日志文件介绍

    内核及系统日志 

    由系统服务 rsyslogd 统一管理

    软件包:rsyslog

    主要程序:/usr/sbin/rsyslogd

    配置文件:/etc/rsyslog.conf

    内核及系统日志 

    日志消息的级别

    ⚫ 0 EMERG(紧急):会导致主机系统不可用的情况

    ⚫ 1 ALERT(警告):必须马上采取措施解决的问题

    ⚫ 2 CRIT(严重):比较严重的情况

    ⚫ 3 ERR(错误):运行出现错误

    ⚫ 4 WARNING(提醒):可能会影响系统功能的事件

    ⚫ 5 NOTICE(注意):不会影响系统但值得注意

    ⚫ 6 INFO(信息):一般信息

    ⚫ 7 DEBUG(调试):程序或系统调试信息等

    内核及系统日志 

    日志记录的一般格式

     

    文本查看工具查看日志

     

    who

     

    用户日志分析 

    保存了用户登录、退出系统等相关信息

    ⚫ /var/log/lastlog:最近的用户登录事件

    ⚫ /var/log/wtmp:用户登录、注销及系统开、关机事件

    ⚫ /var/run/utmp:当前登录的每个用户的详细信息

    ⚫ /var/run/btmp:记录失败的错误的登录尝试及验证事件

    ⚫ /var/log/secure:与用户验证相关的安全性事件 p 分析工具

    ⚫ users whowlastlastb

    例如:

    成功登陆信息

    last

    错误登陆信息

    lastb

    程序日志分析 

    由相应的应用程序独立进行管理

    ⚫ Web服务:/var/log/httpd/

    ◆ access_logerror_log

    代理服务:/var/log/squid/

    ◆ access.logcache.logsquid.outstore.log

    ⚫ FTP服务:/var/log/xferlog 

    分析工具

    文本查看、grep过滤检索、Webmin管理套件中查看

    ⚫ awksed等文本过滤、格式化编辑工具

    ⚫ WebalizerAwstats等专用日志分析工具

    拓展:

    程序日志分析

    可定制化程度高,位置由程序自己定义,分析除了普通的文本分析外,还有自己的分析系统

    日志管理策略 

    及时作好备份和归档 

    延长日志保存期限 

    控制日志访问权限

    ⚫ 日志中可能会包含各类敏感信息,如账户、口令等 

    集中管理日志

    ⚫ 将服务器的日志文件发到统一的日志文件服务器

    ⚫ 便于日志信息的统一收集、整理和分析

    ⚫ 杜绝日志信息的意外丢失、恶意篡改或删除

    修复 MBR 扇区故障2-1 

    故障原因

    ⚫ 病毒、木马等造成的破坏

    ⚫ 不正确的分区操作、磁盘读写误操作 

    故障现象

    ⚫ 找不到引导程序,启动中断

    ⚫ 无法加载操作系统,开机后黑屏 

    解决思路

    ⚫ 应提前作好备份文件

    ⚫ 以安装光盘引导进入急救模式

    ⚫ 从备份文件中恢复

    例如:

    添加1gy硬盘

    进行分区

    格式化成ext4文件系统

    创建目录

    进行mount

    查看挂载情况

    修复 MBR 扇区故障2-2 

    应用示例

    备份 MBR 扇区数据,到别的磁盘

    dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1

    模拟 MBR 扇区故障

    dd if=/dev/zero of=/dev/sda bs=512 count=1

    光盘引导,进入急救模式,按提示操作

    从备份文件中恢复 MBR 扇区

    dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1

    创建备份

     

    遗忘 root 用户密码 

    故障原因

    ⚫ 遗忘 root 用户的密码 

    故障现象

    ⚫ 无法进行需要 root 权限的管理操作

    ⚫ 若没有其他可用帐号,将无法登录系统 

    解决思路

    ⚫ 方法一:引导进入单用户模式,重设密码

    ⚫ 方法二:进入急救模式,重设密码

    重设root密码 

    引导进入单用户模式

    打开centos7,在选择进入系统的界面按“e”进入编辑页面。

    然后按向下键,找到以“Linux16”开头的行,在该行的最后面输入“init=/bin/sh”

    接下来按“ctrl+X”组合键进入单用户模式

    再输入“mount -o remount,rw /” (注意mount与-o之间和rw/之间的有空格)

    然后再输入“passwd”回车,重设root密码

    接下来再输入touch /.autorelabel,回车

    输入exec /sbin/init,回车

    回车后出现下面的界面,这里稍微等几分钟,系统会自动重启

    接下来就等系统重启然后进入查看是否已经修改成功了

    修复文件系统2-1 

    故障原因

    非正常关机、突然断电、设备读写失误等

    文件系统的超级块(super-block)信息被破坏

    故障现象

    无法向分区中读取或写入数据

    启动后提示“Give root password for maintenance” 

    解决思路

    根据提示输入 root 口令,进入修复状态

    使用 fsck 命令进行修复

    修复文件系统2-2 

    应用示例

    模拟对 /dev/sdb1 分区的破坏操作

    ◆ dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

    检查是否能挂载该分区

    ◆ mount /dev/sdb1 /mnt/

    ◆ mount: you must specify the filesystem type

    /dev/sdb1 分区进行修复

    ◆ fsck -y -t ext4 /dev/sdb1

    再次挂载该分区

     例如:

    破坏扇区

    断开磁盘连接

    reboot

    选第三个,进入急救模式,恢复备份

     

     

     

     

    磁盘资源耗尽故障 

    故障原因

    ⚫ 磁盘空间已被大量的数据占满,空间耗尽

    ⚫ 虽然还有可用空间,但文件数i节点耗尽 

    故障现象

    ⚫ 无法写入新的文件,提示“… : 设备上没有空间”

    ⚫ 部分程序无法运行,甚至系统无法启动 

    解决思路

    ⚫ 清理磁盘空间,删除无用、冗余的文件

    ⚫ 转移或删除占用大量 i 节点的琐碎文件

    ⚫ 进入单用户模式、急救模式进行修复

    ⚫ 为用户设置磁盘配额

    检测磁盘坏道2-1 

    故障原因

    ⚫ 磁盘设备中存在坏道(逻辑的或物理的) 

    故障现象

    ⚫ 读取磁盘中的数据时,磁盘设备发出异常声响。

    ⚫ 访问磁盘中的某个文件时,反复读取且出错,提示文件损坏

    ⚫ 对于新建立的分区无法完成格式化

    ⚫ 系统使用该磁盘时频繁死机

    检测磁盘坏道2-2 

    解决思路

    检测硬盘中是否存在坏道

    修复硬盘,或更换新的硬盘

    [root@centos7 ~]# badblocks -sv /dev/sdb

    正在检查从020971520的块

    Checking for bad blocks (read-only test): 完成

    Pass completed, 0 bad blocks found.

  • 相关阅读:
    P3396 哈希冲突 分块
    大数据之路week01--自学之面向对象java(static,this指针(初稿))
    大数据之路week01--自学之集合_2(列表迭代器 ListIterator)
    大数据之路week01--自学之集合_2(List)
    大数据之路week01--自学之集合_2(Iterator迭代器)
    大数据之路week01--自学之集合_1(Collection)
    大数据之路day05_1--初识类、对象
    大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)
    大数据之路day04_1--数组 and for循环进阶
    eclipse断点的使用---for循环举例
  • 原文地址:https://www.cnblogs.com/yxd1308243944/p/13936963.html
Copyright © 2011-2022 走看看