Учет трафика сетевого интерфейса в Linux с помощью vnstat

В работе любого Linux или FreeBSD сервера нередко приходится просматривать проходящий трафик через сетевой интерфейс. Для такого мониторинга сетевого трафика подходит маленький консольный пакет, который умеет подсчитывать проходящие мимо мегабайты и показывать статистику по часам, дням, неделям и т. д. Он может вести подсчет на нескольких сетевых интерфейсах одновременно и их количество не имеет для него никакого значения.

Vnstat поддерживает Linux, *BSD и Darwin/MacOS X операционные системы. Системных ресурсов vnstat потребляет очень мало.

Установка

  1. DEB - подобные дистрибутивы
    sudo apt-get install vnstat
    RPM - подобные дистрибутивы
    sudo rpm -i vnstat.rpm
    FreeBSD
    pkg_add -r vnstat
    Cпециально для Unix Way на сайте разработчика есть исходники.
  2. Отключаем необходимые сетевые интерфейсы (в нашем случае их два: eth0 и wlan0):
    sudo ifdown eth0
    sudo ifdown wlan0
  3. Устанавливаем мониторинг сетевых интерфейсов:
    vnstat -u -i eth0
    vnstat -u -i wlan0
  4. Включаем сетевые интерфейсы:
    sudo ifdup eth0
    sudo ifdup wlan0

Использование

Вся работа заключается в просмотре статистики по выбранным интерфейсам. Просмотреть статистику можно несколькими командами. Посмотреть текущие значения можно командой:

# Текущие показания монитора
vnstat
Результат:
Database updated: Sat Apr 18 04:40:01 2009

wlan0

received: 25.31 MB (92.6%)
transmitted: 2.89 MB (7.4%)
total: 28.20 MB

rx | tx | total
----------------------------+---------------+-------------------
today 25.31 MB | 2.89 MB | 28.20 MB
----------------------------+---------------+-------------------
estimated 127 MB | 10 MB | 137 MB

Информацию можно вывести в удобном виде: по часам, по дням, по неделям, по месяцам. Можно просмотреть рейтинг самых «весомых» дней.

# Показать статистику трафика по часам
vnstat -h
# Показать статистику по дням
vnstat -d
Результат:
wlan0 / daily

day rx | tx | total
-----------------------------+-------------+----------------------------------------
18.04. 25.35 MB | 2.90 MB | 28.25 MB %%%%%%%%%:::
-----------------------------+-------------+----------------------------------------
estimated 125 MB | 10 MB | 135 MB
# Показать статистику по неделям
vnstat -w
# Показать статистику по месяцам
vnstat -m
# Показать top10 дней
vnstat -t
Результат:
wlan0 / top 10

# day rx | tx | total
--------------------------------------+----------------+---------------------------------
1 20.02.09 19.15 GiB | 37.55 GiB | 56.70 GiB %%%%%%::::::::::::
2 02.02.09 20.65 GiB | 34.03 GiB | 54.68 GiB %%%%%%:::::::::::
3 14.01.09 20.00 GiB | 32.99 GiB | 52.99 GiB %%%%%%::::::::::
4 31.01.09 13.33 GiB | 29.83 GiB | 43.16 GiB %%%%:::::::::
5 30.12.08 30.52 GiB | 11.81 GiB | 42.33 GiB %%%%%%%%%::::
6 13.01.09 19.09 GiB | 20.43 GiB | 39.53 GiB %%%%%%::::::
7 04.02.09 13.16 GiB | 24.09 GiB | 37.25 GiB %%%%:::::::
8 19.03.09 27.82 GiB | 8.71 GiB | 36.53 GiB %%%%%%%%:::
9 20.01.09 11.92 GiB | 21.00 GiB | 32.91 GiB %%%%::::::
10 09.02.09 12.95 GiB | 19.26 GiB | 32.21 GiB %%%%::::::
--------------------------------------+----------------+---------------------------------