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

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

この記事は、進行中のパフォーマンス監視シリーズ記事の一部です。

この記事では、vnstat ユーティリティを使用してネットワーク トラフィックを監視し、後で分析するためにログに記録する方法に焦点を当てます。

vnstat は、システム上のインターフェースのネットワーク トラフィックを表示およびログに記録するコマンド ライン ユーティリティです。これは、カーネルが提供するネットワーク統計に依存します。したがって、vnstat は、ネットワーク トラフィックの監視とログ記録のためにシステムに負荷を追加しません。

1. vnStat をインストール

Linux ディストリビューションに固有のリポジ​​トリからシステムに vnStat をインストールします。

たとえば、Ubuntu では、以下に示すように apt-get を使用してインストールします。

$ apt-get install vnstat

ソースからインストールする場合は、ここから vnStat ソースをダウンロードするか、以下に示すように wget を使用してダウンロードしてインストールします。

Mergecap と Tshark を使用してネットワーク トラフィックを分析することもできます。

wget http://humdi.net/vnstat/vnstat-1.11.tar.gz
cd vnstat-1.11
make
make install

他のソース ベースのインストールで通常行う「./configure」は必要ないことに注意してください。

vnstat はカーネルによって提供される情報に依存するため、次のコマンドを実行して、カーネルが vnStat が期待するすべての情報を提供しているかどうかを確認します。

# vnstat --testkernel
This test will take about 60 seconds.
Everything is ok.

2. vnStat を使用して監視するインターフェイスを選択

vnStat は、特に要求しない限り、インターフェースを監視しません。

eth0 の監視を開始するには、次の手順を実行します。これは一度だけ実行する必要があります。以下に示すように、これによりデータベース ファイル eth0 が /var/lib/vnstat ディレクトリの下に作成され、この特定のインターフェイスのすべてのネットワーク トラフィック ログ メッセージが含まれます。

# vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.

vnStat が監視できるシステムで利用可能なすべてのインターフェースを表示するには、次の手順を実行します。

# vnstat --iflist
Available interfaces: lo eth0 eth1 sit0

これらの情報をバックグラウンドで監視および記録する vnstatd (vnstat デーモン) を開始します。

# vnstatd -d
# ps -ef | grep vnst
root     14353     1  0 09:12 ?        00:00:00 vnstatd -d
root     14355   330  0 09:12 pts/1    00:00:00 grep vnst

注:「vnstatd -d」を /etc/rc.local ファイルに追加して、システムを再起動するたびに自動的に開始されるようにすることができます。

3. vnStat の基本的な使い方

引数なしで vnstat を実行すると、次の情報を含む簡単な要約が得られます:

  • /var/lib/vnstat/ の下にある vnStat データベースが最後に更新された時刻
  • 特定のインターフェースの統計情報の収集を開始した時点から
  • 過去 2 か月および過去 2 日間のネットワーク統計データ (送信バイト数、受信バイト数)。
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |

	 daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

注:vnStat をインストールしたばかりの場合は、「eth0:まだ十分なデータがありません。」というメッセージが表示されます。しばらく待ってから、コマンドを再試行してください。

4. vnStat 時間、日、月、週 ネットワーク データ

「vnstat -h」(または)「vnstat –hours」を使用して、時間ごとのネットワーク統計データの内訳を表示します。これは、テキスト ベースのグラフも表示します。

「vnstat -d」(または)「vnstat –days」を使用して、ネットワーク統計データの日別内訳を表示します。

# vnstat -d
 eth0  /  daily
         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      10/10/11      2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
      10/11/11      4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
      10/12/11      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
      10/13/11      2.06 MiB |    1.10 MiB |    3.16 MiB |    0.60 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         3 MiB |       1 MiB |       4 MiB |

「vnstat -m」(または)「vnstat –months」を使用して、月ごとのネットワーク統計データの内訳を表示します。

# vnstat --m

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
      Oct '11     12.92 MiB |    6.96 MiB |   19.89 MiB |    0.15 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated        29 MiB |      14 MiB |      43 MiB |

