Vnstat - консольная утилита для учета сетевого трафика для Linux и BSD систем. Сохраяет историю сетевого трафика для выбранных интерфейсов.
Трафик считается отдельно для каждого интерфейса (входящий и исходящий).
Доступна различная детализация отчетов: час, день, неделя, месяц.
Vnstat использует статистику сетевых интерфейсов, предоставляемых ядром Linux. Так что непосредственно за трафиком Vnstat не следит и не является снифером трафика, а лишь аккумулирует имеющуюся статистику.
Использование системных ресурсов ресурсов, в итоге, получается минимально.
Vnstat может использоваться без root-првилегий.
Установка Vnstat
Установка тривиальная для Debian систем:
$ sudo aptitude install vnstat
Настройка Vnstat
Непосредственно сразу после установки, необходимо проинициализировать интерфейсы, для которых необходимо считать трафик:
$sudo vnstat -u -i eth0
$sudo vnstat -u -i ppp0
Следствием того, что Vnstat использует статистику сетевых интерфейсов, предоставляемых ядром Linux, подсчет трафика ведется только тогда, когда интерфейс используется.
При установке создается cron-задание, выполняющееся каждые 5 минут и обновляющее статистику по каждому из выбранных интерфейсов:
$ ls -l /etc/cron.d | grep vnstat
-rw-r--r-- 1 root root 180 2008-02-08 13:56 vnstat
Просмотр сетевого трафика с Vnstat
Запуск Vnstat без параметров выводит трафик по всем активированным интерфейсам за сегодня и вчера:
$ vnstat
rx / tx / total / estimated
eth0:
yesterday 317.89 MB / 52.82 MB / 370.70 MB
today 88.46 MB / 10.17 MB / 98.63 MB / 170 MB
ppp0:
yesterday 41 kB / 14 kB / 55 kB
today 10.08 MB / 2.30 MB / 12.38 MB / 20 MB
Чтобы просмотреть сетевую статистику за последние 24 часа с почасовой детализацией,необходимо
запустить Vnstat
следующим образом:
$ vnstat -h -i eth0
eth0 13:50
^ 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
-+--------------------------------------------------------------------------->
| 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13
h rx (kB) tx (kB) h rx (kB) tx (kB) h rx (kB) tx (kB)
14 15703 2344 22 0 0 06 0 0
15 0 0 23 0 0 07 8450 2247
16 0 0 00 0 0 08 18663 2935
17 0 0 01 0 0 09 4191 766
18 0 0 02 0 0 10 2305 337
19 0 0 03 0 0 11 8157 1209
20 0 0 04 0 0 12 32604 1729
21 0 0 05 0 0 13 16418 1213
Чтобы просмотреть сетевую статистику с дневной детализацией, необходимо запустить Vnstat следующим образом:
$ vnstat -d -i eth0
eth0 / daily
day rx | tx | total
------------------------+-------------+----------------------------------------
01.06. 27.46 MB | 4.93 MB | 32.39 MB %%
02.06. 117.74 MB | 24.06 MB | 141.80 MB %%%%%%%::
03.06. 317.89 MB | 52.82 MB | 370.70 MB %%%%%%%%%%%%%%%%%%%%%::::
04.06. 88.66 MB | 10.19 MB | 98.85 MB %%%%%:
------------------------+-------------+----------------------------------------
estimated 151 MB | 17 MB | 168 MB
Чтобы просмотреть сетевую статистику за месяц, необходимо запустить Vnstat следующим образом:
$ vnstat -m -i eth0
eth0 / monthly
month rx | tx | total
-------------------------+--------------+--------------------------------------
Jun '09 551.88 MB | 92.01 MB | 643.88 MB %%%%%%%%%%%%%%%%%%%:::
-------------------------+--------------+--------------------------------------
estimated 1.53 GB | 261 MB | 1.79 GB
Чтобы просмотреть сетевую статистику 10 самый ресурсоемких дней, необходимо запустить Vnstat следующим образом:
$ vnstat --top10 -i eth0
eth0 / top 10
# day rx | tx | total
-------------------------------+-------------+---------------------------------
1 03.06.09 317.89 MB | 52.82 MB | 370.70 MB %%%%%%%%%%%%%%%:::
2 02.06.09 117.74 MB | 24.06 MB | 141.80 MB %%%%%:
3 01.06.09 27.46 MB | 4.93 MB | 32.39 MB %
-------------------------------+-------------+---------------------------------
Чтобы просмотреть сетевую статистику в реальном времени, необходимо запустить Vnstat следующим образом:
$ vnstat -l -i eth0
Monitoring eth0... (press CTRL-C to stop)
rx: 0.46 kB/s 3 p/s tx: 0.00 kB/s 0 p/s^C
eth0 / traffic statistics
rx | tx
--------------------------------------+----------------------------------------
bytes 298 kB | 32 kB
--------------------------------------+----------------------------------------
max 77.14 kB/s | 5.59 kB/s
average 8.29 kB/s | 0.92 kB/s
min 0.09 kB/s | 0.00 kB/s
--------------------------------------+----------------------------------------
packets 394 | 232
--------------------------------------+----------------------------------------
max 59 p/s | 42 p/s
average 10 p/s | 6 p/s
min 2 p/s | 0 p/s
--------------------------------------+----------------------------------------
time 36 seconds
Для того, чтобы получить сырые данные от Vnstat и использовать их по своему усмотрению (парсить и выводить на свой лад), необходимо запустить Vnstat следующим образом:
$ vnstat --dumpdb -i eth0
version;3
active;1
interface;eth0
nick;eth0
created;1244453553
updated;1244715001
totalrx;552
totaltx;92
currx;94223619
curtx;10895032
totalrxk;927
totaltxk;144
btime;1244690023
# следующие 30 линий будут следующего формата:
d;0;1244690401;89;10;835;351;1
# где:
# d = дни, 0 = номер дня в БД (0 - сегодня), 1244690401 дата в Unix time,
# 89 = rx MB, 10 = tx MB, 835 = rx kB, 351 = tx kB
# далее строки в формате
m;0;1078092000;48649;139704;527;252;1 #12 строк
t;0;1078351200;5979;47155;362;525;1 #10 строк
h;0;1078699800;118265;516545 #24 строк
# где:
# m = месяцы, t = top10, h = часы, все остальные поля аналогичны выше описанному для дней,
# кроме часов, где сетвертое и пятое значения в kB.
Чтобы остановить подсчет трафика и сбросить счетчик, необходимо выполнить:
$sudo vnstat -u -r --disable -i eth0
Коментувати