開発中の Plamo-5.0 を日常のデスクトップにして仕事をしていますが,たまに X を使っていると,そのまま突然死してしまうことがあります.console に落ちてダンプが見える場合もあるんですが,大概は X がブラックアウトした状態で固まるか,そのまま男らしく黙って再起動してしまいます.つまり,原因究明のためのメッセージが残りません.
そこで,カーネルメッセージをリモートに飛ばして,syslogd で受けるという設定をしてみました.これには netconsole というモジュールを使いますので,カーネルで有効になっている必要があります.
/etc/modprobe.conf
netconsole モジュールをロードするときのオプションとして,以下のように設定します.
options netconsole netconsole=6665@192.168.0.100/eth0,514@192.168.0.101/xx:xx:xx:xx:xx:xx
"netconsole=送信元ポート@送信元アドレス/インターフェース,受信先ポート@受信先アドレス/受信先MACアドレス"
ですね.
あとは起動時に netconsole がロードされるように /etc/rc.d/rc.modules なんかに書いておきます.
/sbin/modprobe -v netconsole
受信先での設定
これは受信先の syslogd の設定になります.今回は Debian 上で動いている rsyslogd で受けていますので,/etc/rsyslog.conf で以下のように設定しました (コメント外しただけですが).
$ModLoad imudp $UDPServerRun 514
こんな感じで出ています.
Aug 3 13:15:17 enterprise [ 1821.691236] netconsole: local port 6665 Aug 3 13:15:17 enterprise [ 1821.691241] netconsole: local IP 192.168.0.100 Aug 3 13:15:17 enterprise [ 1821.691244] netconsole: interface 'eth0' Aug 3 13:15:17 enterprise [ 1821.691247] netconsole: remote port 514 Aug 3 13:15:17 enterprise [ 1821.691250] netconsole: remote IP 192.168.0.101 Aug 3 13:15:17 enterprise [ 1821.691253] netconsole: remote ethernet address xx:xx:xx:xx:xx:xx Aug 3 13:15:17 enterprise [ 1821.691296] console [netcon0] enabled Aug 3 13:15:17 enterprise [ 1821.691300] netconsole: network logging started
送信元ホストで例えば Sysrq m (SysRq + Alt + m)とやると,以下のような感じに.
Aug 3 13:28:58 Show Memory Aug 3 13:28:58 enterprise [ 2642.654449] Mem-Info: Aug 3 13:28:58 enterprise [ 2642.654453] DMA per-cpu: Aug 3 13:28:58 enterprise [ 2642.654457] CPU 0: hi: 0, btch: 1 usd: 0 Aug 3 13:28:58 enterprise [ 2642.654462] CPU 1: hi: 0, btch: 1 usd: 0 Aug 3 13:28:58 enterprise [ 2642.654466] DMA32 per-cpu: Aug 3 13:28:58 enterprise [ 2642.654470] CPU 0: hi: 186, btch: 31 usd: 164 Aug 3 13:28:58 enterprise [ 2642.654475] CPU 1: hi: 186, btch: 31 usd: 4 Aug 3 13:28:58 enterprise [ 2642.654478] Normal per-cpu: Aug 3 13:28:58 enterprise [ 2642.654482] CPU 0: hi: 186, btch: 31 usd: 155 Aug 3 13:28:58 enterprise [ 2642.654487] CPU 1: hi: 186, btch: 31 usd: 95 : (略)
さあ,これで有効なメッセージが取れるでしょうか? しばらく様子見で,ダメならまた別の方法も試します.