日や月と同様に、「vnstat -m」(または) 「vnstat –months」を使用して、週ごとのネットワーク統計データの内訳を表示します。

5.データを Excel または他の DB にエクスポート

ネットワーク監視データを Excel または他のデータベースにエクスポートする場合は、セミコロンで区切られたテキスト形式でデータをダンプできます。これを Excel または他のデータベースにインポートできます。

–dumpdb 出力の最初の数行には、いくつかのヘッダー情報が含まれています。ヘッダー行の後に、「d;」で始まる 30 行あります。 (d;0;1318316406;1;0;386;698;1)。この行には、セミコロンで区切られた次の情報が含まれています。

  • d – 日を表します
  • 0 – 日付。 0 は今日を示します。
  • 1318316406 – Unix 形式のデータ
  • これに続いて、送受信されたバイトが含まれます
$ vnstat --dumpdb
interface;eth0
created;1218562937
updated;1218546895
totalrx;3
totaltx;1
...
...
d;0;1328316406;1;0;386;698;1
d;1;1345262937;2;1;494;289;1

「vnstat –oneline」を使用することもできます。これは、値がセミコロンで区切られた 1 行にトラフィックの概要を表示します。

$ vnstat --oneline
1;eth0;10/11/11;1.45 MiB;801 KiB;2.23 MiB;0.59 kbit/s;Oct '11;3.93 MiB;2.06 MiB;6.00 MiB;0.05 kbit/s;3.93 MiB;2.06 MiB;6.00 MiB

6.ライブ ネットワーク統計の表示

「vnstat -l」または「vnstat –live」を使用して、ライブ ネットワーク統計情報を表示します。

$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        2 kbit/s     5 p/s          tx:        2 kbit/s     4 p/s

Ctrl-C を押して停止すると、vnstat はライブ モニターが実行されていた期間の概要を表示します。

7.デフォルトの vnstat 出力形式を変更

「vnstat -s」または「vnstat –short」を使用すると、ネットワーク統計の短い要約が表示されます。これには、今日、昨日、当月の統計が含まれます。

$ vnstat -s (--short)

                      rx      /      tx      /     total    /   estimated
 eth0:
       Oct '11      3.93 MiB  /    2.06 MiB  /    6.00 MiB  /   13.00 MiB
     yesterday      2.48 MiB  /    1.28 MiB  /    3.76 MiB
         today      1.45 MiB  /     801 KiB  /    2.23 MiB  /      --

「vnstat –style 0」を使用することもできます。これにより、デフォルトの幅の広い列の出力よりも読みやすい狭い列の出力が得られます。

$ vnstat --style 0

利用可能なスタイル番号は次のとおりです:

  • 0 – 狭い出力
  • 1 – バー列を有効にする
  • 2 – バー列を有効にし、平均トラフィック レートを要約で表示します
  • 3 – すべての出力で平均トラフィック レートを表示
  • 4 – ライブ モード (vnstat -l) と組み合わせると、端末制御文字を無効にします

8.上位 10 日間のトラフィックを表示

「vnstat -t」または「vnstat –top10」を使用して、全期間の上位 10 日のトラフィックを表示します。

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

Linux パフォーマンスの監視とチューニング シリーズの以前の記事:

  • Linux パフォーマンスの監視とチューニングの概要
  • 15 の実用的な Linux トップ コマンドの例
  • プロセス監視のための 7 つの実用的な PS コマンドの例
  • UNIX / Linux のパフォーマンス監視に役立つ Sar (Sysstat) の 10 の例
  • Linux でのディスク I/O パフォーマンス測定のための iozone の 10 の例
  • Linux パフォーマンス監視のための 24 の iostat、vmstat、mpstat の例

Linux
  1. Linuxで静的IPアドレスを設定してネットワークを構成する方法

  2. LinuxでLogrotateを使用してログファイルを管理する方法

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

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

  2. Nagios を使用してネットワーク スイッチとポートを監視する方法

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

  1. osqueryを使用してLinuxサーバーを監視する方法

  2. CloudStatsを使用してLinuxサーバーを監視する方法

  3. Ubuntuでネットワークトラフィックを監視するためのvnStatとvnStatiのインストールと使用