Как контролировать пропускную способность сети на пользователя на сервере Ubuntu?
У меня есть несколько пользователей оболочки на сервере с 300 ГБ ежемесячной передачи данных. Как я могу отслеживать использование полосы пропускания для каждого пользователя?
4 ответа
Как пользователь root, вы можете по крайней мере измерить исходящий трафик для каждого пользователя, используя модуль "владельца" 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 - это небольшой инструмент для работы с сеткой. Вместо того, чтобы разбивать трафик на протокол или подсеть, как это делают большинство инструментов, он группирует пропускную способность по процессам.
Это должно позволить вам отслеживать пропускную способность по имени пользователя. Может потребоваться еще пара инструментов для регистрации информации и добавления всего этого, но это хорошее начало без непосредственного использования iptables.
Вы можете использовать Кактусы
Cacti - это полный интерфейс RRDTool, он хранит всю необходимую информацию для создания графиков и заполнения их данными в базе данных MySQL. Интерфейс полностью основан на PHP. Наряду со способностью поддерживать графики, источники данных и циклические робин-архивы в базе данных, cacti обрабатывает сбор данных. Также есть поддержка SNMP для тех, кто используется для создания графиков трафика с помощью MRTG.
Или vnStat
vnStat - это консольный монитор сетевого трафика для Linux и BSD, который ведет журнал сетевого трафика для выбранных интерфейсов. Он использует статистику сетевого интерфейса, предоставленную ядром, в качестве источника информации. Это означает, что vnStat на самом деле не будет анализировать трафик, а также обеспечивает легкое использование системных ресурсов.
Оба они великолепны.
Я посмотрел немного, и я не нашел полный пакет графического интерфейса, который делает то, что вы хотите. Надеюсь, что один существует, и кто-то опубликует об этом здесь в конце концов
Я не очень сетевой парень, но из того, что я прочитал, среди многих других вещей netstat
а также iptables
должны делать для учета пользователей на основе IP / хоста, что acct
инструменты делали для учета системного процесса. Эта ссылка на cyberciti.biz может помочь вам в разработке системы с помощью следующих инструментов:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/