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

Słuchanie stacji radiowych DAB+ w Linuksie

Radio nieodłącznie kojarzy się z nieśmiertelnym FM lub transmisją intermetową. Standard DAB+ wydaje się być…

2 tygodnie temu

Tani odpowiednik baterii 9V 6F22

Poniżej opiszę odpowiednik drogiej (w stosunku do pojemności) baterii 9V o oznaczeniu 6F22. Ze względu…

4 tygodnie temu

Drogowa / budowlana lampa ostrzegawcza – budowa i działanie

Widząc migającą na pomarańczowo lampę ostrzegawczą, zastanawiałem się (ciekawe czy tylko ja) jak jest zbudowana,…

1 miesiąc temu

ConsolePi – genialny serwer szeregowej konsoli

W tym wpisie przedstawię bardzo ciekawe narzędzie na RaspberryPi, przydatne każdemu administratorowi urządzeń sieciowych. W…

2 miesiące temu

Adapter USB-HDMI Grabber Video

Poniżej opiszę mały, przydatny gadżet, który przechwytuje obraz i dźwięk z portu HDMI i przekazuje…

2 miesiące temu

Przejściówka USB-RS232 PL2303HXA PHASED OUT SINCE 2012

Tytuł tego wpisu zawiera część komunikatu z menedżera urządzeń systemu Windows 11, po wsadzeniu w…

2 miesiące temu