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 :).

Wojtek

Zobacz komentarze

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

  • 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

Ostatnie posty

Nieudana naprawa i udany przeszczep – Boombox Philips

Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…

14 godzin temu

Tani moduł IoT z kamerką ESP32 CAM – pierwsze uruchomienie

Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…

7 miesięcy temu

Aktualizacja oprogramowania w stacji lutowniczej AiXun T3A

Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…

8 miesięcy temu

Programator USB AVR ISP z Arduino Nano

Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…

8 miesięcy temu

Tester elementów elektronicznych na atmega – aktualizacja firmware’u

W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…

9 miesięcy temu

Wzmacniacz słuchawkowy Lovely Cube – popularny klon Lehmanna

Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…

9 miesięcy temu