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


15

Linuxマシン(CentOS 5)の毎日のネットワークトラフィックの統計を保持する必要があります。

標準/ネイティブのツールまたはユーティリティを使用して実行する方法はありますか?
または、そのための特別なソフトウェアをダウンロードする必要がありますか?

ありがとう。


1
統計はどのくらい正確ですか?言い換えれば、帯域幅を再請求するのに十分な具体的な何かが必要ですか、それとも平均は良いですか?
ザイファー

特定の制限を超えたくないので、毎日どのくらいのトラフィックが使用されているかを正確に知る必要があります。
GetFree

1
次に、あなたがいないあなたは、正確なメトリックを得ることは決してないだろうので、RRDベースのツール(などサボテン、MRTG、Muninの、)RRD平均番号のいずれかをしたい、それが実際に時間をかけて悪くなります。
ザイファー

回答:


8

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

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

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

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を実行していないことがわかっているため)。


25

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

4

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

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


4

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

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


2

ネットワークモニタリングツールであるMRTGが必要です。MRTGは、Webの周りに表示されるすべてのネットワークグラフを生成します(数字を写真に変換するrdtoolを使用)

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


iptablesソリューションの+1
GetFree

iptablesリンクは機能していません-おそらくこれですか?qaoverflow.com/question/...
twodayslate

1

私はmrtgを使用しましたが、これは非常に優れたソリューションです。また、ネットワークプローブにntopという名前のトラフィックに関する多くの情報を提供する興味深いツールがあります。ここでは、CentOSへのntopのインストールに関するリンクを見つけます。


1

MRTGまたはCactiのいずれか。Cactiは設定が面倒ですが、非常にきれいなグラフを表示します。MRTGは基本的なプロットを簡単に設定できますが、非常に複雑な場合は非常に困難です。


1

Muninは、セットアップが非常に簡単な別のRRDベースのツールです。デフォルトのネットワーク統計は非常に基本的ですが、追加のプラグインを追加するのは簡単です。サーバーの1つに、毎日および毎週の統計のコピーを添付しました。別のページで毎月および毎年の統計情報も取得できます。

Muninネットワークグラフ


画像は現在なくなっています
カナダのルークレインステートモニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.