V éře cloud computingu se virtuální stroje (VM) staly velmi běžnými, zatímco používání fyzických strojů začalo postupně klesat. V tomto příspěvku si představíme nástroje ‘vnStat’ and ‘iftop’, které můžeme použít ke sledování spotřeby dat ve virtuálním stroji.
Nejprve vytvořím stroj s následujícími prostředky:
20 GHz CPU
16 GB RAM
20 GB SSD
Připojuji disk s obrazem Ubuntu 18.04, který je k dispozici v knihovně CloudSigma’s.
Ubuntu 18.04: Předinstalovaný 64bitový systém s ovladači VirtIO, superuživatelem, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init a nejnovějšími aktualizacemi do 2018-09-30.
Dále aktualizuji všechny existující repozitáře a balíčky v systému.
|
1 2 |
sudo apt update sudo apt upgrade |
Nyní, když je náš systém aktuální, přejdu k našim nástrojům, ‘vnStat’ a ‘iftop’.
VNSTAT
Podle humdi, vnStat je konzolový monitor síťového provozu pro Linux a BSD, který uchovává záznamy o síťovém provozu pro vybraná rozhraní. Jako zdroj informací využívá statistiky síťového rozhraní poskytované jádrem. To znamená, že vnStat nebude skutečně odposlouchávat žádný provoz a také to zajišťuje nízké využití systémových prostředků.
Některé z funkcí vnStat jsou:
- I když se systém restartuje, data stále zůstávají zachována.
- Může sledovat více rozhraní současně.
- K dispozici je několik možností výstupu, například podle dní, týdnů atd.
- Zásady uchovávání dat může nakonfigurovat uživatel.
- Měsíce lze nakonfigurovat podle fakturačního cyklu.
- Samotný nástroj je velmi lehký a využití prostředků je minimální.
- Využití procesoru bude stejné bez ohledu na provoz.
Instalace
Pro instalaci vnStat použijte následující příkaz:
|
1 |
sudo apt install vnstat |
Měl by automaticky detekovat síťové rozhraní. V případě, že se tak nestane, mohu rozhraní zkontrolovat příkazem:
|
1 |
ip addr |
V mém případě vidím dvě rozhraní:
|
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 |
Rozhraní loopback mohu ignorovat. Rozhraní, které chci sledovat, je ‘ens3’. To mohu ve vnStat aktualizovat pomocí příkazu:
|
1 |
sudo vnstat -u -i ens3 |
Usage Guide
Návod k použití lze zobrazit pomocí příkazu: vnStat –help
Použití bude popsáno takto:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 od Teemu Toivola <tst at iki dot fi> -q, --query dotazovat databázi -h, --hours zobrazit hodiny -d, --days zobrazit dny -m, --months zobrazit měsíce -w, --weeks zobrazit týdny -t, --top10 zobrazit top 10 dní -s, --short použít krátký výstup -u, --update aktualizovat databázi -i, --iface vybrat rozhraní (výchozí: ens3) -?, --help krátká nápověda -v, --version zobrazit verzi -tr, --traffic spočítat provoz -ru, --rateunit přepnout nastavenou jednotku rychlosti -l, --live zobrazit přenosovou rychlost v reálném čase Viz také "--longhelp" pro úplný seznam možností a "man vnstat". |
Pomocí těchto příkazů můžeme získat metriky využití dat.
Pro snadné a intuitivní sledování můžeme nainstalovat dashboard vnStat. Níže jsou uvedeny kroky k instalaci dashboardu:
Nainstalujte následující požadované závislosti:
|
1 |
sudo apt install apache2 php wget unzip -y |
Po instalaci požadovaných závislostí stáhneme dashboard z repozitáře GitHub, rozbalíme jej a umístíme do adresáře našeho webového serveru.
|
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/ |
Dále musíme upravit konfiguraci.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Následující řádky bude nutné změnit. Požadované změny označuji tučně.
|
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> = "Testovací rozhraní"; } |
Rozhraní mohu pojmenovat, aby se snáze monitorovalo. Monitorovat lze i více rozhraní. Ta sem můžeme přidat.
Po provedení změn otevřete <<IP-ADDRESS>>/vnstat
Nyní vidím data elegantním způsobem.


