У меня есть несколько пользователей оболочки на сервере с 300 ГБ ежемесячной передачи данных. Как я могу отслеживать использование полосы пропускания для каждого пользователя?
У меня есть несколько пользователей оболочки на сервере с 300 ГБ ежемесячной передачи данных. Как я могу отслеживать использование полосы пропускания для каждого пользователя?
Ответы:
Как пользователь 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.
sudo nethogs -v 3 eth0
(или нажмите m
несколько раз после начала циклического переключения режимов). Объедините с tmux
для постоянного запуска (даже если ваша ssh
сессия терпит крах).
Вы можете использовать Кактусы
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/
netstat -e
показывает пользователей оболочки, позволяя вам связать ip / host с именем пользователя.