У меня есть несколько пользователей оболочки на сервере с 300 ГБ ежемесячной передачи данных. Как я могу отслеживать использование полосы пропускания для каждого пользователя?
Как корень, Вы могли, по крайней мере, измерить исходящий трафик на основе в расчете на пользователя с помощью модуля "владельца" iptables. Если все пользователи, которых Вы хотите контролировать, находятся в /root/list-of-users.txt
, можно сделать:
for login in $(cat /root/list-of-users.txt);
do
iptables -N out_user_$login
iptables -A OUTPUT -m owner --uid-owner $(id -u $login) -j out_user_$login
done
И затем пакет и счета байта для исходящего трафика каждого пользователя видимы:
iptables -L OUTPUT -n -v | grep out_
Это могло быть расширено далее с CONNMARK для отслеживания входящей стороны также.
Я только что натолкнулся на NetHogs :
NetHogs - это небольшой инструмент «net top». Вместо того, чтобы разбивать трафик на протокол или подсеть, как это делают большинство инструментов, он группирует пропускную способность по процессам.
blockquote>
Это должно позволить вам отслеживать пропускную способность по имени пользователя. Может потребоваться еще пара инструментов для регистрации информации и добавления всего этого, но это хорошее начало без непосредственного использования iptables.
Вы можете использовать Cacti
Cacti - это полный интерфейс RRDTool, он хранит всю необходимую информацию для создания графиков и заполнения их данными в базе данных MySQL. Интерфейс полностью основан на PHP. Наряду со способностью поддерживать графики, источники данных и циклические робин-архивы в базе данных, cacti обрабатывает сбор данных. Также есть поддержка SNMP для тех, кто используется для создания графиков трафика с помощью MRTG.
blockquote>Или vnStat
vnStat - это консольный монитор сетевого трафика для Linux и BSD, который ведет журнал сетевого трафика для выбранного интерфейса (ов). ). Он использует статистику сетевого интерфейса, предоставленную ядром, в качестве источника информации. Это означает, что vnStat на самом деле не будет анализировать трафик, а также обеспечивает легкое использование системных ресурсов.
blockquote>Оба они великолепны.
Я посмотрел немного, и я не нашел полный пакет графического интерфейса, который делает то, что вы хотите. Надеюсь, что кто-то существует, и кто-то опубликует об этом здесь в конце концов.
Я на самом деле не сетевой парень, но из того, что я прочитал, помимо всего прочего netstat
и iptables
должны делать для учета пользователей на основе ip / host, что делали инструменты acct
для системного учета процессов. Эта ссылка на cyberciti.biz может помочь вам в разработке системы с помощью этих инструментов:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/