このチュートリアルでは、vnStatとは何か、インストールする方法、LinuxおよびBSDオペレーティングシステムでvnStatを使用してネットワーク帯域幅を監視する方法を説明します。
Vnstatの紹介
VnStat は、無料のオープンソース、軽量、コンソールベースのネットワークトラフィックモニターです。 VnStatを使用すると、消費されているネットワーク帯域幅を簡単に見つけて、1時間ごと、1日ごと、1か月ごと、または特定の期間の結果を表示できます。
Vnstatは、単一または複数のネットワークインターフェイスの使用状況の詳細を収集し、コマンドラインに概要を表示します。また、1か月、1日、または特定の期間におけるインターネット帯域幅の使用量のおおよその量を計算するのにも役立ちます。
LinuxにvnStatをインストールする
VnStatは、多くのLinuxおよびUnixオペレーティングシステムのデフォルトのリポジトリで利用できます。ディストリビューションのパッケージマネージャーを使用してインストールできます。
Archベースのシステムの場合:
[Community]
が有効になっていることを確認してください リポジトリを作成し、 pacmanを使用してインストールします 以下のように:
$ sudo pacman -S vnstat
Debian、Uubntu、Linux Mint、Pop OSの場合:
$ sudo apt install vnstat
Ubuntuでは、[Universe]
を有効にする必要がある場合があります vnstatをインストールするためのリポジトリ。
Redhat、CentOS、AlmaLinux、Rocky Linuxの場合:
最初にEPELリポジトリを追加して有効にします:
$ sudo dnf install epel-release
次に、上記のようにvnStatをインストールします。
$ sudo dnf install vnstat
Fedoraの場合:
$ sudo dnf install vnstat
openSUSEの場合:
$ sudo zypper install vnstat
vnStatをインストールした後、次のコマンドを使用してサービスを開始します:
$ sudo systemctl enable --now vnstat
インストール時に自動的に開始されるため、DEBベースのシステムでvnstatを開始する必要はありません。
FreeBSDにvnStatをインストールする
freeBSDのようなBSDシステムでは、ポートツリーを更新し、vnStatをroot
としてインストールします。 コマンドを使用するユーザー:
#pkg update
#pkg install vnstat
インストールしたら、以下のようにvnStatサービスを有効にして開始します。
#echo'vnstat_enable ="YES"'>> /etc/rc.conf
#service vnstat start
出力例:
vnstatを開始しています。データベースにインターフェースが見つかりません。使用可能なインターフェースを追加しています...インターフェース「em0」に1000Mビットの帯域幅制限が追加されました。->1つの新しいインターフェースが見つかりました。制限は構成ファイルを使用して変更できます。 「manvnstat.conf」を参照してください。不要なインターフェイスは、「vnstat--remove」を使用して監視から削除できます。
Linuxでデフォルトのネットワークインターフェースを構成する
vnStatはeth0
を使用します 構成ファイル( /etc/vnstat.conf
)のデフォルトのネットワークインターフェースとして 。
ただし、一部のLinuxシステム(Ubuntuなど)では、enp0s3
のように、ネットワークインターフェース名が異なる場合があります。 、enp0s8
。 "ip addr"
を使用して、ネットワークインターフェースの名前を確認できます。 コマンド。
vnstat構成ファイルの内容を見てみましょう。
$ head /etc/vnstat.conf
サンプル出力:
#vnStat 1.18 config file ### default interface Interface "eth0" #データベースディレクトリの場所DatabaseDir "/ var / lib / vnstat"#ロケール(LC_ALL)( "-" =システムロケールを使用)
ご覧のとおり、デフォルトのインターフェースは etho
このファイルにあります。
vnstatで識別される利用可能なネットワークインターフェイスを確認しましょう。
$ ls / var / lib / vnstatenp0s3 enp0s8
ご覧のとおり、使用可能なネットワークインターフェイスは、vnstat.confファイルで定義されているものとは異なります。
正しいデフォルトのインターフェースを設定しないと、ネットワーク帯域幅のトラフィックを1時間ごとまたは1か月ごとに表示するときに、次のエラーが発生する可能性があります。
エラー:データベース "/ var / lib / vnstat / eth0"を読み取れません:そのようなファイルまたはディレクトリはありません
これは、デフォルトのインターフェースが /etc/vnstat.conf
で誤って定義されているために発生します ファイル。
デフォルトのネットワークインターフェースを設定するには、 /etc/vnstat.conf
を編集します ファイルを作成し、正しいインターフェイス名を更新します。 /etc/vnstat.conf
を直接編集できます ファイルを作成し、インターフェイス名をグローバルに更新します。ただし、ユーザーのHOMEディレクトリに独自のvnstat構成ファイルを作成することをお勧めします。
$ cp /etc/vnstat.conf〜/.vnstatrc
$ nano〜/ .vnstatrc
enp0s3
を使用します デフォルトのインターフェースとして。
enp0s3を独自のものに置き換えます。ファイルを保存して閉じます。
FreeBSDでデフォルトのネットワークインターフェースを設定する
vnstat構成ファイルを編集します:
#vi /usr/local/etc/vnstat.conf
構成ファイルが利用できない場合は、サンプル構成ファイルを使用して新しい構成ファイルを作成します。
#cp /usr/local/etc/vnstat.conf.sample /usr/local/etc/vnstat.conf
次に、正しいデフォルトのネットワークインターフェースを更新します。
インターフェース"em0"
ファイルを保存して閉じます。
LinuxおよびUnixでvnStatを使用してネットワーク帯域幅を監視する
vnStatを初めて使用する場合は、vnStatのヘルプセクションを表示し、次のコマンドを実行して使用可能なオプションのリストを確認してください。
$ vnstat --help
出力例:
vnStat 1.18 by Teemu Toivola-q、-query query database -h、-hours show hours -d、-days show days -m、-months show months -w、 --weeks show weeks -t、--top10 show top 10 days -s、--short use short output -u、--update update database -i、--iface select interface(default:eth0)-?、-ヘルプshorthelp-v、-version show version -tr、-traffic構図トラフィックの計算-ru、-rateunitスワップ構成済みレートユニット-l、-liveリアルタイムでの転送レートの表示完全なオプションについては、「-longhelp」も参照してください。リストと「manvnstat」。
すべてのインターフェースの帯域幅使用量の表示
それでは、すべてのインターフェースのネットワークトラフィックを表示しましょう。
これを行うには、次を実行します:
$ vnstat
出力例:
rx / tx / total /推定enp0s3:19年9月120 KiB / 66 KiB / 186 KiB /0KiB今日120KiB/ 66 KiB / 186 KiB /-enp0s8:19年9月128 KiB / 88 KiB / 216 KiB /0KiB今日128KiB/ 88 KiB / 216 KiB /-
ここで
-
rx
-受信したトラフィック -
tx
-転送されたトラフィック
Vnstatがネットワークトラフィック使用量の収集を開始するまで数分待ちます。インストール直後にvnstatを起動すると、以下のような結果になる場合があります。
enp0s3:まだ十分なデータがありません。
または、CentOSなどのRPMベースのディストリビューションで次の出力が得られます。
データベースが見つかりません。何もしません。ヘルプには--helpを使用します。次のコマンドを使用して新しいデータベースを作成できます。vnstat--create-ieth0'eth0'を監視する必要のあるインターフェイスに置き換えます。現在使用可能なインターフェイスは次のとおりです。enp0s3(1000 Mbit)lo
現在は何も表示されていません。これは、vnStatがまだ統計の収集を開始していないためです。
特定のインターフェースの帯域幅使用量の表示
enp0s3 など、特定のインターフェースのネットワーク帯域幅の使用状況を表示するには 、以下のようにネットワークカード名を入力してください。
$ vnstat -i enp0s3
出力例:
更新されたデータベース:Mon Sep 9 08:26:47 2019 enp0s3 since 09/09/2019 rx:136 KiB tx:74 KiB total:210 KiB month rx | tx |合計|平均レート------------------------+------------- + ---------- --- +---------------'19年9月136KiB| 74 KiB | 210 KiB | 0.00 kbit / s ------------------------ + ------------- + ------- ------+---------------推定-| -| -|毎日のrx| tx |合計|平均レート------------------------+------------- + ---------- ---+---------------今日136KiB| 74 KiB | 210 KiB | 0.06 kbit / s ------------------------ + ------------- + ------- ------+---------------推定-| -| -|
ここでは、 enp0s3
私のネットワークカード名です。ネットワークカード名は、 "ip addr"
を使用して見つけることができます コマンド。
FreeBSD 、ネットワークカード名は em0
。帯域幅を表示するには、次のコマンドを実行します。
#vnstat -i em0
出力例:
更新されたデータベース:2019-09-09 16:40:00 em0以降2019-09-09rx:606.84 KiB tx:56.12 KiB合計:662.96KiB月間rx| tx |合計|平均レート------------------------+------------- + ---------- --- + --------------- 2019-09 606.84 KiB | 56.12 KiB | 662.96 KiB | 7ビット/秒------------------------+------------- + ------- ------+---------------推定-| -| -|毎日のrx| tx |合計|平均レート------------------------+------------- + ---------- ---+---------------今日606.84KiB| 56.12 KiB | 662.96 KiB | 90ビット/秒------------------------+------------- + ------- ------+---------------推定873KiB| 80 KiB | 953 KiB
1時間あたりの帯域幅使用量の表示
1時間あたりのネットワークトラフィックの結果を表示してみましょう。これを行うには、次を実行します:
$ vnstat -h
出力例:
enp0s3 09:46 ^ r | r r | r r | r r | r r r | rt rt r | rt rt r | rt rt rt | rt rt rt | r rt rt rt-+ -------------------------------------------- -------------------------------> | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 h rx(KiB)tx(KiB)] [h rx(KiB)tx(KiB)] [h rx(KiB )tx(KiB)10 0 0] [18 0 0] [02 0 011 0 0] [19 0 0] [03 0 012 0 0] [20 0 0] [04 0 013 0 0] [21 0 0] [05 0 014 0 0] [22 0 0] [06 12 715 0 0] [23 0 0] [07 86 4816 0 0] [00 0 0] [08 88 4517 0 0] [01 0 0] [09 59 32
複数のインターフェースがある場合は、 -iを使用します 以下のような特定のカードの1時間ごとのネットワークトラフィックを表示するパラメータ。
$ vnstat -h -i enp0s8
推奨される読み物:
- Wondershaperを使用してLinuxでネットワーク帯域幅を制限する方法
毎日の帯域幅使用量の表示
'-d'
を使用します 1日あたりのデフォルトのネットワークインターフェースのネットワークトラフィックを表示するフラグ。
$ vnstat -d
出力例:
enp0s3/毎日のrx| tx |合計|平均レート------------------------+------------- + ---------- --- +---------------2019年9月9日258KiB| 138 KiB | 396 KiB | 0.09 kbit / s ------------------------ + ------------- + ------- ------+---------------推定-| -| -|
毎週の帯域幅使用量の表示
$ vnstat -w
出力例:
enp0s3/毎週のrx| tx |合計|平均レート---------------------------+------------- + ------- ------+---------------過去7日間258KiB| 138 KiB | 396 KiB | 0.00 kbit/s今週258KiB| 138 KiB | 396 KiB | 0.09 kbit / s --------------------------- + ------------- + ---- ---------+---------------推定-| -| -|
毎月の帯域幅使用量の表示
ネットワークインターフェースカードの月間使用量を表示するには、 '-m'
を使用します スイッチ。
$ vnstat -m
出力例:
enp0s3/月月rx| tx |合計|平均レート------------------------+------------- + ---------- --- +---------------'19年9月258KiB| 138 KiB | 396 KiB | 0.00 kbit / s ------------------------ + ------------- + ------- ------+---------------推定-| -| -|
過去10日間の帯域幅使用量を表示する
過去10日間のネットワーク使用量を表示するには、 '-t'
を使用します フラグ。
$ vnstat -t
出力例:
enp0s3 /トップ10#日rx | tx |合計|平均レート-----------------------------+------------- + ----- --------+---------------利用可能なデータがありません----------------------- ------ + ------------- + ------------- + ---------------
今日Vnstatをインストールしたため、上位10日間のデータは表示されません。
推奨される読み物:
- LinuxにNetDataパフォーマンス監視ツールをインストールする
特定の時間の帯域幅使用量の表示
特定の時間の帯域幅使用量を表示することもできます。
過去10秒間の帯域幅使用量を表示するには、次を実行します。
$ vnstat -i enp0s3 -tr 10
出力例:
10秒でサンプリングされた7パケットenp0s3のトラフィック平均rx0.28kbit /s0パケット/stx0.14 kbit /s0パケット/秒
ライブ帯域幅の使用状況の表示
特定のインターフェースカードの使用状況のライブモニタリングを開始するには、次のコマンドを実行します。
$ vnstat -i enp0s3 -l </ pre>出力例:
監視enp0s3...(CTRL-Cを押して停止します)rx:0 kbit / s 0 p / s tx:0 kbit / s 0 p / sライブモニタリングを停止するには、
CTRL-C
を押します 。詳細については、manページを参照してください:
$ man vnstat結論
VnStatは、単一または複数のネットワークインターフェイスのインターネット使用状況またはネットワークトラフィックを監視するための便利で便利なツールです。毎日/毎月どのくらいの帯域幅を消費しているのか疑問に思っている場合は、このツールを使用して、インターネットサービスプロバイダーやサードパーティのツールを使用せずに調べることができます。
Linux