Linuxカーネルのクラッシュダンプを取るには、Red Hat系だと diskdump と netdump があると思います。

ちなみに、RHEL5(Red Hat Enterprise Linux 5)だと kexec を使った kdump もありますし、SLES(SUSE LINUX Enterprise Server)だと LKCD が標準のようです。

クラッシュダンプをネットワーク上のサーバに保存する netdump を試してみたので、メモしておきます。

ローカルディスク上に保存する diskdump も試したのですが、システムディスクは swap も含めて全て md でミラーリングする予定です。 diskdump では mdデバイスには保存できないようだし、ダンプ用に専用パーティションを設定しておくのももったいない。ということで、netdumpになりました。

サーバ、クライアントとも RHEL4 U4 で試しました。
もちろん、CentOSでも同じようにできるはずです。
例として、サーバIP:192.168.1.1 クライアントIP:192.168.1.20 とします。

netdumpサーバ設定
パッケージ確認。
[server]# rpm -q netdump-server
netdump-server-0.7.16-2
netdumpユーザのパスワード設定。
netdump-serverがインストールされていれば、netdumpユーザが作成されていますが、パスワードがロックされているので設定。
[server]# passwd netdump
netdumpサーバーの起動。
[server]# service netdump-server start
システム起動時に自動的に起動させる設定。
[server]# chkconfig netdump-server on
netdumpクライアント設定
パッケージ確認。
[client]# rpm -q netdump
netdump-0.7.16-2
/etc/sysconfig/netdump を変更。
ダンプ用のネットワークとして eth1 を使う場合は DEV=eth1 とする。
# DEV=
NETDUMPADDR=192.168.1.1
DSA公開鍵の登録。
[client]# service netdump propagate
netdump@192.168.1.1's password: 
netdumpクライアントの起動。
[client]# service netdump start
システム起動時に自動的に起動させる設定。
[client]# chkconfig netdump on
/etc/sysctl.conf を変更して、マジックSysRqキーを有効にし、ハング時に [Alt] + [SysRq] + [c] でダンプできるようにする。
kernel.sysrq = 1
設定を読み込み。または echo 1 > /proc/sys/kernel/sysrq で設定。
[client]# sysctl -p /etc/sysctl.conf
ダンプテスト
netdumpクライアントが起動していれば、サーバの /var/crash/ 以下に <クライアントIPアドレス>-YYYY-MM-DD-hh:mm といったディレクトリが作成されているはずです。
このディレクトリの log ファイルにコンソールに出力されたメッセージが記録されます。
まず、クラッシュさせる前に、簡単な動作確認。
クライアントで echo h > /proc/sysrq-trigger を実行して、サーバのログに以下のように記録されていればOKでしょう。
SysRq : HELP : loglevel0-8 reBoot Crash tErm kIll saK showMem powerOff showPc unRaw Sync showTasks Unmount shoWcpus

次に実際にダンプさせてみます。
コマンドでは、echo c > /proc/sysrq-trigger ですが、実際にハングした場合は、コマンドは入力できないので、キーボードから [Alt] + [SysRq] + [c] でテストします。
SysRqキーについては、以下が参考になります。
アジアのペンギン: SysRqキーの使用方法

ダンプが始まると、サーバの /var/crash/<クライアントIPアドレス>-YYYY-MM-DD-hh:mm 以下に vmcore-incomplete が作成され、ダンプが完了すると vmcore となります。
例えば、16GBメモリのシステムで試したところ、以下のような感じでした。
[server]# ls -lh /var/crash/192.168.1.20-2007-08-16-20:33
total 16G
-rw-------  1 netdump netdump 74K Aug 16 20:44 log
-rw-------  1 netdump netdump 18G Aug 16 20:44 vmcore
何回か試したところ、GbE接続で約4分〜7分ほどで完了しました。
もちろん、システムや環境によって必要な時間は変わってくるので一概には言えませんが。

これで、netdumpでクラッシュダンプを取得するところまでできました。
長くなったので、後で別エントリで補足したいと思います。

[2007年 8/25追記]
しげふみメモ:netdumpでクラッシュダンプ取得の補足

Linuxカーネル2.6解読室 (単行本)
4797338261