Как узнать статистику использования сетевого траффика в Linux

Существует отличная консольная утилита для отображения информации о количестве переданной и принятой информацией по каждому сетевому интерфейсу с разбивкой по датам и визуальным отображением в как в консольном, так и графическом режимах. Имя этой утилиты — vnstat.

Я натолкнулся на неё, когда искал утилиту для подсчета траффика с разбивкой по дням/месяцам.
Из её основным преимуществ стоит назвать:

  • скорость и простота в установке и настройке
  • статистика сохраняется даже после перезагрузки системы
  • может одновременно следить за несколькими интерфейсами
  • вывод графиков за всё время, по часам, дням, неделям, месяцам и пр.
  • не требователен к ресурсам
  • может быть использован без прав суперпользователя

Устанавливается это чудо в Ubuntu довольно просто:

sudo apt-get install vnstat vnstati

Отдельный демон считает ваш траффик и пишет в свою базу данных, что по-умолчанию располагается в папке /var/lib/vnstat.

Вывод статистики в консоли можно получить просто вызвав vnstat с некоторыми параметрами.
Вот несколько из них и пример вывода.

Вывод траффика за последние 24 часа в консоль:

sudo vnstat -h
 em1
  ^           r
  |           r
  |           r                                            r
  |        r  r                                            r
  |      t r  r                                            r            t
  |     rt r  r                                            r  r      t  t
  |     rt r  r                                            r  r      t  t
  |     rt r  r         t                      r           r  r      t  t
  |     rt r  rt        t                   r  r        r  rt rt  t rt rt  t
  |  rt rt rt rt rt r  rt r              r  r  r  r  rt rt rt rt rt rt rt  t
 -+--------------------------------------------------------------------------->
  |  22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21
 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)
22    250,801    205,825    06    100,529     49,054    14    205,356    157,877
23    705,144    885,844    07     52,806     44,130    15    258,228    226,265
00    928,792    224,789    08     52,298     45,230    16  1,028,043    343,843
01  1,271,180    292,260    09     70,396     61,719    17    755,804    293,309
02    212,296    186,481    10    155,502     72,451    18    235,691    284,886
03    165,931     91,943    11    266,673     92,497    19    275,554    658,386
04    150,997    437,071    12    392,244    122,185    20    307,819    850,813
05    180,170     56,391    13    133,829    120,555    21    117,474    292,787

Вывод траффика по дням в консоль:

sudo vnstat -d
         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      07/03/13     10.90 GiB |    6.39 GiB |   17.29 GiB |    1.68 Mbit/s
      07/04/13     21.21 GiB |    5.65 GiB |   26.87 GiB |    2.61 Mbit/s
      07/05/13     10.58 GiB |    6.67 GiB |   17.25 GiB |    1.67 Mbit/s
      07/06/13     49.90 GiB |    9.69 GiB |   59.59 GiB |    5.79 Mbit/s
      07/07/13     28.09 GiB |    7.58 GiB |   35.68 GiB |    3.46 Mbit/s
      07/08/13     17.60 GiB |    6.83 GiB |   24.43 GiB |    2.37 Mbit/s
      07/09/13     20.80 GiB |   15.64 GiB |   36.44 GiB |    3.54 Mbit/s
      07/10/13     16.10 GiB |   11.14 GiB |   27.24 GiB |    2.64 Mbit/s
      07/11/13      9.79 GiB |    4.96 GiB |   14.76 GiB |    1.43 Mbit/s
      07/12/13      9.36 GiB |    9.60 GiB |   18.97 GiB |    1.84 Mbit/s
      07/13/13     11.26 GiB |    8.16 GiB |   19.42 GiB |    1.89 Mbit/s
      07/14/13     32.65 GiB |    9.56 GiB |   42.21 GiB |    4.10 Mbit/s
      07/15/13     35.32 GiB |   15.55 GiB |   50.88 GiB |    4.94 Mbit/s
      07/16/13     20.71 GiB |   15.24 GiB |   35.95 GiB |    3.49 Mbit/s
     ------------------------+-------------+-------------+---------------

Также вы можете с помощью утилиты vnstati вывести эту статистику в графическом режиме с экпортом в PNG (необходим libgd).
Вот пример вывода общей статистики, за последние 24 часа, по дням и по месяцам.

Общая статистика
Статистика за последние 24 часа
Статистика по дням
Статистика по месяцам

Делается этот экспорт довольно просто:

vnstati -s -i em1 -o ./vnstati-s.png
vnstati -h -i em1 -o ./vnstati-h.png
vnstati -d -i em1 -o ./vnstati-d.png
vnstati -m -i em1 -o ./vnstati-m.png

Где em1 — это ваш сетевой интерфейс.

Существует online-редактор внешнего вида отображения этих графиков, где вы можете настроить много разных параметров.
Вы можете экспортировать ваши настройки отображения и вставить их в конфиг утилиты /etc/vnstat.conf