centos5.7下的kdump

摘要:
我的centos5.7是台虚拟机,用的是virtualbox安装的。1,从上图可以看出我的kdump没有安装,我的内存给的是4096而到了这里只能使用3个G。2,接下来安装kexec-tools、kernel-debuginfo和kernel-debuginfo-common。看到状态是notoperational,即不能操作,因为我们还没有配置kdump,也还没有启动它。8,再次启动kdump并检查状态。由于kdump是开机启动的,重启后直接查看状态即可。从开始的kdumpisnotoperational变成了现在的kdumpisoperational,说明kdump配置成功可以使用了。config_kdump.sh内容现在是这样的:#!

我的centos5.7是台虚拟机,用的是virtual box安装的。安装的时候安装模式我没有选择图像界面,而是最小化安装,即只有命令行。

centos5.7下的kdump第1张

1,从上图可以看出我的kdump没有安装(5.7最小化安装没有装kdump),我的内存给的是4096而到了这里只能使用3个G。

2,接下来安装kexec-tools、kernel-debuginfo和kernel-debuginfo-common。kexec-tools这个包装了之后才有kdump服务,安装kernel-debuginfo和kernel-debuginfo-common是因为crash分析vmcore文件时要用到它的vmlinux文件,不安装的话找不到vmlinux文件就无法使用crash分析vmcore文件了。我这儿kernel-debuginfo和kernel-debuginfo-common事先已经从官网下载好了。

centos5.7下的kdump第2张

3,安装好了之后我们看一眼kdump的状态。看到状态是not operational,即不能操作,因为我们还没有配置kdump,也还没有启动它。

centos5.7下的kdump第3张

4,配置kdump。我把配置过程放进了脚本当中。当然这个配置过程的来自我的导师钟会,只不过我把它放到了脚本当中而已。执行脚本即可。

centos5.7下的kdump第4张

5,脚本执行完成之后配置文件/etc/kdump.conf的内容变成了这样

centos5.7下的kdump第5张

第一行是 / 分区对应的设备和文件系统。

第二行是捕捉崩溃保存的文件所存放的位置。

第三行设置保存内核镜像内容的级别,-c表示使用makedumpfile压缩数据,--message-level1表示提示信息的级别(1表示只显示进度信息)-d31表示不复制所有可以去掉的内存页(包括zeropage,cachepage,cacheprivate,userdata,freepage等)。

第四行是一些额外的模块。

第五行是崩溃后默认自动重启。

5,启动kdump。并查看状态。我这里没有这2个模块,所以启动失败。

centos5.7下的kdump第6张

6,去掉这2个模块再次启动并检查状态。(⊙o⊙)哦!!!还是无法启动,真尴尬!注意划线部分Please reserve memory by passing "crashkernel=x@y" parameter to the kernel.查看/var/log/messages文件里头也有提示错误:No crashkernel parameter specified for running kernel

centos5.7下的kdump第7张

centos5.7下的kdump第8张

centos5.7下的kdump第9张

7,网上查了一下资料说将crashkernel=auto改为crashkernel=128M@48M或者更大,取决于内存是否足够。那么接下来我就照搬过来改一下。

centos5.7下的kdump第10张

8,再次启动kdump并检查状态。

centos5.7下的kdump第11张

9,糟糕的是还是启动失败,难道是要重启服务器?于是我就重启了。由于kdump是开机启动的,重启后直接查看状态即可。

centos5.7下的kdump第12张

10,这回终于成功了。从开始的kdump is not operational变成了现在的kdump is operational,说明kdump配置成功可以使用了。config_kdump.sh内容现在是这样的:

#!/usr/bin/env bash
device=`df -lh /var |tail -1 |awk '{print $1}'`
filesystem=`mount|grep -w $device|awk '{print $(NF-1)}'` > /etc/kdump.conf
echo "$filesystem $device" >> /etc/kdump.conf
echo "path /var/crash" >> /etc/kdump.conf
echo "core_collector makedumpfile -c --message-level 1 -d 31" >> /etc/kdump.conf
#echo "extra_modules mpt2sas mpt3sas megaraid_sas hpsa ahci" >> /etc/kdump.conf
echo "extra_modules mpt2sas megaraid_sas ahci" >> /etc/kdump.conf
echo "default reboot" >> /etc/kdump.conf
sed -i "s/mkdumprd -d/mkdumprd --allow-missing -d/" /etc/init.d/kdump
chkconfig --level 2345 kdump on
#grubby --args='crashkernel=auto' --update-kernel=ALL
grubby --args='crashkernel=128M@48M' --update-kernel=ALL

11,接下来验证一下kdump是否能够捕捉内核崩溃。

centos5.7下的kdump第13张

开启Magic System Request Key功能:echo 1 >/proc/sys/kernel/sysrq

制造系统崩溃:echo c >/proc/sysrq-trigger

下面这是崩溃后重启的画面。

centos5.7下的kdump第14张

12,现在重新登录系统,进入/var/crash目录

centos5.7下的kdump第15张

进入目录我们看的一个ip+时间戳构成的子目录,进入该子目录我们看到了vmcore文件,这个文件就是kdump捕捉到内核崩溃产生的信息然后生成的文件。

现在我们可以通过crash命令对该文件进行分析了。

centos5.7下的kdump第16张

12,如何分析vmcore文件可以参照我的这篇文章。

http://www.cnblogs.com/sonwnja/p/6802844.html

免责声明:文章转载自《centos5.7下的kdump》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇打造数字化软件工厂 —— 一站式 DevOps 平台全景解读R连接mysql数据库(ODBC)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker 创建 mongo 容器

一、1、直接获取 docker 认证 mongo 镜像: docker pull mongo 2、创建运行 mongo 容器: docker run -d -it -p 127:27017 --name mongo3 -m 512M -v /data/docker-file/mongo3/db3:/data/db docker.io/mongo -p  ...

Linux Shell系列教程之(七)Shell输出

本文是Linux Shell系列教程的第(七)篇,更多shell教程请看:Linux Shell系列教程 与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,今天就为大家介绍下Shell输出操作。 Shell echo命令 echo命令是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。 命令格式: echo arg 转...

3389登陆记录的清除方法

一 .HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault 把右边显示出来的,非原有的ip键值直接DEL就可以啦~~但是千万记住默认注册表打开的时候,当前键值是在哪儿(一般是主键,没有分树),照着默认一打开时候的树状模样恢复就ok 二 .另一个方法 xp和2003下 reg que...

用php随机生成福彩双色球号码的2种方法

不瞒您说,俺也是个双色球爱好者,经常买,但迟迟没有中过一等奖,哈哈。这里为大家介绍用php随机生成福彩双色球号码的二种方法,供朋友们学习参考。新的一年,祝大家中大奖,发大财。 方法一 复制代码代码如下: <?php/*随机生成福彩双色球号码*/$red = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,...

Windows下批处理文件(.bat)的使用

cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制。从它们的文件描述中也可以看出以上的区别:cmd文件的描述是“windows nt命...

php编程 之 php进阶练习

1,php的date相关操作: PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。 <?php echo date("Y/m/d") . "<br>"; //返回2016/10/21 echo date("Y.m.d") . "<br>"; //返回2016.10.21 echo date("Y-m-...