IFTOP
iftop naslouchá síťovému provozu na pojmenovaném rozhraní, nebo na prvním rozhraní, které najde a které vypadá jako externí rozhraní, pokud není žádné specifikováno. Zobrazuje tabulku aktuálního využití šířky pásma dvojicemi hostitelů. iftop musíme spustit s dostatečnými oprávněními, abychom mohli monitorovat veškerý síťový provoz na daném rozhraní.
Instalace
Iftop můžeme nainstalovat pomocí následujícího příkazu:
|
1 |
sudo apt install iftop |
Návod k použití
Návod k použití lze zobrazit pomocí příkazu: iftop -h
Použití bude popsáno takto:
|
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: zobrazit využití šířky pásma na daném rozhraní podle hostitele Přehled: iftop -h | [-npblNBP] [-i rozhraní] [-f kód filtru] [-F síť/maska] [-G síť6/maska6] -h zobrazit tuto zprávu -n neprovádět vyhledávání názvů hostitelů -N nepřevádět convert čísla portů na služby -p spustit v promiskuitním režimu (zobrazit provoz mezi ostatními hostiteli na the stejném síťovém segmentu) -b ne't zobrazovat a sloupcový graf of provozu -B Zobrazit šířku pásma v bajtech -i rozhraní naslouchat na pojmenovaném rozhraní -f filtrovat kód použít filtrační kód k výběru paketů k počítání (výchozí: žádný, ale pouze IP pakety jsou počítány) -F síť/maska zobrazit toky provozu dovnitř /a ven z IPv4 sítě -G net6/mask6 zobrazit toky provozu dovnitř /a ven z IPv6 sítě -l zobrazit a počítat link-local -local IPv6 provoz (výchozí: vypnuto) -P zobrazit porty stejně jako as hostitele -m limit nastaví horní upper limit pro měřítko šířky pásma -c konfigurační soubor určuje alternativní alternative konfigurační soubor -t použít textové rozhraní bez ncurses Řazení pořadí: -o 2s Řadit podle prvního sloupce (2s průměrného provozu) -o 10s Řadit podle druhého sloupce (10s průměrného provozu) [výchozí] -o 40s Řadit podle třetího sloupce (40s průměrného provozu) -o zdroje Řadit podle zdrojové adresy -o cíle Řadit podle cílové adresy Následující volby jsou dostupné pouze v kombinaci s s -t -s num vytisknout jeden jediný textový výstup po num sekundách, a pak skončit -L num počet of řádků k vytištění iftop, verze 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> a přispěvatelé |
Ke spuštění jsou vyžadována oprávnění root. Jednoduše používám sudo, protože můj uživatel cloudsigma má oprávnění sudo. Mohu také použít příkaz ‘sudo su’ a poté spustit všechny příkazy jako uživatel root.
Následující příkaz mi zobrazí všechna připojení na rozhraní ‘ens3’ a datové transakce:
|
1 2 |
sudo su iftop |
Jednodušší způsob, pokud je požadavkem zachytit datový provoz po určitou dobu:
|
1 |
iftop -t -s 30 |
Výše uvedený příkaz shrne transakce datového provozu pro nadcházejících 30 sekund a po uplynutí této doby zobrazí tabulku se seznamem veškerého využití dat a přenosových rychlostí.
Ačkoli iftop poskytuje přenosové rychlosti v reálném čase, neukládá data ani nemá ovládací panel pro intuitivní vizualizaci a sledování vzorců. Pokud tedy chceme vidět přenosové rychlosti v reálném čase, doporučujeme iftop. Pro sledování datového provozu po delší dobu doporučujeme vnStat.
Doufáme, že tuto příručku využijete ve svůj prospěch a uplatníte základy toho, jak používat vnStat a iftop k monitorování spotřeby dat v rámci VM.
Komentáře
Zatím žádné komentáře. Buďte první.