Мне нужно вести статистику ежедневного сетевого трафика для Linux-машины (CentOS 5).
Есть ли способ сделать это с помощью стандартных / собственных инструментов или утилит?
Или мне для этого нужно скачать специальный софт?
Спасибо.
Я также предлагаю использовать 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
То, что Зайфер говорил о 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).
Внстат - отличный консольный ежедневный / еженедельный / ежемесячный монитор трафика. Он даже позволяет вам отслеживать трафик в реальном времени, что очень удобно.
Он также использует очень мало системных ресурсов;)
Пакет sysstat содержит утилиту sar. Sar - это чрезвычайно настраиваемый системный «профилировщик», за неимением лучшего термина, который собирает различную статистику через предопределенные интервалы (cron). Они хранятся в двоичных файлах, по одному на каждый день, которые обычно меняются еженедельно, но это можно настроить. Программа sar может использоваться для извлечения статистики из этих файлов, и эти результаты можно легко отобразить в виде графика с помощью любой офисной программы или gnuplot (мои личные предпочтения).
http://pagesperso-orange.fr/sebastien.godard/ <= Информация о Sar
http://www.gnuplot.info/ <= информация о gnuplot
Вы хотите MRTG который является инструментом мониторинга сети, это то, что создает все сетевые графики, которые вы видите в Интернете (с помощью rdtool, чтобы превратить числа в изображения)
Если вы не хотите его настраивать или вам просто нужно что-то попроще, вы можете использовать iptables для записи передачи данных.
Я использовал mrtg, это очень хорошее решение, и есть другой инструмент, который кажется интересным и который дает много информации о трафике с именем ntop a network probe, Вот найти ссылку об установке ntop на CentOS
Либо MRTG, либо Cacti. Cacti сложно настроить, но он дает очень красивые графики. MRTG легко создать базовый сюжет, но для чего-то красивого или сложного это довольно сложно.
Мунин - еще один замечательный инструмент на основе RRD, который очень легко настроить; статистика сети по умолчанию довольно проста, но легко добавить дополнительные плагины. Я приложил копию ежедневной и еженедельной статистики на одном из моих серверов; вы также получаете ежемесячную и годовую статистику на другой странице.