W erze przetwarzania w chmurze maszyny wirtualne (VM) stały się bardzo powszechne, podczas gdy wykorzystanie maszyn fizycznych zaczęło stopniowo spadać. W tym poście przedstawimy narzędzia ‘vnStat’ i ‘iftop’, których możemy użyć do monitorowania zużycia danych w maszynie wirtualnej.
Najpierw tworzę maszynę z następującymi zasobami:
20 GHz CPU
16 GB RAM
20 GB SSD
Montuję dysk z obrazem Ubuntu 18.04, który jest dostępny w CloudSigma’s bibliotece.
Ubuntu 18.04 : Preinstalowany system 64-bitowy ze sterownikami VirtIO, superużytkownikiem, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init i najnowszymi aktualizacjami do 2018-09-30.
Następnie aktualizuję wszystkie istniejące repozytoria i pakiety na maszynie.
|
1 2 |
sudo apt update sudo apt upgrade |
Skoro nasz system jest już aktualny, przejdę do naszych narzędzi, ‘vnStat’ i ‘iftop’.
VNSTAT
Według humdi, vnStat to konsolowy monitor ruchu sieciowego dla systemów Linux i BSD, który prowadzi dziennik ruchu sieciowego dla wybranych interfejsów. Jako źródło informacji wykorzystuje statystyki interfejsu sieciowego dostarczane przez jądro systemu. Oznacza to, że vnStat nie będzie faktycznie podsłuchiwać ruchu, co zapewnia również niskie zużycie zasobów systemowych.
Niektóre z funkcji vnStat to:
- Nawet po restarcie systemu dane są zachowywane.
- Może monitorować wiele interfejsów jednocześnie.
- Dostępnych jest kilka opcji wyjściowych, na przykład w ujęciu dziennym, tygodniowym itp.
- Zasady przechowywania danych mogą być konfigurowane przez użytkownika.
- Miesiące można skonfigurować zgodnie z cyklem rozliczeniowym.
- Samo narzędzie jest bardzo lekkie, a zużycie zasobów jest minimalne.
- Zużycie procesora będzie takie samo bez względu na natężenie ruchu.
Instalacja
Użyj następującego polecenia, aby zainstalować vnStat:
|
1 |
sudo apt install vnstat |
Powinien automatycznie wykryć interfejs sieciowy. W przypadku, gdyby tak się nie stało, mogę sprawdzić interfejs za pomocą polecenia:
|
1 |
ip addr |
W moim przypadku widzę dwa interfejsy:
|
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 |
Mogę zignorować interfejs loopback. Interfejs, który chcę monitorować, to ‘ens3’. Mogę go zaktualizować w vnStat za pomocą polecenia:
|
1 |
sudo vnstat -u -i ens3 |
Instrukcja użytkowania
Instrukcję użytkowania można wyświetlić za pomocą polecenia: vnStat –help
Sposób użycia zostanie opisany w następujący sposób:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 autorstwa Teemu Toivola <tst at iki dot fi> -q, --query odpytaj bazę danych -h, --hours pokaż godziny -d, --days pokaż dni -m, --months pokaż miesiące -w, --weeks pokaż tygodnie -t, --top10 pokaż najlepszych 10 dni -s, --short użyj krótkiego wyjścia -u, --update aktualizuj bazę danych -i, --iface wybierz interfejs (domyślnie: ens3) -?, --help krótka pomoc -v, --version pokaż wersję -tr, --traffic oblicz ruch -ru, --rateunit zmień skonfigurowaną jednostkę prędkości -l, --live pokaż prędkość transferu w czasie rzeczywistym Zobacz także "--longhelp" dla pełnej listy opcji oraz "man vnstat". |
Za pomocą tych poleceń możemy uzyskać metryki zużycia danych.
Aby ułatwić i uczynić monitorowanie bardziej intuicyjnym, możemy zainstalować panel vnStat. Poniżej przedstawiono kroki instalacji panelu:
Zainstaluj następujące wymagane zależności:
|
1 |
sudo apt install apache2 php wget unzip -y |
Po zainstalowaniu wymaganych zależności pobierzemy panel z repozytorium GitHub, rozpakujemy go i umieścimy w katalogu naszego serwera WWW.
|
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/ |
Następnie musimy edytować konfigurację.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Poniższe linie będą wymagały zmiany. Wymagane zmiany zaznaczam pogrubioną czcionką.
|
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> = "Interfejs testowy"; } |
Mogę nazwać interfejs, aby ułatwić jego monitorowanie. Można mieć wiele interfejsów do monitorowania. Możemy je tutaj dodać.
Po wprowadzeniu zmian otwórz <<IP-ADDRESS>>/vnstat
Teraz mogę zobaczyć dane w elegancki sposób.


