GNU/Linux >> Linux の 問題 >  >> Linux

Linux:日次/月次のネットワーク トラフィックを測定する方法は?

解決策 1:

VnStat の使用もお勧めします

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

解決策 2:

rrdtool (およびそれをバックエンドとして使用する他のもの - MRTG、Cacti など) について Zypher が言っていたことは、おそらく正しいでしょう。 RRDTool は、「平均化された」履歴トレンド分析ツールとして設計されています。時間をさかのぼるほど、非決定的なインクリメントでカウンターを平均化して保存します。

ただし、これは RRA を適切に設定することで構成できます。ただし、これらの構成についてまったく何も知らないことを告白し、個人的には、標準セット (15 分、8 時間、1 週間、1 か月、1 年) を超えてうまくいったことはありません。毎日の入力を期待し、netstat から帯域幅カウンターをフィードするように RRA を構成することを検討することをお勧めします。非常に優れた履歴データと使用パターンに関する洞察が得られます。

現在の問題に答えるには、毎日の帯域幅制限を超えないようにすることについて。問題のインターフェイスの netstat カウンターを毎日取得することをお勧めします。昨日の時刻 t のトラフィックと今日の時刻 t のカウンタを比較して、転送された量を確認できます。前の値のフラットなテキスト ファイル ストレージを備えた単純なスクリプトで十分でしょう。帯域幅の超過を検出した場合はインターフェイスを無効にするか、1 日を通して監視し、制限に近づいている場合は管理者に通知します。

OSX システムで入力バイトを取得するには、次の一連のコマンドを使用できます:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

逆に、出力は次の方法で取得できます:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

関連するカウンターをどこかに保存されているフラット ファイルにポップして、以下と比較できます。

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

システムに合わせて netstat 処理を調整するだけです (OSX を実行していないことがわかっているため)。

解決策 3:

sysstat パッケージには、sar ユーティリティが含まれています。 Sar は、定義済みの間隔 (cron) でさまざまな統計を収集する、より適切な用語がないため、非常に構成可能なシステム「プロファイラー」です。これらは毎日 1 つのバイナリ ファイルに保存され、通常は毎週ローテーションされますが、構成可能です。 sar プログラムを使用して、これらのファイルから統計を引き出すことができます。これらの結果は、任意のオフィス プログラムまたは gnuplot (私の個人的な好み) で簡単にグラフ化できます。

http://pagesperso-orange.fr/sebastien.godard/ <=Sar情報
http://www.gnuplot.info/ <=gnuplot 情報

解決策 4:

Vnstat は、優れたコンソール ベースの毎日/毎週/毎月のトラフィック モニターです。便利なリアルタイムでトラフィックを監視することもできます.

システムリソースもほとんど使用しません;)

解決策 5:

ネットワーク監視ツールである MRTG が必要です。これは、Web で見られるすべてのネットワーク グラフを生成するものです (数値を画像に変換する rdtool を使用)

設定したくない場合、または単純なものが必要な場合は、iptables を使用してデータ転送を記録できます。


Linux
  1. Linuxmtrコマンドの使用方法

  2. Linux –現在のプロセスでネットワークの共有を解除する方法は?

  3. Linux – Linuxネットワークの名前空間間でトラフィックを転送する方法は?

  1. LinuxでSambaを介してネットワーク共有を作成する方法

  2. Linux –クロックドリフトを測定して防止する方法は?

  3. Linux で優先ネットワーク インターフェイスを設定する方法

  1. vnStat を使用して Linux でネットワーク トラフィックを監視およびログに記録する方法

  2. vnStat を使用して Linux でネットワーク トラフィックを監視する方法

  3. Linux で WD MyBook World ネットワーク ドライブをマウントするにはどうすればよいですか?