新しいISPに加入しましたが、この新しいISPで問題が発生しています。問題は、インターネット接続のいくつかのマイクロ中断、一種の遅延です。これはおそらく、プロキシのタイムアウトまたはネットワークへの私の接続のタイムアウトに関連しています。
これらのマイクロ中断はランダムに発生するため、技術者をオフィスに送るたびに問題が検出されないため、特にサービスが3、4時間安定していて、問題の表示を再開するため、私はそれを証明できません。
これは2つの理由で非常に迷惑です。何かをダウンロードしていますが、ダウンロードが突然停止し、再度開始する必要があります。もう1つの理由は、イーサネットを使用して電話に接続されたVoIPボックスを使用していて、このVoIPボックスが毎回接続を失い、VoIP電話が通話の受信/発信を停止し、検出するたびにボックスを再起動して何時間も過ごさなければならないことです気付かずに電話を下に。
私の質問は次のとおりです。インターネットサービスを一定期間監視し、サービスがダウンしたことを通知したり、グラフィックスなどをプロットしたりするにはどうすればよいですか。 Macで実行できるネットワークまたは接続の品質を監視するためのツールや方法はありますか?
私の考えは、それらを示す何かを持ち、私が正しいことを証明することです。
以下を使用する場合:
ping -A -i 10 --Apple-time 10.20.30.40 > monitor.txt
停止するまで継続的に実行され、10秒ごとに10.20.30.40
にpingします(アドレスの変更)
--Apple-time
は、各pingの時間をログに記録して、障害を確認できることを意味します。そのようです:
11:33:10.793801 64 bytes from 10.20.30.40: icmp_seq=0 ttl=58 time=27.744 ms
11:33:11.780250 64 bytes from 10.20.30.40: icmp_seq=1 ttl=58 time=9.757 ms
11:33:12.781136 64 bytes from 10.20.30.40: icmp_seq=2 ttl=58 time=10.150 ms
11:33:13.782932 64 bytes from 10.20.30.40: icmp_seq=3 ttl=58 time=11.779 ms
11:33:14.785446 64 bytes from 10.20.30.40: icmp_seq=4 ttl=58 time=11.254 ms
ターミナルでping
を実行するのはどうですか?オンになっていて、pingに応答するサーバーを見つけるだけです。正確な時間は表示されませんが、何かが間違っていることを示す何らかの証拠を提供します。
追加するために編集:私は以前、類似のものにそれを使用しました。私の(正直なところ、経年劣化した)ワイヤレスアクセスポイントは何も検出されなかったため、障害が発生している可能性があると彼らは主張しましたが、「私は少なくとも1時間に1回はpingタイムアウトを取得しました」とエンジニアに確認してもらいました。
このアプリは接続ステータスをログに記録し、Appleが内部的に使用しているとさえ主張します。
ネットワークの停止をログに記録し、時間の経過とともに速度をグラフ化します。 Network Logger Proを使用して、Webサイトを監視し、速度、停止、および応答時間の履歴グラフを作成することもできます。
https://iTunes.Apple.com/us/app/network-logger-pro/id764324406?mt=12
それは10ドルですが:/
インターネット接続を監視するには、ping
コマンドを使用するだけです。 ICMP ECHO_REQUESTを送信し、応答を期待します。
ルーターのIPにpingを送信し、応答がない場合は、インターネットの中断としてISPに報告できます。
ルーターにファイアウォールがある場合は、代わりにarping
を使用するか、単に別のリモートホストを選択します。
$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
64 bytes from 4.2.2.1: icmp_seq=0 ttl=57 time=37.710 ms
64 bytes from 4.2.2.1: icmp_seq=1 ttl=57 time=32.051 ms
ルーターへの物理的な接続を監視するには、arping
を使用できます。
$ Sudo arping 192.168.0.1
これは、WiFiが低下し続け、ルーターが標準のICMPパケットに応答しない場合に特に便利です。 Brew(brew install arping
)経由でインストールします。
ネットワーク上のトラフィックをダンプできるtcpdump
があります。たとえば、すべての発信パケットをポート80
および443
にダンプするには、構文は次のようになります。
Sudo tcpdump -i en0 port http or port https
ファイルに書き込むには、-w file
を追加し、-r file
を介して読み取ります。これには、送受信される各ネットワークパケットの正確なタイムスタンプが含まれます。
インターネットが中断されているかどうかを確認するには、コンピューターが送信する SYNパケット (フラグセクション内)を探し、サーバーごとにSYN-ACKで応答する必要があります。それが発生しておらず、トラフィックが戻っていない場合(SYNパケットのみの場合、インターネット接続はありません)。
それは症状の1つでした 私が持っていた のほかに、低スループット。それはケーブルモデムであることがわかりました。良い知らせは、あなたが新しいケーブルモデムを手に入れるために誰かを説得する必要がないかもしれないということです。私のISPは、ケーブルモデムをほとんど自由に新しいものに交換できるというポリシーを持っていることがわかりました。あなたがそれを行うかどうかを確認してください。
私自身の使い方では、これをチェックするための簡単なBashスクリプトを作成しました。タイムアウトを監視する方法としてping
を使用します。ほとんどの回答が示唆するとおりです。スクリプトの利点は、画面の出力に、成功したpingを含めるのではなく、タイムアウトしたpingのみが表示されることです。さらに、pingの試行回数ではなく、監視期間中のパラメータを渡すことができます。簡単に言うと、以下のラッパーにすぎません。_ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg"
_そのソースと簡単なインストール手順は、以下のリンクから入手できます。
https://github.com/superman-lopez/monitor-timeouts
スクリプトをmacOSとUbuntu Linuxでテストしました。
_#!/bin/bash
#Usage: ./monitor-timeouts.sh [duration] [target]
#example: ./monitor-timeouts.sh 60 192.168.1.1
minutes=$1
target=$2
if [ $# -eq 0 ]; then
minutes=1
target=google.com
fi
if [ -z "$2" ]; then
target=google.com
fi
pings=$((60 * $minutes))
system=`uname`
if [[ $system == *"Linux"* ]]; then
extraflag="-O"
fi
echo "Start monitor for network timeouts at `date` for $minutes minute(s)."
echo "Target Host: $target"
ping $target -i 1 -c $pings $extraflag | grep -i "timeout\|unreachable\|no answer\|statistics\|transmitted\|avg"
echo "End monitoring at `date`."
_