CentOS7 に vnstat をインストール
〜 systemctl でも vnstat を 〜
2019-03-04 作成 福島
TOP > tips > c7vnstat
1. yum の提供元 (リポジトリ) に epel-release が登録されていなければ追加する
$ su
# rpm -qa | grep epel-release | wc -l
0
 ← epel-release が登録されていない
# yum -y install epel-release
2. vnstat をインストールする
# yum -y install vnstat
3. vnstat を systemd に登録し、デーモンとして動作させる
# systemctl enable vnstat
# systemctl start vnstat
# systemctl status vnstat
# exit
$
4. vnstat の DB (トラフィックデータのデータベース) が作成されていることを確認する
$ ls -l /var/lib/vnstat/
DB は (トラフィックがあれば) 5 分ごとに更新される。
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:20 em1
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 macvtap0
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 macvtap1
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 virbr0
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 virbr0-nic
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 vnet0
-rw-r--r--. 1 vnstat vnstat 2792  3月  4 18:50 vnet1
更新間隔を変更 (最短 1 分) できるけれど、vnstati の集計単位が Hour だったりするので、短くしても効果が出ません。
リアルタイムで監視するなら、(テキストだけれど) bmon のほうが良いと思います。
変更する場合は、こんな感じ。
# vi /etc/vnstat.conf
 ~
SaveInterval 1
 ~
BandwidthDetectionInterval 1
# systemctl restart vnstat をお忘れなく。

5. vnstat の使い方
5-1. 現在のトラフィックを表示する場合 (テキストのみ)
$ vnstat -i macvtap0 # -i はネットワークインタフェース名を指定する
Database updated: Mon Mar  4 19:14:58 2019

   macvtap0 since 2019年03月04日

          rx:  322.58 MiB      tx:  252.31 MiB      total:  574.88 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      3月 '19     322.58 MiB |  252.31 MiB |  574.88 MiB |   15.90 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      2.84 GiB |    2.23 GiB |    5.07 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today    322.58 MiB |  252.31 MiB |  574.88 MiB |   67.96 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       401 MiB |     314 MiB |     715 MiB |
5-2. サマリをグラフィックで出力する場合
$ vnstati -i macvtap0 -vs --locale C -o summary.png

※1 vnstati は日本語を扱えないので、「--locale C」としています。(CentOS のデフォルト = 英語を指定)
※2「-o ファイル名」としても使えますが、「-o -」として標準出力を使うと別ホストから呼び出すことができます。
  こんな感じ: (メールサーバの vnstati を Web サーバから呼び出す場合)
  www$ ssh mail.example.jp vnstati -i eth0 -vs --locale C -o - > MailTraffics.png