モニターとキーボードを接続せずにサーバーがクラッシュした理由を理解するにはどうすればよいですか?

サーバーがフリーズすることがありますが、キーボードもモニターも接続されていません。



追加のモニターはありません。サーバーがネットワーク経由で応答していないことがわかりました。

コンピューターからモニターを取り外し、パントリー内のサーバーに接続します。希望も強さもありません。



Linuxには、 Netconsoleなどのカーネル機能があります。

Netconsoleを使用すると、カーネルからリモートコンピューターにメッセージを送信できます。



netconsoleを構成するには、ネットワーク経由でメッセージを受信する別の(常時)コンピューターが必要です。



Ubuntu 10.04でテスト済み



デバッグしているサーバーで、次を実行します。



1. / etc / modulesにnetconsoleを追加します



2. /etc/modprobe.d/netconsole.confに書き込みます

options netconsole netconsole=SRCPORT@SRCHOST/eth0,DSTPORT@DSTHOST/DSTMAC







ここで、SRCPORTとSRCHOSTはそれぞれ、デバッグされているサーバーのポートとIPアドレスです。



そして、メッセージを受信するサーバーのDSTPORTおよびDSTHOSTポートとIPアドレス。



DSTMACは、同じネットワーク上にある場合にメッセージを受信するサーバーのMACアドレスです。 彼がルーターの背後またはインターネット上のどこかにいる場合、最も近いルーター(ゲートウェイ)のMACアドレスを指定する必要があります。



次のようなものを取得する必要があります

options netconsole netconsole=6666@192.168.1.2/eth0,6666@192.168.1.3/e0:91:f5:7d:e6:38







メッセージを受信するサーバー上。



どういうわけか、DSTPORTのUDPポートをリッスンし、どこかにメッセージを記録するプログラムを開始する必要があります。



最も簡単な方法は、netcatを実行することです。これにより、ポートに来るすべてのものが表示されます。 このプログラムがウィンドウを閉じた後に動作を停止しないようにするには、画面で実行できます。



1.実行画面

screen -U -D -RR







2. netcatウィンドウで実行します

netcat -l -u DSTHOST DSTPORT







すべてが機能していることを理解する方法は?



ある種のイベントを待つことができますが、メッセージが実際に送信されることを確認する方法はありますか? SysRQカーネルメカニズムをアクティブにできます。

echo 1 > /proc/sys/kernel/sysrq

echo h > /proc/sysrq-trigger








その後、netcatを使用してウィンドウでメッセージを受信するサーバーで、タイプのテキスト

[ 7849.700372] SysRq : HELP : loglevel(0-9)....







参照資料






All Articles