Każdy kto korzysta z serwerów z systemem Linux ze środowiskiem jedynie konsolowym z pewnością nie jeden raz zastanawiał się, jak można w prosty sposób zmierzyć aktualnie wysycenie łącza. Ma to szczególne znaczenie na przykład przy dostarczaniu treści typu video na żądanie lub strumieniowania, albo serwer gier, które wymagają sporego pasma. Wtedy jak najbardziej istotną jest informacja ile jeszcze można zmieścić odbiorców, ile jeszcze pomieści łącze naszego serwera. 

Istnieją oczywiście kompleksowe narzędzia do monitorowania pracy serwera, takie jak Zabbix, Nagios, ale nie zawsze możemy lub chcemy mieć zainstalowany kombajn. Czasami chcemy sprawdzić adhoc aktualne wykorzystanie łącza na naszym serwerze. 

Jeżeli mamy serwer wirtualny w chmurze to dostawca tego typu usługi zwykle udostępnia aktualne wykorzystanie serwera za pomocą prostych wykresów, ale nie zawsze tak jest. 

Widok serwera w Hetznerze z wykorzystaniem łącza

Widok instancji EC2 w AWS

Na szczęście istnieje wiele bardzo przydatnych niewielkich narzędzi, które przychodzą nam z pomocą w tego typu sytuacjach. W tej części omówię te najbardziej przydatne, niewielkie aplikacje, dzięki którym możemy w bardzo szybki i prosty sposób otrzymać na konsoli informację o aktualnym wykorzystaniu serwerowego łącza.

Niezbędne będzie posiadanie:

  • dostępu root lub konta z sudo
  • managera pakietów
  • dostępu terminalowego do serwera
  • poprawnie zapiętych repozytoriów systemu

Jeśli mamy system CentOS to konieczne będzie dociągnięcie repozytorium epel, aby narzędzia mogły zostać zainstalowane. Nie wszystkie są w głównym repozytorium.

Instalacja repozytorium epel w systemie CentOS jest banalnie prosta:

yum install epel-release

Zakładam, że to drobnostki bo każdy szanujący się admin ma do tego wszystkiego dostęp na serwerze, ale mimo wszystko nie zawsze jest to jasne.

Na szczęście istnieje wiele bardzo przydatnych niewielkich narzędzi, które przychodzą nam z pomocą w tego typu sytuacjach. W tej części omówię te najbardziej przydatne, niewielkie aplikacje, dzięki którym możemy w bardzo szybki i prosty sposób otrzymać na konsoli informację o aktualnym wykorzystaniu serwerowego łącza.

Niezbędne będzie posiadanie:

  • dostępu root lub konta z sudo
  • managera pakietów
  • dostępu terminalowego do serwera
  • poprawnie zapiętych repozytoriów systemu

Jeśli mamy system CentOS to konieczne będzie dociągnięcie repozytorium epel, aby narzędzia mogły zostać zainstalowane. Nie wszystkie są w głównym repozytorium.

Instalacja repozytorium epel w systemie CentOS jest banalnie prosta:

yum install epel-release

Zakładam, że to drobnostki bo każdy szanujący się admin ma do tego wszystkiego dostęp na serwerze, ale mimo wszystko nie zawsze jest to jasne.

nload

Proste narzędzie konsolowe do pomiarów aktualnego wykorzystania łącza w czasie rzeczywistym. Co wyróżnia nload to to, że wyświetla także kilka innych dodatkowych informacji jak ttl, średnie wykorzystanie, maksymalne wykorzystanie i minimalne. Oczywiście wyświetla też aktualne wykorzystanie łącza w atrakcyjnej formie konsolowej, o ile tak to można ująć.

CentOS:

yum install nload

Debian:

apt-get install nload

Jak korzystać z aplikacji?

nload

Jeśli chcemy wskazać konkretny interfejs sieciowy do pomiarów wykorzystajmy dodatkową zmienną:

nload eth0

iftop

Iftop to kolejne narzędzie konsolowe do badania aktualnego wykorzystania łącza. Jeśli znacie aplikację do podglądu aktualnie uruchomionych procesów “top” to z pewnością będziecie zadowoleni bowiem iftop jest podobny.