IFTOP
iftop nasłuchuje ruchu sieciowego na nazwanym interfejsie lub na pierwszym znalezionym interfejsie, który wygląda na zewnętrzny, jeśli żaden nie został określony. Wyświetla tabelę bieżącego zużycia przepustowości przez pary hostów. Musimy uruchomić iftop z odpowiednimi uprawnieniami, aby monitorować cały ruch sieciowy na interfejsie.
Instalacja
Możemy zainstalować Iftop za pomocą następującego polecenia:
|
1 |
sudo apt install iftop |
Instrukcja użycia
Instrukcję użycia można wyświetlić za pomocą polecenia: iftop -h
Użycie zostanie opisane w następujący sposób:
|
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: wyświetla zużycie przepustowości na an interfejsie według hosta Składnia: iftop -h | [-npblNBP] [-i interfejs] [-f kod filtra] [-F sieć/maska] [-G sieć6/maska6] -h wyświetla tę wiadomość -n nie rozwiązuje nazw hostów -N nie konwertuje numerów portów na usługi services -p uruchom w trybie mieszanym (pokaż ruch między innymi hostami w tym samym segmencie sieci) -b nie 'wyświetlaj wykresu słupkowego ruchugraph of traffic -B Wyświetlaj przepustowość w bajtach -i interface nasłuchuj na określonym interfejsie -f filter code użyj kodu filtra do wyboru pakietów do zliczenia (domyślnie: brak, ale tylko pakiety IP są zliczane) -F net/mask pokaż przepływy ruchu wchodzące /i wychodzące z sieci IPv4network -G net6/mask6 pokaż przepływy ruchu wchodzące /i wychodzące z sieci IPv6network -l wyświetlaj i zliczaj lokalny -ruch IPv6 łącza (domyślnie: wyłączone) -P pokaż porty oraz hostyas hosts -m limit ustawia górny limit skali przepustowości the bandwidth scale -c config file określa alternatywny plik konfiguracyjnyfile -t użyj interfejsu tekstowego bez ncurses Kolejność sortowania: -o 2s Sortuj według pierwszej kolumny (średniego ruchu z 2s) -o 10s Sortuj według drugiej kolumny (średniego ruchu z 10s) [domyślnie] -o 40s Sortuj według trzeciej kolumny (średniego ruchu z 40s) -o source Sortuj według adresu źródłowego -o destination Sortuj według adresu docelowego Następujące opcje są dostępne tylko w połączeniu z t -t -s num wyświetl pojedynczy wynik tekstowy po num sekundach, a , następnie zakończ -L num liczba wierszy do wyświetlenia print iftop, wersja 1.0pre4 prawa autorskie (c) 2002 Paul Warren <pdw@ex-parrot.com> i współtwórcy |
Do działania wymagane są uprawnienia roota. Używam po prostu sudo, ponieważ mój użytkownik cloudsigma należy do grupy sudoers. Mogę również użyć polecenia ‘sudo su’, a następnie uruchomić wszystkie polecenia jako użytkownik root.
Poniższe polecenie wyświetli wszystkie połączenia na interfejsie ‘ens3’ oraz transakcje danych:
|
1 2 |
sudo su iftop |
Prostszy sposób, jeśli wymagane jest przechwytywanie ruchu danych przez określony czas:
|
1 |
iftop -t -s 30 |
Powyższe polecenie podsumuje transakcje ruchu danych z najbliższych 30 sekund, a po upływie tego czasu wyświetli tabelę zawierającą całe zużycie danych i prędkości transferu.
Chociaż iftop podaje prędkości transferu na żywo, nie przechowuje danych ani nie posiada panelu do intuicyjnej wizualizacji i analizy wzorców. Dlatego jeśli chcemy widzieć prędkości transferu danych na żywo, zalecamy iftop. Do monitorowania ruchu danych w dłuższym okresie zalecamy vnStat.
Mamy nadzieję, że wykorzystasz ten przewodnik z korzyścią dla siebie i zastosujesz podstawy korzystania z vnStat oraz iftop do monitorowania zużycia danych wewnątrz VM.
Komentarze
Brak komentarzy. Bądź pierwszy.