Linux: Как измерить ежедневный / ежемесячный сетевой трафик?

15

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

Есть ли способ сделать это, используя стандартные / нативные инструменты или утилиты?
Или я должен загрузить специальное программное обеспечение для этого?

Благодарю.

Получить бесплатно
источник
1
Насколько точна статистика? Другими словами, нужно ли вам что-то достаточно конкретное, чтобы выставить счет за пропускную способность, или средние показатели хороши?
Zypher
Мне нужно точно знать, сколько трафика я использовал каждый день, потому что я не хочу превышать определенные ограничения.
GetFree
1
Тогда вам не нужен ни один из инструментов на основе RRD (Cacti, MRTG, Munin и т. Д.). RRD усредняет числа, поэтому вы никогда не получите точную метрику, и со временем она действительно ухудшится.
Zypher

Ответы:

8

То, что Zypher говорил о rrdtool (и обо всем, что использует его как бэкэнд - MRTG, Cacti и т. Д.), Вероятно, правильно. 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/ <= информация о Сар
http://www.gnuplot.info/ <= информация о gnuplot

d34dh0r53
источник
4

Vnstat - это отличный ежедневный / еженедельный / ежемесячный монитор трафика на основе консоли. Это даже позволяет отслеживать трафик в режиме реального времени, что удобно.

Он тоже использует очень мало системных ресурсов;)

Хилтон Д
источник
2

Вам нужен MRTG, который является инструментом сетевого мониторинга, он производит все сетевые графики, которые вы видите в Интернете (с помощью rdtool, чтобы превратить числа в картинки)

Если вы не хотите его настраивать или вам просто нужно что-то более простое, вы можете использовать iptables для записи передачи данных.

gbjbaanb
источник
+1 за решение iptables
GetFree
Ссылка iptables мертва - возможно, это? qaoverflow.com/question/…
twodayslate
1

Я использовал mrtg, это очень хорошее решение, и есть другой инструмент, который кажется интересным и дает много информации о трафике, называемый ntop, сетевой зонд, здесь вы найдете ссылку об установке ntop на CentOS.

Али Мезгани
источник
1

Либо MRTG, либо Кактусы. Кактусы - это боль в настройке, но она дает очень красивые графики. MRTG легко настроить базовый сюжет, но для чего-то симпатичного или сложного, это довольно сложно.

Аарон Браун
источник
1

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

Граф сети Мунин

gareth_bowles
источник
Изображение ушло сейчас
канадец Люк