CentOS:

yum install iftop

Debian:

apt-get install iftop

iptraf

Kolejnym z narzędzi do monitorowania przepustowości sieci jest iptraf. To narzędzie w odróżnieniu od pozostałych jest kolorowe. Może być to zaleta, może być to wada, kwestia gustu. Iptraf bazuje na bibliotece ncurses i jest monitorem pakietów IP.

Za pomocą tego narzędzia możemy monitorować ruch tcp, udp, icmp.

CentOS:

yum install iptraf

Debian:

apt-get install iptraf

nethogs

Kolejne narzędzie, nieco mniej znane, ale również pomocne przy mierzeniu aktualnego wykorzystania sieci to nethogs. W odróżnieniu od innych narzędzi grupuje transfer ze względu na proces. Dzięki niemu możemy też konkretnie wskazać proces na serwerze, który generuje największe obciążenie.

CentOS:

yum install nethogs

Debian:

apt-get install nethogs

bmon

Narzędzie bierze swoją nazwę od Bandwidth Monitor – bmon. Jest to narzędzie podobne do wcześniej pokazanej aplikacji, jaką jest nload. Przedstawia ono aktualne wykorzystanie sieci na serwerze/systemie. Wyjściowo wyniki przypominają próbę konstrukcji wykresu na konsoli. Wygląda to całkiem poprawnie i jest użyteczne.

CentOS:

yum install bmon

Debian:

apt-get install bmon

slurm

Slurm jest kolejnym narzędziem do mierzenia aktualnego wykorzystania interfejsów sieciowych. Obsługuje 3 interfejsy do pokazywania/wyświetlania prędkości aktualnie wykorzystanego łącza.

CentOS:

yum install slurm

Debian:

apt-get install slurm

tcptrack

Narzędzie dla geeków. Pokazuje status połączeń TCP, które pracują na danym interfejsie sieciowym. Pokazuje informacje takie jak STATE, SOURCE, DESTINATION itd. Dodatkowo wyświetla prędkość transferu jaką generuje dany proces.

CentOS:

yum install tcptrack

Debian:

apt-get install tcptrack

vnstat

Kolejne narzędzie do pomiaru aktualnego wykorzystania łącza. Może pracować jako demon i logować informacje o wykorzystaniu łącza. Może być także uruchomiony w trybie rzeczywistym i pokazywać status łącza na bieżąco.

CentOS:

yum install vnstat

Debian:

apt-get install vnstat

bwm-ng

Bandwidth Monitor Next Generation to kolejne narzędzie tego typu. Pokazuje na bieżąco aktualne wykorzystanie łącza w systemie Linux. Jest to proste konsolowe narzędzie przedstawiające sumaryczny transfer aktualnie.

Narzędzie, choć proste, ma kilka ciekawych funkcji jak blacklistowanie i whitelistowanie interfejsów sieciowych, możliwość pokazywania prędkości KB/s, Kb/s, pakietów, błędów, średniej i sumy. Co ciekawe, może wygenerować .csv, html lub po prostu informację na konsoli.

CentOS:

yum install bwm-ng

Debian:

apt-get install bwm-ng

speedometer

Kolejnym z ciekawych narzędzi jest speedometer, który potrafi pokazywać to co inne narzędzia, ale w ciekawej, kolorowej jak na konsolę wersji. Przypomina to wykres graficzny. Dodatkowo, może on pokazywać historyczne obciążenie sieci. Jest to lekkie narzędzie napisane w języku Python.

CentOS:

yum install speedometer

Debian:

apt-get install speedometer

Podsumowanie

W systemie Linux istnieje wiele narzędzi, dzięki którym możemy w łatwy i prosty sposób mierzyć aktualne wykorzystanie sieci na poszczególnych interfejsach, procesach, a nawet analizować i gromadzić statystyki. Nie zawsze konieczne staje się wykorzystywanie paneli dostawców, większych narzędzi do graficznego monitorowania. Nawet jeśli je mamy, to te niewielkie aplikacje świetnie uzupełniają nasz serwer o możliwość szybkiego sprawdzenia adhoc wykorzystania pasma.