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.
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/
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ł 🙂.
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):
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 :).
Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
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
Fajny artykuł, soft fajnie działa. Dzięki za wpis :)
Dzięki! W końcu działa jak trzeba. Super poradnik :)