Linux サーバーが頻繁に私をキックアウトする

Linux サーバーが頻繁に私をキックアウトする

ちょっとおかしな動作をし始めた Linux サーバーがあります...

まず、ボックスは十分に活用されていません。これはデータベース サーバーであり、負荷は非常に低いです。vmstat を下と上に配置します...

  1. CentOS 5.4を使用しています
  2. このサーバーは数週間正常に動作しています
  3. ファイアウォールが設定されているため、ハッキングされている可能性は低いです (chkrootkit も同意します)。
  4. 負荷は本当に低いです。
  5. 私はサーバーとギガビット スイッチを使用しています。
  6. 他のサーバーではこの問題は発生していません。
  7. 別のボックスにリモート syslog を設定していますが、対応するエラーは表示されません。

そのため、ボックスに ssh (putty) で接続する場合、しばらく接続していないと、putty はすぐに「ネットワーク接続のリセット」エラーをスローします。

突然、接続が切れてしまう(またはネットワークが切断される)

ping の連続により、中断が発生していることがわかります。

--- vdbsrv1 ping statistics ---
80620 packets transmitted, 80619 received, 0% packet loss, time 23838ms
rtt min/avg/max/mdev = 0.234/0.273/1.741/0.043 ms, ipg/ewma 0.295/0.297 ms

SQL クエリ (「Select 1」) は、SQL が 0.04 秒の実行時間を報告しているにもかかわらず、ボックスに対して約 5 秒かかります。そのため、残りの 4.96 秒は謎です。

何かアイデアはありますか?

top - 11:49:28 up 12 days, 17:05,  4 users,  load average: 0.00, 0.03, 0.01
Tasks: 150 total,   1 running, 149 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.3%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8174028k total,  8074924k used,    99104k free,  4558300k buffers
Swap: 19464184k total,        4k used, 19464180k free,  2306952k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      15   0 10348  692  576 S  0.0  0.0   0:02.13 init

root@dbsrv1# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      4  98980 4558300 2306992    0    0     1    13    3    2  0  0 99  0  0

答え1

これをデバッグするには、少なくとも次のことを行う必要があります。

  1. putty ではなく CLI ssh クライアントを使用して、サーバーに対して 'ssh -v' を実行します。問題が発生しているかどうか、また ssh セッションでどのようなエラーが報告されているかを確認します。

  2. wireshark または tcpdump を使用して、セッションのパケット キャプチャを取得します。おそらく RST が取得されます。

David さんの質問のとおり、別のクライアントからサーバーにアクセスしてみましたか? そうでない場合は、クライアントにネットワークの問題がある可能性があります。

ファイアウォールを通過する場合、Kyle が上で示唆したように、ファイアウォールには独自のセッション タイムアウトがあります。これが問題である場合は、「keepalive」設定が適切な回避策です。新しいセッションで問題が発生する場合は、pcap が問題のトラブルシューティングの最も迅速な方法になります。

答え2

完全に理解できたかどうかはわかりませんが:

「そのため、ボックスに ssh(putty) で接続する場合、しばらく接続していないと、putty はすぐに「ネットワーク接続のリセット」エラーをスローします。」

ということは、ログインしていない状態で新しくログインを開始すると、すぐに追い出されてしまうということですか?

そうでない場合、非アクティブだったときにタイムアウトするだけです。PuTTY で keepalive を設定するだけで済みます。

また、/var/logssh ログを調べて、そこに情報があるかどうかを確認することもできます。

答え3

これは変だった…

この Web サーバーは、VMware サーバーからの別の Web サーバーのクローンでした。

元のマシンはシャットダウンされました。新しいサーバーにコピーされました。新しいマシンが新しい名前と新しい IP で起動されました。古いマシンが再起動されました。

このシナリオの問題は、MAC アドレスが両方で同じであるため、非常に奇妙なネットワーク動作が発生することです。

関連情報