У мене є кілька користувачів оболонок на сервері з 300 Гб щомісячної передачі даних. Як я можу контролювати використання пропускної здатності на користувача?
У мене є кілька користувачів оболонок на сервері з 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 - це невеликий інструмент «чистого верху». Замість того, щоб скорочувати трафік за протоколом або по підмережі, як це робить більшість інструментів, він групує пропускну здатність за процесом.
Це повинно дозволити вам відстежувати пропускну здатність за іменем користувача. Можливо, ще потрібні ще кілька інструментів для реєстрації інформації та додавання її, але це хороший початок, не використовуючи безпосередньо iptables.
sudo nethogs -v 3 eth0
(або натискати m
кілька разів після початку циклу через режими). Поєднуйтесь із, tmux
щоб постійно працювати (навіть якщо ваш ssh
сеанс завершується).
Можна використовувати кактуси
Кактуси - це повний інтерфейс до RRDTool, він зберігає всю необхідну інформацію для створення графіків та заповнення їх даними в базі даних MySQL. Передній панель повністю керований PHP. Поряд із можливістю підтримувати у базі даних графіки, джерела даних та архів Round Robin, кактуси обробляють збір даних. Існує також підтримка SNMP для тих, хто використовується для створення графіків трафіку за допомогою MRTG.
Або vnStat
vnStat - це консольний монітор мережевого трафіку для Linux та BSD, який веде журнал мережевого трафіку для вибраних інтерфейсів. Він використовує статистику мережевого інтерфейсу, надану ядром, як джерело інформації. Це означає, що vnStat насправді не буде нюхати жоден трафік, а також забезпечує легке використання системних ресурсів.
Обидва вони чудові.
Я трохи подивився, і не знайшов всебічного пакету gui, який би робив те, що ви хочете. Сподіваємось, хтось існує, і хтось опублікує про це тут, зрештою.
Я насправді не мережевий хлопець, але з того, що я читав, серед багатьох речей, netstat
і я iptables
повинен робити для облікового запису користувачів на базі ip / host те, що acct
робив інструмент для обліку системних процесів. Це посилання cyberciti.biz може допомогти вам створити систему з цими інструментами:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
показує користувачів оболонки, дозволяючи зв’язати ip / host з ім'ям користувача.