Linux: Як виміряти щоденний / щомісячний мережевий трафік?


15

Мені потрібно вести статистику щоденного мережевого трафіку для машини Linux (CentOS 5).

Чи є спосіб зробити це за допомогою стандартних / рідних інструментів чи утиліт?
Або мені доведеться завантажувати для цього спеціальне програмне забезпечення?

Спасибі.


1
Наскільки точна вам потрібна статистика? Іншими словами, вам потрібно щось досить конкретне, щоб повторно виставити рахунок за пропускну здатність або це середні показники?
Зіфер

Мені потрібно точно знати, скільки трафіку я використовував щодня, оскільки я не хочу перевищувати певні межі.
GetFree

1
Тоді ви не хочете, щоб будь-який із інструментів, заснованих на RRD (кактуси, MRTG, Munin тощо), RRD усереднює цифри, щоб ви ніколи не отримали точну метрику, і вона фактично погіршиться з часом.
Зіфер

Відповіді:


8

Те, що Зіфер говорив про rrdtool (і все інше, що використовує його як бекенд - MRTG, кактуси тощо), ймовірно, правильне. RRDTool розроблений як "усереднений" історичний інструмент тренд-аналізу. Він в середньому і зберігає лічильники з все більш нерішучим кроком з подальшою віддачею у часі.

Це, однак, можна налаштувати, встановивши RRA відповідно. Признаюсь, я нічого не знаю про їх налаштування, і ніколи особисто мені не пощастило отримати їх за межі мого стандартного набору (15 хвилин, 8 годин, 1 тиждень, 1 місяць, 1 рік). Я рекомендую розібратися в налаштуванні RRA, щоб очікувати щоденного введення та подавати його на лічильник пропускної здатності від netstat. Ви отримаєте кілька дуже приємних історичних даних та ознайомлення з моделями використання.

Щоб відповісти на вашу поточну проблему, щоб переконатися, що ви не перевищуєте щоденну межу пропускної здатності; Я б рекомендував щодня брати лічильники netstat для відповідного інтерфейсу. Ви можете порівняти вчорашній трафік за час t з сьогоднішніми лічильниками за час t і дізнатися, скільки було переведено. Простий скрипт з плоским зберіганням текстових файлів попереднього значення, ймовірно, буде достатнім. Потім ви можете відключити інтерфейс, якщо виявите перевищену пропускну здатність або стежите за ним протягом дня та сповістите адміністратора, якщо наближаєтесь до обмеження.

Для отримання вхідних байтів в системі OSX ви можете використовувати такий набір команд:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

І навпаки, вихід можна отримати за допомогою:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

Ви можете спливати відповідні лічильники в плоский файл, який зберігається десь, і порівняти його з:

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

Просто налаштуйте обробку netstat відповідно до вашої системи (оскільки я знаю, що ви не працюєте з OSX).


25

Я також пропоную використовувати VnStat

vnStat 1.6 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
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

4

Пакет sysstat містить утиліту sar. Sar - надзвичайно настроювана система "профайлер", через відсутність кращого терміна, яка збирає різні статистичні дані за попередньо визначеними інтервалами (cron). Вони зберігаються у двійкових файлах, по одному на кожен день, які, як правило, обертаються щотижня, але це налаштовується. Програма sar може використовуватися для виведення статистичних даних із цих файлів, і ці результати легко можна зрозуміти з будь-якою офісною програмою або gnuplot (мої особисті переваги).

http://pagesperso-orange.fr/sebastien.godard/ <= Інформація про Sar
http://www.gnuplot.info/ <<= інформація про gnuplot


4

Vnstat - це чудовий монітор денного / тижневого / щомісячного трафіку на основі консолі. Це навіть дозволяє стежити за трафіком в режимі реального часу, що зручно.

Він також використовує дуже мало системних ресурсів;)


2

Ви хочете, щоб MRTG - це інструмент моніторингу мережі, він створює всі мережеві графіки, які ви бачите в Інтернеті (з rdtool, щоб перетворити цифри в картинки)

Якщо ви не хочете налаштувати його або просто потрібно щось простіше, ви можете використовувати iptables для запису передачі даних.


+1 для рішення iptables
GetFree

iptables посилання мертва - можливо, це? qaoverflow.com/question/…
twodayslate

1

Я використовував mrtg, це дуже приємне рішення, і є інший інструмент, який здається цікавим і дає багато інформації про трафік з назвою ntop мережевим зондом, тут знайдіть посилання про встановлення ntop на CentOS


1

Або MRTG, або кактуси. Кактуси - це болю створити, але дає кілька дуже гарних графіків. MRTG легко налаштувати базовий сюжет, але для будь-якого симпатичного або складного це досить важко.


1

Munin - це ще один приємний інструмент на основі RRD, який дуже легко налаштувати; Статистика мережі за замовчуванням є досить базовою, але додати додаткові плагіни легко. Я додав копію щоденної та тижневої статистики на одному зі своїх серверів; Ви також отримуєте щомісячну та щорічну статистику на іншій сторінці.

Графік мережі Муніна


Зображення
канадський Люк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.