Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88156
  • 博文数量: 20
  • 博客积分: 1926
  • 博客等级: 上尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-16 17:21
文章分类
文章存档

2011年(1)

2009年(19)

分类: LINUX

2009-10-08 14:31:06

架设Netdump服务器

Author: Jaylin Zhou

Date: 10/07/2009

 

环境:两台装有Red Hat Enterprise Linux 4 update 7的机器

 

Netdump是用来在客户端发生kernel panics的时候捕获vmcore文件的。这个文件收集了kernel panic发生时内存中的情况。通过分析vmcore文件,可以了解系统发生kernel panic的原因。Netdump需要一个服务器和多个客户端。服务器负责捕获客户端的vmcore文件。

注意:RHEL3RHEL4上面支持netdumpRHEL5不支持netdump,而是使用了kdump

 

服务器端配置

1. 将其中一台机器作为服务器。首先确定是否安装了netdump-server包:

# rpm -q netdump-server

netdump-server-0.7.16-14

2. 这时候会生成一个系统用户netdump,可以通过下面的命令找到这个用户:

# cat /etc/passwd | grep netdump

netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash

3. netdump用户设置密码(就像给一个普通用户设置密码一样),这个密码的用户在后面会有讲解:

# passwd netdump

Changing password for user netdump.

New UNIX password: redhat

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password: redhat

passwd: all authentication tokens updated successfully.

(因为设置的密码过于简单,所以会有“BAD PASSWORD”的提示)

4. netdump-server服务开机时自动启动

# chkconfig netdump-server on

5. netdump-server服务启动

# service netdump-server start

至此,服务端的配置就完毕了。

 

客户端配置

1. 将另一台机器作为客户端。确定是否安装了netdump包:

# rpm -q netdump

netdump-0.7.16-14

2. 修改配置文件/etc/sysconfig/netdump,添加下面一行:

NETDUMPADDR=192.168.0.1

其中192.168.0.1netdump-serverIP地址。

3. netdump服务开机时自动启动

# chkconfig netdump on

4. 通过netdump和服务器建立授权关系:

# service netdump propagate

The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.

RSA key fingerprint is d1:70:21:3e:d3:aa:a9:7e:2c:82:54:c7:c1:ae:19:1c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.0.1' (RSA) to the list of known hosts.

netdump@192.168.0.1's password: redhat

5. 启动netdump服务

# service netdump start

至此,客户端的配置也完成了。

 

检验netdump是否成功

启用kernel.sysrq功能:

# sysctl -w kernel.sysrq=1

上述命令只是将当前状态的kernel.sysrq1,即将/proc/sys/kernel/sysrq1,仅对当前状态起作用。重新启动后又恢复为0。如果想开机时就置1,应该改/etc/sysctl.conf文件中的下面一行:

kernel.sysrq = 1

再执行下面的命令使之立即生效:

# sysctl -p

使用下面的命令将客户端置于非可挂起终端状态(死机):

# echo c > /proc/sysrq-trigger

等一段时间,查看服务器端的/var/crash目录下生成了一个新的目录,此目录的名字是

IP-Date-TimeIP是客户端的IPDateTime是发生死机的时间)

例如:

192.168.0.4-2009-10-07-18:53

此目录下有两个文件:

-rw-------  1 netdump netdump  17K Oct  7 19:18 log

-rw-------  1 netdump netdump 129M Oct  7 18:55 vmcore

vmcore文件没有创建完毕时,其名字为vmcore-incomplete,建立完成后改为vmcore

其中vmcore文件的大小和客户端的内存大小接近,此例子中的客户端内存为128M

 

注意:当vmcore文件生成后,服务器端会将客户端重启。

 

Netdump是基于sshd服务的,所以客户端和服务器端建立连接时需要key来验证,这个key就是我们之前在服务器端对netdump用户设置的密码。如果将服务器端的sshd服务关闭,客户端将不能通过netdump连接服务器:

# service netdump propagate

ssh: connect to host 192.168.0.1 port 22: Connection refused

所以使用netdump的前提是服务器端的sshd服务一定要正常启动。

阅读(1453) | 评论(0) | 转发(0) |
0

上一篇:Splitting a Volume Group

下一篇:Quota磁盘配额

给主人留下些什么吧!~~