Monitoring serwera na linuksie

W tym wpisie pokażę jak wdrożyłem pakiet NetData na maszynie z Ubuntu Server 18.04. Może “serwer na linuksie” brzmi jakoś poważnie, ale dzisiaj można to sprowadzić do Raspberry / Banana Pi czy podobnej płytki.

Co i po co monitorować?

Zawodowo od lat zajmuję się działką IT, także dla mnie monitoring kluczowych maszyn w infrastrukturze to podstawa, szczególnie dostępność i wydajność. Tak samo ważne są dane archiwalne, czyli co działo się np. 30 minut temu, jak i te pokazywane w czasie rzeczywistym. Ale nie samą pracą człowiek żyje, w domu też coś można pomonitorować :).

Od kilku miesięcy sam sobie hostuję strony internetowe. Mam wirtualną maszynę na Linux Ubuntu Server 18.04, gdzie zainstalowałem nginx, mariadb, php7 i kilka innych paczek pozwalających na sprawne, bezpieczne (mam nadzieję) i wydajne serwowanie treści w internecie. Rozwiązanie nie tyle miało na celu oszczędność pieniędzy (wystarczający, współdzielony hosting nie kosztuje fortuny), ale chciałem się uniezależnić od ograniczeń usługodawcy, choćby w zakresie certyfikatów ssl, czy konfiguracji od strony systemu operacyjnego.

Skoro więc mamy korzyści (jak i ciężary) z możliwości samodzielnego administrowania maszyną, warto ją monitorować i patrzeć co tam się dzieje. Prócz narzędzi, które zbierają dane przez snmp (np. observium, librenms, munin, cacti, nagios, zabbix) jest też fajny wizualnie i użyteczny NetData. Więcej informacji o tym narzędziu można znaleźć na stronie domowej w serwisie github. Jest też strona domowa https://my-netdata.io/

NetData na ubuntu server 18.04

Na wspomnianej wyżej stronie github można znaleźć szczegółowe informacje dotyczące “wdrożenia” narzędzia na serwerze. Jest kilka metod instalacji, jak wybrałem pierwszą rekomendowaną, czyli kompilację z najaktualniejszych źródeł. Możne znowu brzmi poważnie, ale sprowadza się do kilku prostych poleceń w konsoli, skrypty załatwią resztę. Trochę bałem się samej instalacji, bo NetData wyświetla dane na stronie www, a takie zabiegi na działającym serwerze www mogą zakończyć się problemami (konflikty serwerów www itp itd) więc na początek cyk i snapshot maszyny wirtualnej zrobiony (te plusy dodatnie wirtualizacji… :)). I w konsoli jako zwykły użytkowniki trzeba wklepać (przekleić) linijkę:

 bash <(curl -Ss https://my-netdata.io/kickstart.sh) 

Zostaniemy poproszeni o hasełko usera w celu podniesienia uprawnień i dalej skrypt sprawdza nasz system i będzie chciał zainstalować kilka paczek, których nie znalazł na maszynie, a są mu potrzebne:

Klepnięcie w Enter i jedziemy dalej:

Wystarczy znowu klepnięcie w Enter, a dalej automatycznie NetData zostanie zbudowana ze źródeł i zainstalowane we wskazanych ścieżkach:

Zainstalowane, skonfigurowane, działa, będzie Pan zadowolony :). I jakby nie patrzeć, skompilowaliśmy sobie narzędzie ze źródeł 🙂.

NetData w akcji

Zgodnie z komunikatem, wklepałem sobie w przeglądarkę adres serwera i po dwukropku port 19999 i… nic, Chrome mieli, mieli, mieli i:

Upsss, to wpisuje szybko grylewicz.pl działa, ufffff. Czyli chyba firewall, bo są takie jakby dobre praktyki, żeby otwierać tylko te porty, które są niezbędne, a tcp 19999 to ja na pewno nie otwierałem, co można sprawdzić poleceniem (w innych systemach może być trochę inaczej):

sudo ufw status

Otwieram więc port:

sudo ufw allow 19999/tcp

i znowu w przeglądarkę wklepałem adres serwera i port 19999

http://adres_ip:19999

I jest!

Pasek przewijania jest bardzo długi, za pomocą NetData możemy wizualnie obserwować wiele parametrów, np. obciążenie procesora czy zajętość pamięci RAM z podziałem na usługi, które te zasoby zużywają. Wykresy są interaktywne, można je powiększać, cofać się w czasie, wyłączać widoki itd. Najlepiej pokazać to na video (zachęcam do subskrypcji kanału):

Podsumowanie

NetData to dość znane w sieci narzędzie. Posiada kilkaset tysięcy instalacji, kod jest na bieżąco rozwijany. Sama prezentacja danych jest bardzo wygodna, możemy sobie zobaczyć, jak wydajność serwera wygląda w czasie, czy pamięć, procesor lub sieć idzie pod korek itd. Wszystko jest bardzo przejrzyste i miłe dla oka. Trzeba tylko pamiętać, że NetData też obciąża system :), tragedii nie ma, u mnie CPU na poziomie 3% i RAM około 100MB (przy otwartej przeglądarce z wykresami). Polecam, nie tylko do zabawy :).

Możesz również polubić…

4 komentarze

  1. SpeX pisze:

    NetData monitoruje jedynie maszynę hosta, czy może też zbierać dane z innych urządzeń?

  2. Wojtek pisze:

    Dobre pytanie, nie wczytywałem się, czy jest taka możliwość. Z drugiej strony takie kolektory danych często składają się z dwóch modułów – agenta zbierającego dane i front end z ekspozycją danych. Na pewno odpowiedź znajdzie się w dokumentacji NetDaty

  3. grzes pisze:

    Fajny artykuł, soft fajnie działa. Dzięki za wpis 🙂

  4. Tomasz pisze:

    Dzięki! W końcu działa jak trzeba. Super poradnik 🙂

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.