vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s).
サーバのtrafficを真面目に確認/監視したい場合はcacti, mrtg等を使うのが通常だと思いますが、たった数台のためだけにcacti server立てたり、snmpd 設定するのが面倒くさい!という場合にはvnstatが便利かもしれない。
install
source
結果をグラフに出力するvnstati を使う(make all)場合はgdが必要なのであらかじめ入れておく。
# tar zxvf vnstat-1.11.tar.gz # cd vnstat-1.11 # make all
起動scriptのsampleはsource/examples/init.d/ 以下にディストリビューションごとに用意されている。
installされるブツ
- vnstat
- vnstatd
- vnstati
- /etc/vnstat.conf
vnstatの使い方
/etc/vnstat.conf
dbの保存場所 (/var/lib/vnstat) や、vnstatd 起動時のdataを保存するInterval などの設定をする
vnstat
# vnstat --help vnStat 1.11 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 -ru, --rateunit swap configured rate unit -l, --live show transfer rate in real time See also "--longhelp" for complete options list and "man vnstat".
引数を何もつけなかったら全interfaceのsummary が表示される。
- db初期化(更新)
# vnstat -u -i eth0
以後、vnstat を叩けば統計が表示される。
- データの更新
vnstat -u で更新するか、vnstatd をdaemonで起動しておく。
# vnstat -u -i eth0
$ vnstat Database updated: Thu Aug 9 12:54:48 2012 eth0 since 08/08/12 rx: 219.06 MiB tx: 8.29 MiB total: 227.35 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Aug '12 219.06 MiB | 8.29 MiB | 227.35 MiB | 2.52 kbit/s ------------------------+-------------+-------------+--------------- estimated 795 MiB | 29 MiB | 824 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 96.33 MiB | 5.05 MiB | 101.39 MiB | 9.61 kbit/s today 122.73 MiB | 3.24 MiB | 125.96 MiB | 22.20 kbit/s ------------------------+-------------+-------------+--------------- estimated 226 MiB | 5 MiB | 231 MiB | $ vnstat -w eth0 / weekly rx | tx | total | avg. rate ---------------------------+-------------+-------------+--------------- last 7 days 219.06 MiB | 8.29 MiB | 227.35 MiB | 3.30 kbit/s current week 219.06 MiB | 8.29 MiB | 227.35 MiB | 6.09 kbit/s ---------------------------+-------------+-------------+--------------- estimated 438 MiB | 16 MiB | 454 MiB | $ vnstat -m eth0 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Aug '12 219.06 MiB | 8.29 MiB | 227.35 MiB | 2.52 kbit/s ------------------------+-------------+-------------+--------------- estimated 795 MiB | 29 MiB | 824 MiB | $ vnstat -d eth0 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 08/08/12 96.33 MiB | 5.05 MiB | 101.39 MiB | 9.61 kbit/s 08/09/12 122.73 MiB | 3.24 MiB | 125.96 MiB | 22.20 kbit/s ------------------------+-------------+-------------+--------------- estimated 226 MiB | 5 MiB | 231 MiB | $ vnstat -h eth0 12:54 ^ r | r | r r r r r r r r r r r r r r r r r r r r r r r | r r r r r r r r r r r r r r r r r r r r r r r | r r r r r r r r r r r r r r r r r r r r r r r | r r r r r r r r r r r r r r r r r r r r r r r | r r r r r r r r r r r r r r r r r r r r r r r | r r r r r r r r r r r r r r r r r r r r r r r | rt r r r r r r r r r r r r r r r r r r r r r r | rt r r r r r r r r r r r r r r r r r r r r r r -+---------------------------------------------------------------------------> | 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) 13 0 0 21 9589 225 05 9413 156 14 11559 3416 22 9835 158 06 9581 227 15 9440 329 23 9656 153 07 9893 170 16 10023 184 00 9745 230 08 9861 168 17 9811 160 01 9760 158 09 9665 237 18 9404 215 02 9737 160 10 9638 162 19 9511 163 03 9671 233 11 9636 162 20 9819 172 04 9675 164 12 9398 1086
vnstatd
定期的にvnstatを実行しているdaemon? cronでvnstat -u でupdateするでも、vnstatd をdaemon 起動しておくでもどっちでも良いかな。
# vnstatd --daemon
vnstati
vnstat(d) で取得したデータからpngのグラフを生成する。
$ vnstati --help vnStat image output 1.11 by Teemu Toivola <tst at iki dot fi> -h, --hours output hours -d, --days output days -m, --months output months -t, --top10 output top10 -s, --summary output summary -hs, --hsummary output horizontal summary with hours -vs, --vsummary output vertical summary with hours -nh, --noheader remove header from output -ne, --noedge remove edge from output -ru, --rateunit swap configured rate unit -o, --output select output filename -c, --cache update output only when too old -i, --iface used interface (default: eth0) -?, --help this help -D, --debug show some additional debug information -v, --version show version --dbdir select database directory --style select output style (0-3) --locale set locale --config select config file --transparent toggle background transparency See also "man vnstati".
- example
$ vnstati -h -o hourly.png