В эпоху облачных вычислений виртуальные машины (ВМ) стали очень распространенными, в то время как использование физических машин начало постепенно снижаться. В этой статье мы представим инструменты ‘vnStat’ и ‘iftop’, которые мы можем использовать для мониторинга потребления данных в ВМ.
Сначала я создаю машину со следующими ресурсами:
20 ГГц ЦП
16 ГБ ОЗУ
20 ГБ SSD
Я монтирую диск с образом Ubuntu 18.04, который доступен в CloudSigma’s библиотеке.
Ubuntu 18.04: предустановленная 64-битная версия с драйверами VirtIO, суперпользователем, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init и последними обновлениями до 30.09.2018.
Далее я обновляю все существующие репозитории и пакеты на машине.
|
1 2 |
sudo apt update sudo apt upgrade |
Теперь, когда наша система обновлена, я перейду к нашим инструментам ‘vnStat’ и ‘iftop’.
VNSTAT
По словам humdi, vnStat — это консольный монитор сетевого трафика для Linux и BSD, который ведет журнал сетевого трафика для выбранных интерфейсов. В качестве источника информации он использует статистику сетевых интерфейсов, предоставляемую ядром. Это означает, что vnStat на самом деле не будет перехватывать трафик, а также обеспечивает минимальное использование системных ресурсов.
Некоторые из возможностей vnStat:
- Даже если система перезагрузится, данные сохранятся.
- Он может контролировать несколько интерфейсов одновременно.
- Есть несколько вариантов вывода, например, по дням, по неделям и т. д.
- Политики хранения данных могут быть настроены пользователем.
- Месяцы могут быть настроены в соответствии с расчетным циклом.
- Сам инструмент очень легкий, а использование ресурсов минимально.
- Использование процессора будет одинаковым независимо от трафика.
Установка
Используйте следующую команду для установки vnStat:
|
1 |
sudo apt install vnstat |
Он должен автоматически обнаружить сетевой интерфейс. Если этого не произошло, я могу проверить интерфейс с помощью команды:
|
1 |
ip addr |
В моем случае я вижу два интерфейса:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Я могу игнорировать локальный интерфейс (loopback). Интерфейс, который я хочу отслеживать, — ‘ens3’. Я могу обновить это в vnStat с помощью команды:
|
1 |
sudo vnstat -u -i ens3 |
Usage Guide
Руководство по использованию можно просмотреть с помощью команды: vnStat –help
Использование будет описано следующим образом:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 от Teemu Toivola <tst at iki dot fi> -q, --query запрос к базе данных -h, --hours показать часы -d, --days показать дни -m, --months показать месяцы -w, --weeks показать недели -t, --top10 показать топ 10 дней -s, --short использовать краткий вывод -u, --update обновить базу данных -i, --iface выбрать интерфейс (по умолчанию: ens3) -?, --help краткая справка -v, --version показать версию -tr, --traffic рассчитать трафик -ru, --rateunit переключить настроенную единицу измерения скорости -l, --live показать скорость передачи в реальном времени См. также "--longhelp" для полного списка опций и "man vnstat". |
С помощью этих команд мы можем получить метрики использования данных.
Для простого и интуитивно понятного мониторинга мы можем установить панель управления vnStat. Ниже приведены шаги по установке панели управления:
Установите следующие необходимые зависимости:
|
1 |
sudo apt install apache2 php wget unzip -y |
После установки необходимых зависимостей мы загрузим панель управления из репозитория GitHub, распакуем её и поместим в каталог нашего веб-сервера.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
Далее нам нужно отредактировать конфигурацию.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Следующие строки потребуют изменений. Я выделяю необходимые изменения жирным шрифтом.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Тестовый интерфейс"; } |
Я могу назвать интерфейс, чтобы упростить мониторинг. Для мониторинга можно использовать несколько интерфейсов. Мы можем добавить их сюда.
После внесения изменений откройте <<IP-ADDRESS>>/vnstat
Теперь я могу видеть данные в удобном виде.


IFTOP
iftop прослушивает сетевой трафик на указанном интерфейсе или на первом найденном интерфейсе, который выглядит как внешний, если интерфейс не указан. Он отображает таблицу текущего использования пропускной способности парами хостов. Мы должны запускать iftop с достаточными правами для мониторинга всего сетевого трафика на интерфейсе.
Установка
Мы можем установить Iftop с помощью следующей команды:
|
1 |
sudo apt install iftop |
Руководство по использованию
Руководство по использованию можно просмотреть с помощью команды: iftop -h
Использование будет описано следующим образом:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: отображение пропускной способности использования на an интерфейсе по хостам Синопсис: iftop -h | [-npblNBP] [-i интерфейс] [-f код фильтра] [-F сеть/маска] [-G сеть6/маска6] -h вывести это сообщение -n не определять имена хостов -N не преобразовывать convert номера портов в имена служб -p запуск в смешанном режиме (показывать трафик между другими узлами в том же сегменте сети) -b не 't отображать a столбчатую диаграмму of трафика -B Отображать пропускную способность в байтах -i интерфейс слушать на указанном интерфейсе -f код фильтра использовать код фильтра для выбора пакетов для подсчета (по умолчанию: нет, но только IP-пакеты будут подсчитываться) -F сеть/маска показывать потоки трафика в /и из of сети IPv4network -G net6/mask6 показывать потоки трафика в /и из of сети IPv6network -l отображать и подсчитывать локальный -связующий трафик IPv6traffic (по умолчанию: выключено) -P показывать порты, а также и узлы -m limit задает верхний предел для шкалы пропускной способностиscale -c config file указывает альтернативный конфигурационный файлfile -t использовать текстовый интерфейс без ncurses Порядок сортировки: -o 2s Сортировать по первому столбцу (2s среднего трафика) -o 10s Сортировать по второму столбцу (10s среднего трафика) [по умолчанию] -o 40s Сортировать по третьему столбцу (40s среднего трафика) -o source Сортировать по адресу источника -o destination Сортировать по адресу назначения Следующие опции доступны только в сочетании с twith -t -s num вывести один одиночный текстовый вывод через num секунд, , затем выйти -L num количество строк для вывода print iftop, версия 1.0pre4 авторские права (c) 2002 Paul Warren <pdw@ex-parrot.com> и соавторы |
Для работы требуются права root. Я просто использую sudo, так как мой пользователь cloudsigma входит в группу sudoers. Я также могу использовать команду ‘sudo su’, а затем запускать все команды от имени пользователя root.
Следующая команда отобразит все соединения на интерфейсе ‘ens3’ и транзакции данных:
|
1 2 |
sudo su iftop |
Более простой способ, если требуется зафиксировать трафик данных за определенный промежуток времени:
|
1 |
iftop -t -s 30 |
Вышеупомянутая команда суммирует транзакции трафика данных за следующие 30 секунд и по истечении этого времени выдаст таблицу со списком всего использования данных и скоростей передачи.
Хотя iftop показывает скорость передачи в реальном времени, утилита не сохраняет данные и не имеет панели мониторинга для интуитивной визуализации и выявления закономерностей. Поэтому, если вы хотите видеть скорость передачи данных в реальном времени, мы рекомендуем iftop. Для мониторинга трафика данных в течение более длительного периода мы рекомендуем vnStat.
Мы надеемся, что вы сможете использовать это руководство с пользой для себя и применить основы использования vnStat и iftop для мониторинга потребления данных внутри VM.
Комментарии
Комментариев пока нет. Будьте первым.