Tento článek je součástí naší série článků o průběžném sledování výkonu.
V tomto článku se zaměříme na to, jak monitorovat síťový provoz a protokolovat jej pro pozdější analýzu pomocí nástroje vnstat.
vnstat je nástroj příkazového řádku, který zobrazuje a zaznamenává síťový provoz rozhraní ve vašich systémech. To závisí na statistikách sítě poskytovaných jádrem. Vnstat tedy nepřidává žádné další zatížení vašeho systému pro monitorování a protokolování síťového provozu.
1. Nainstalujte vnStat
Nainstalujte vnStat do svého systému z úložiště, které je specifické pro vaše distribuce Linuxu.
Například na Ubuntu použijte apt-get k instalaci, jak je uvedeno níže.
$ apt-get install vnstat
Pokud jej chcete nainstalovat ze zdroje, stáhněte si zdroj vnStat odtud nebo použijte wget, jak je uvedeno níže, ke stažení a instalaci.
Vezměte prosím na vědomí, že k analýze síťového provozu můžete také použít Mergecap a Tshark.
wget http://humdi.net/vnstat/vnstat-1.11.tar.gz cd vnstat-1.11 make make install
Vezměte prosím na vědomí, že nemusíte provádět „./configure“, jak to obvykle děláte u jiných instalací založených na zdroji.
Protože vnstat závisí na informacích poskytovaných jádrem, spusťte následující příkaz a ověřte, zda jádro poskytuje všechny informace, které vnStat očekává.
# vnstat --testkernel This test will take about 60 seconds. Everything is ok.
2. Vyberte rozhraní pro sledování pomocí vnStat
vnStat nemonitoruje žádná rozhraní, pokud o to výslovně nepožádáte.
Chcete-li zahájit monitorování eth0, proveďte následující. Toto je potřeba provést pouze jednou. Jak vidíte níže, vytvoří se tím databázový soubor eth0 v adresáři /var/lib/vnstat, který bude obsahovat všechny zprávy protokolu síťového provozu pro toto specifické rozhraní.
# vnstat -u -i eth0 Error: Unable to read database "/var/lib/vnstat/eth0". Info: -> A new database has been created.
Chcete-li zobrazit všechna dostupná rozhraní ve vašem systému, která může vnStat monitorovat, proveďte následující.
# vnstat --iflist Available interfaces: lo eth0 eth1 sit0
Spusťte vnstatd (démon vnstat), který bude tyto informace sledovat a zaznamenávat na pozadí.
# vnstatd -d # ps -ef | grep vnst root 14353 1 0 09:12 ? 00:00:00 vnstatd -d root 14355 330 0 09:12 pts/1 00:00:00 grep vnst
Poznámka:Do souboru /etc/rc.local můžete přidat „vnstatd -d“, aby se automaticky spustil při každém restartu systému.
3. Základní použití vnStat
vnstat bez jakéhokoli argumentu vám poskytne rychlé shrnutí s následujícími informacemi:
- Naposledy byla aktualizována databáze vnStat umístěná pod /var/lib/vnstat/
- Od okamžiku, kdy začal shromažďovat statistiky pro konkrétní rozhraní
- Statistická data sítě (vyslané bajty, přijaté bajty) za poslední dva měsíce a poslední dva dny.
# vnstat Database updated: Sat Oct 15 11:54:00 2011 eth0 since 10/01/11 rx: 12.89 MiB tx: 6.94 MiB total: 19.82 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.89 MiB | 6.94 MiB | 19.82 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s today 2.03 MiB | 1.07 MiB | 3.10 MiB | 0.59 kbit/s ------------------------+-------------+-------------+--------------- estimated 4 MiB | 2 MiB | 6 MiB |
Poznámka:Pokud jste právě nainstalovali vnStat, zobrazí se následující zpráva „eth0:Zatím není k dispozici dostatek dat.“. Počkejte chvíli a zkuste příkaz znovu.
4. vnStat hodiny, dny, měsíce, týdny Data sítě
Použijte „vnstat -h“ (nebo) „vnstat –hodiny“ pro rozdělení statistických dat sítě podle hodin. Zobrazí se také textový graf.
Použijte „vnstat -d“ (nebo) „vnstat –dny“ pro rozdělení statistických dat sítě podle dnů.
# vnstat -d eth0 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 10/13/11 2.06 MiB | 1.10 MiB | 3.16 MiB | 0.60 kbit/s ------------------------+-------------+-------------+--------------- estimated 3 MiB | 1 MiB | 4 MiB |
Použijte „vnstat -m“ (nebo) „vnstat –měsíce“ pro rozdělení statistických dat sítě podle měsíců.
# vnstat --m eth0 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.92 MiB | 6.96 MiB | 19.89 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB |
Podobně jako u dnů a měsíců použijte „vnstat -m“ (nebo) „vnstat –měsíce“ pro rozdělení statistických dat sítě podle týdnů.
5. Exportujte data do Excelu nebo jiné DB
Pokud chcete exportovat data monitorování sítě do excelové nebo jiné databáze, můžete data vypsat v textovém formátu odděleném středníkem, který můžete importovat do Excelu nebo jiné databáze.
Prvních několik řádků výstupu –dumpdb obsahuje nějaké informace v záhlaví. Po řádcích záhlaví má 30 řádků začínajících na „d;“ (d;0;1318316406;1;0;386;698;1). Tento řádek obsahuje následující informace oddělené středníkem.
- d – znamená dny
- 0 – číslo dne. 0 označuje dnešek.
- 1318316406 – data ve formátu Unix
- Poté obsahuje odeslané a přijaté bajty
$ vnstat --dumpdb interface;eth0 created;1218562937 updated;1218546895 totalrx;3 totaltx;1 ... ... d;0;1328316406;1;0;386;698;1 d;1;1345262937;2;1;494;289;1
Můžete také použít „vnstat –oneline“, který zobrazí souhrn provozu na jednom řádku, kde jsou hodnoty odděleny středníkem.
$ vnstat --oneline 1;eth0;10/11/11;1.45 MiB;801 KiB;2.23 MiB;0.59 kbit/s;Oct '11;3.93 MiB;2.06 MiB;6.00 MiB;0.05 kbit/s;3.93 MiB;2.06 MiB;6.00 MiB
6. Zobrazit živé statistiky sítě
Použijte „vnstat -l“ nebo „vnstat –live“ k zobrazení aktuálních síťových statistických informací.
$ vnstat -l Monitoring eth0... (press CTRL-C to stop) rx: 2 kbit/s 5 p/s tx: 2 kbit/s 4 p/s
Poté, co jej zastavíte stisknutím Ctrl-C, vnstat zobrazí souhrn za časové období, kdy byl spuštěn živý monitor.
7. Změňte výchozí výstupní formát vnstat
Použijte „vnstat -s“ nebo „vnstat –short“, které zobrazí krátké shrnutí statistik sítě. To zahrnuje statistiky za dnešek, včerejšek a aktuální měsíc.
$ vnstat -s (--short) rx / tx / total / estimated eth0: Oct '11 3.93 MiB / 2.06 MiB / 6.00 MiB / 13.00 MiB yesterday 2.48 MiB / 1.28 MiB / 3.76 MiB today 1.45 MiB / 801 KiB / 2.23 MiB / --
Můžete také použít „vnstat –style 0“, který poskytne výstup úzkého sloupce, který je snáze čitelný než výchozí výstup širšího sloupce.
$ vnstat --style 0
Níže je uveden počet dostupných stylů:
- 0 – úzký výstup
- 1 – Povolit sloupec sloupců
- 2 – Povolí sloupec a zobrazí průměrnou míru provozu v souhrnu
- 3 – Zobrazení průměrné rychlosti provozu ve všech výstupech
- 4 – v kombinaci s živým režimem (vnstat -l) deaktivujte ovládací znaky terminálu
8. Zobrazit 10 dní s nejvyšší návštěvností
Pomocí „vnstat -t“ nebo „vnstat –top10“ zobrazíte všech 10 dní s nejvyšší návštěvností.
$ vnstat --top10 eth0 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- 1 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 2 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 3 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s .... -----------------------------+-------------+-------------+---------------
Předchozí články ze série sledování a ladění výkonu Linuxu:
- Úvod do monitorování a ladění výkonu systému Linux
- 15 praktických příkladů hlavních příkazů Linuxu
- 7 praktických příkladů příkazů PS pro monitorování procesu
- 10 užitečných příkladů Sar (Sysstat) pro monitorování výkonu UNIX / Linux
- 10 příkladů iozone pro měření výkonu disku I/O v systému Linux
- 24 příkladů iostat, vmstat a mpstat pro monitorování výkonu systému Linux