CentOS 奇妙なネットワーク問題をデバッグする方法

CentOS 奇妙なネットワーク問題をデバッグする方法

AWS/S3 にデータを継続的にコピーする CentOS 7 システムがあります。
しかし、問題があるので、デバッグ方法の提案をいただきありがとうございます。

S3への複製は数時間/日間続き、ネットワークがダウンします。 (私はcronS3コマンドを使って毎分ネットワークにpingを記録することをしていますaws s3 cp

その段階では、NetworkManagerデーモンは大丈夫に見え、syslogjournalctl -xeの異常も見えませんでしたが、ネットワークを再実行する唯一の方法は再起動することでした。

ネットワークが正常に機能しない場合は、問題が発生するまでコンピュータにスケジュールされた(crontab)タスクを持つユーザーがなく、コンピュータに静的IPがあり、コンピュータとネットワーク機能の両方に問題はありませんでした。

この問題をデバッグする方法についてのアイデアはありますか?

編集1:

Artem Tashkinovの提案に従って、以下を実行するcrontabへの分単位の呼び出しを追加しました。

#!/bin/bash -xv
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
then
        echo Successful
else
        echo Fail
        systemctl stop NetworkManager
        rmmod r8169
        modprobe r8169
        systemctl start NetworkManager
fi

ネットワークがクラ​​ッシュした場合は、ネットワークを復元できることを確認してみましょう。

編集2:

スクリプトを使用してもネットワーク障害が発生した場合は回復できませんでした。

しかし、問題が解決するかどうかを確認するために、外部ネットワークカードを追加しながらスクリプトを強化しました。

#!/bin/bash -xv
#
#kernel_module="r8169"  # on-board NIC
#kernel_module="e1000e" # add-on NIC

nic=$( ifconfig | grep -B1 10.60.100 | head -1 | awk -F: '{ print $1 }' )
kernel_module=$( ethtool -i $nic | grep driver | awk '{ print $NF }' )

ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
#if [ $? -ne 0 ];
then
        echo Successful
else
        echo Fail
        systemctl stop NetworkManager
        rmmod $kernel_module
        modprobe $kernel_module
        systemctl start NetworkManager
fi

ベストアンサー1

しかし、ネットワークを再起動する唯一の方法は、再起動することです。

以前にもこのようなサーバーがありました。

私がしたことは、crontabに知られているIPアドレスをpingするタスクを追加することだけでした。接続できない場合は、ネットワークをシャットダウンし、NICを担当するカーネルモジュールを取り外し(rmmod module_name)してから再挿入(modprobe module_name)し、最後にネットワークを再起動してください。一度試してみてください。

それがあなたに効果があるなら、あなたはしなければなりませんエラー報告

おすすめ記事