vnstat — очень простой способ считать трафик на сервере. Утилиту удобно использовать в случаях, когда провайдер, по каким-то причинам, статистику по трафику не предоставляет, а лимиты при этом, устанавливает (Aruba, например).
Ставим vnstat из репозитория EPEL:
# yum install epel-release # yum install vnstat
При необходимости, редактируем конфигурационный файл /etc/vnstat.conf, например, параметром SaveInterval задаём интервал, с которым данные будут записываться в базу, по умолчанию там установлено значение 5 минут. Параметром MonthRotate указываем день в месяце, когда статистика будет обнуляться, параметром UnitMode задаём единицы измерения трафика (0 — KiB/MiB/GiB/TiB, 1 — KB/MB/GB/TB). Здесь же можно указать пользователя, от которого будет работать сервис, пути для логов, формат даты и времени, директорию для баз и многое другое.
Запускаем подсчёт с vnstat.
Отредактированный конфиг сохраняем, сервис перезапускаем:
# systemctl restart vnstat
Создаём базу данных для нужного нам интерфейса:
# vnstat -u -i eth0
И продолжаем пользоваться сервером\интернетом в обычном режиме. Спустя указанный в интервале SaveInterval промежуток времени, проверяем что статистика ведётся:
# vnstat
Запуск команды с ключом —help покажет дополнительные возможности вывода статистики, например, ключи -h, -d, -w, -m позволяют вывести часовую, дневную, еженедельную и ежемесячную статистику. Для получения статистики в реальном времени, запускаем программу с -l.
Администратор так же имеет возможность вывести статистику по трафику в виде изображения, делается это с помощью vnstati:
# vnstati -vs -o ~/vnstat01.png
Как видим, утилита простая, в использовании очень удобная, свою задачу решает отлично, так что если вопрос подсчёта трафика и ведения его статистики на сервере стоит — к vnstat имеет смысл присмотреться.
Не хватает только сведений о том, как следить за несколькими интерфейсами.
Достаточно просто создать для каждого отслеживаемого интерфейса свою базу, и vnstat будет собирать данные о них.
Ну и опять же, не стоит забывать что алиасы и виртуальные интерфейсы в мониторинг добавить нельзя, просто потому что ядро для них статистику не предоставляет:
> Virtual and aliased interfaces cannot be monitored because the kernel doesn’t provide traffic information for that type of interfaces. Such interfaces are usually named eth0:0, eth0:1, eth0:2 etc. where eth0 is the actual interface being aliased.