Я администратор Linux-сервера openSUSE, которым пользуются многие люди в нашей компании.
Сегодня мы узнаем, что вчера один из пользователей использовал слишком много полосы пропускания, и отделу управления важно заметить, какой пользователь это сделал.
Я искал на разных сайтах, форумах и т. Д., И все, что я нашел, было ifconfig
или ifstat
которые просто показывают использование всей сети. а также устанавливаю инструмент vnstat
чтобы начать мониторинг сети и ведение журнала на случай, если в будущем могут возникнуть проблемы.
Наконец, мне интересно, есть ли какое-либо решение для определения использования сети в определенное время в прошлом для каждого пользователя. или есть ли в Linux файл журнала, отвечающий за отслеживание использования сети пользователями.
Это очень просто: с iptables
, вы также можете отслеживать пользователей. Теоретически вы можете заблокировать / удалить / перенаправить их пакеты, но сейчас вы хотите только их измерить. Это очень просто, потому что iptables по умолчанию отслеживает все данные, проходящие через их правила. Пример кода здесь:
iptables -A OUTPUT -o eth0 -m owner --uid-owner 1001
После iptables -L -v -n
вы сможете увидеть, сколько данных отправил пользователь с uid 1001.
Конечно, это не полное решение - возможно, была бы гораздо лучшая альтернатива, если бы вы
Наверное, для этого есть готовые инструменты, хотя и реализовать вручную было не так уж сложно.
Нет, такого файла журнала нет.
Для этого вам нужно специально настроить ведение журнала, и я не знаю стандартного способа сделать это. Это может быть непросто сделать точно: пользователь может заставить процесс, которым он не владеет, генерировать сетевой трафик, и может быть нетривиальным приписать этот трафик этому пользователю.
См. Например этот почти повторяющийся вопрос или вот этот.
Проблема в том, что вам необходимо установить связь между сетевым подключением и пользователем во время его работы. Как только это будет сделано, эта ссылка будет потеряна (по крайней мере, насколько мне известно).
Один из способов сохранить эту информацию - следовать тому, что объясняется в этом вопросе:
Как отслеживать пропускную способность сети для каждого пользователя на сервере Ubuntu?. (AskUbuntu)