2014年3月26日水曜日

CentOS6(RHEL6)でクラッシュダンプを取得する SSH経由で他のホストへ出力

前回の続きで、タイトルのとおりSSH経由でダンプをリモートのホスト上にはかせてみようというのが今回の内容です。

※評価は、CentOS6.5(x86_64)でメモリ2GBを搭載したマシンを2台用意して行っています
※また、2台のIPアドレスは下記のとおりです
 ダンプを受け取るリモート側のホスト:192.168.233.21
 ダンプをはくホスト        :192.168.233.12



ダンプを受け取るリモート側での作業


ダンプをはく側からSSH経由でアクセスしてくるので、事前にダンプ用ユーザ(下記の例ではkdumpユーザ)の作成とそのユーザでデータを保存できる領域(下記の例では、ホームディレクトリをとして/kdumpを指定)を作成します。
# useradd -m -d /kdump kdump
# grep kdump /etc/passwd
kdump:x:502:502::/kdump:/bin/bash
#




ダンプをはく側での作業



1. /etc/kdump.confの編集

※リモート側で準備したkdumpユーザの権限で、(SCPを使って)データ転送を実施します
※デフォルトで/var/crash配下にデータを転送しようとしますが、その際のアクセス権に注意する必要があります
→pathで任意の場所を指定すれば、デフォルト以外の場所に転送可能なので、下記の例ではリモート側で準備した/kdump配下に転送します
 net kdump@192.168.233.21
 path /kdump
 core_collector makedumpfile -c --message-level 1 -d 31



2. kdump用SSH鍵の登録
以下のようにkdumpスクリプトを使って、ダンプをはく側での秘密鍵と公開鍵の生成とダンプを受け取るリモート側への公開鍵の登録までを実施します。

# /etc/rc.d/init.d/kdump propagate
Generating new ssh keys... done.
kdump@192.168.233.21's password:          ←★パスワードを入力
/root/.ssh/kdump_id_rsa has been added to ~kdump/.ssh/authorized_keys on 192.168.233.21
#
(注意)
ダンプを受け取るリモート側で、SSHのパスワード認証が有効になっている必要があります
→鍵認証のみで運用している場合は、鍵登録に失敗しますが、その際は
  /root/.ssh/kdump_id_rsa.pubを手動でauthorized_keysとして登録します


3.変更の適用
# /etc/rc.d/init.d/kdump restart
Stopping kdump:                                            [  OK  ]
Detected change(s) the following file(s):
  /etc/kdump.conf
Rebuilding /boot/initrd-2.6.32-431.1.2.0.1.el6.x86_64kdump.img
Starting kdump:                                            [  OK  ]
#




動作確認

ダンプをはく側でkernelをクラッシュさせて、リモートで受け取る側にダンプが出力されているか確認します。

# ls -l /kdump/192.168.233.12-2014-03-24-17\:55\:07/
total 19884
-rw-rw-r-- 1 kdump kdump    85833 Mar 24 17:55 vmcore-dmesg.txt
-rw-rw-r-- 1 kdump kdump 20274689 Mar 24 17:55 vmcore.flat
#

0 件のコメント:

コメントを投稿