内核资料收集
1. linux内核死机现象
a. MCE(memory check exception)
系统硬件出现异常
b. Panic
出现严重故障时,会产生Panic。
c. Oops
可以看作是内核级的segment fault。多是因为使用了错误地址。
d. NMI_Watchdog
系统发生死锁时会触发NMI_Watchdog
e. 其它
2. 故障
a. 两种严重问题crash和hang
crash:内核发现自己出故障时,会在停止或重启之前能做一些处理
hang:内核出现未发现的严重死锁,内核没能力做任何事
因为没能力向磁盘或屏幕输出信息,用户可能看不能任何信息
b. 内存耗尽
内存耗尽,杀死进程
c. 文件系统只读
3. 信息收集
a. 系统日志(syslog)
通常保存在/var/log/messages(或/var/log/目录下的其它文件)
中
b. dmesg
打印内核缓冲区信息
c. 网络信息(netstat)
d. 其它
4. 串口信息获取
操作系统运行过程中,
可以设置将串口信息转发到串口,当出现异常情况时,通过串口可以捕获系统输出的错误信息
/boot/grub/menu.lst
serial --unit=0 --speed=115200
terminal --timeout=15 serial console
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.9-TEST)
root (hd1,0)
kernel /boot/vmlinuz-2.6.9-TEST ro root=LABEL=/1 rhgb console=tty0 console=ttyS0,115200n8
/etc/inittab
co:2345:respawn:/sbin/agetty -L 115200 ttyS0 ansi
5. 网络终端获取信息
Netconsole (netconsole.c) 的主要功能,是试图通过直接调用网卡驱动接口的方式来发送一些消息到远程的udp服务器。
信息包括:printk buffer当中能够被console链表输出的信息,即能够通过tty终端和ttyS串口输出的信息。
实际应用中,Netconsole被用来把终端的重要信息重定向到网络服务器上,以方案可实现远程监控的功能,包括死机时打印的panic等信息。
6. 魔术键
sysrq 魔术键是一种组合键,除非内核被完全锁住,否则在任何情况下内核都会对它都会做出反应。
通过魔术键可以取得系统的CPU,内存,堆栈等信息,还可以结合LKCD触发生成DUMP,为操作系统的定位提供依据。
魔术键的组合型式为:alt-Sysrq-<相应命令键>
魔术键功能的详细说明请参见:linux/Documentation/sysrq.txt
7. LKCD(Linux Kernel Crash Dump)
a. 内核发生Panic时,会将当前系统状态信息(主要是内存)写入事先指定的转贮设备
b. 根据转贮设备的不同,LKCD可以分为disk dump和net dump。
对于disk dump,这个转贮设备必须是个独立分区,通常可以设置为系统交换区。
在系统panic时用来存入状态信息,在下次重启时(在存储交换功能开启之前)系统会运行一个称为 LCRASH 的工具来生成崩溃的概要记录,并可选择地把转储的复本保存在一个普通文件中。
阅读(670) | 评论(0) | 转发(0) |