Kako pratiti Ubuntu performanse koristeći Netdata


Netdata je besplatan alat otvorenog koda za praćenje i rješavanje problema u realnom vremenu za servere u oblaku, kontejnere, aplikacije i lokalnu IT infrastrukturu. Pruža visoko granularne sistemske metrike u realnom vremenu, kao što su performanse CPU-a, iskorišćenost RAM-a i diska, i statistika propusnog opsega, da spomenemo neke.

Osim toga, Netdata također pruža interaktivne metričke vizualizacije kojima se može pristupiti na web pretraživaču zajedno sa inteligentnim alarmima koji pomažu u rješavanju grešaka u sistemu.

Netdata-ina vrhunska tehnologija i popularnost zaslužili su joj mjesto u Forbesovoj ljestvici 100 zvijezda u usponu 2020. godine, što nije podvig. Zapravo, u vrijeme pisanja ovog vodiča, dobio je skoro 50.000 Github zvjezdica.

Postoje dva načina na koje možete instalirati Netdata. Možete odmah pokrenuti automatiziranu skriptu na BASH ljusci. Ovo ažurira vaše sisteme i pokreće instalaciju Netdata, Alternativno, možete klonirati Netdata Git spremište i nakon toga izvršiti automatiziranu skriptu. Prva metoda je jednostavna i jasna i na nju ćemo se fokusirati u ovom vodiču.

U ovom članku ćemo vidjeti kako možete instalirati Netdata na Ubuntu za praćenje u realnom vremenu, performanse i praćenje stanja servera i aplikacija.

Podržane platforme

Netdata podržava sljedeće Ubuntu LTS distribucije:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Kako instalirati Netdata u Ubuntu Linux

Da biste započeli instalaciju, pokrenite naredbu ispod na vašem bash terminalu da preuzmete i izvršite skriptu.

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

Tokom izvršavanja skripte dešava se sljedeće:

  • Skripta automatski otkriva vašu Linux distribuciju, ažurira listu paketa i instalira sve potrebne softverske pakete.
  • Najnovije stablo izvora netdata se preuzima na /usr/src/netdata.git stazu.
  • Skripta instalira netdata pokretanjem skripte ./netdata-installer.sh iz izvornog stabla.
  • Ažurira se cron.daily kako bi se osiguralo da se netdata ažuriraju na dnevnoj bazi.

Dok se skripta pokrene, dobit ćete savjete o tome kako pristupiti Netdata u pretraživaču i kako upravljati njima kao systemd uslugom.

Instalacija traje malo, pa dajte oko 10 minuta i vratite se. Konačno, dobit ćete donji izlaz dok skripta završi instalaciju.

Jednom instaliran, pokrenite, omogućite i provjerite status Netdata kao što je prikazano.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

Prema zadanim postavkama, Netdata sluša na portu 19999 i to se može potvrditi korištenjem naredbe netstat kao što je prikazano.

sudo netstat -pnltu | grep netdata

Ako imate pokrenut UFW, potrudite se da otvorite port 19999 jer će to biti potrebno prilikom pristupa Netdata u pretraživaču.

sudo ufw allow 19999/tcp
sudo ufw reload

Konačno, da pristupite Netdata, prebacite se na svoj pretraživač i pregledajte sljedeći URL

http://server-ip:19999/

Ovo je ono što vas pozdravlja kada pregledate URL. U stvari, shvatit ćete da se od vas neće tražiti da se prijavite. Svi sistemski metrički podaci će biti prikazani kao što je prikazano.

Možete listati različite grafikone klikom na željenu metriku na desnoj bočnoj traci kontrolne table. Na primjer, da provjerite statistiku mrežnog sučelja, kliknite na opciju 'Mrežna sučelja'.

Osiguravanje Netdata sa osnovnom autentifikacijom na Ubuntu

Do ove tačke, svako može pristupiti Netdata kontrolnoj tabli i zaviriti u različite sistemske metrike. Ovo predstavlja kršenje sigurnosti i mi to definitivno želimo izbjeći.

Imajući ovo na umu, konfigurisaćemo osnovnu HTTP autentifikaciju. Moramo da instaliramo paket apache2-utils koji obezbeđuje program htpasswd koji će se koristiti za konfigurisanje korisničkog imena i lozinke korisnika. Dodatno, mi ćemo instalirati Nginx web server koji će djelovati kao obrnuti proxy.

Da biste instalirali Nginx web server i paket apache2-utils, izvršite naredbu.


sudo apt install nginx apache2-utils

Sa instaliranim Nginxom i apache2-utils, kreiraćemo konfiguracioni fajl unutar /etc/nginx/conf.d direktorijuma. Međutim, slobodno koristite sites-available direktorij ako koristite Nginx u druge svrhe osim Netdata.


sudo vim /etc/nginx/conf.d/default.conf

Unutar konfiguracijskog fajla, prvo ćemo uputiti Nginx da proxy dolazne zahtjeve za Netdata kontrolnu tablu. Nakon toga ćemo dodati neki osnovni prompt za autentifikaciju koji samo ovlaštenim korisnicima odobrava pristup kontrolnoj tabli Netdata koristeći autentifikaciju korisničkog imena/lozinke.

Evo cijele konfiguracije. Vodite računa da zamijenite direktive server_ip i example.com s vlastitom IP adresom servera i imenom servera.


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

Hajde da razumemo konfiguraciju, deo po deo.

Odjeljak 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

Naveli smo upstream modul pod nazivom netdata-backend koji referencira Netdata ugrađeni web server koristeći loopback adresu 127.0.0.1< i port 19999 koji je podrazumevani port koji Netdata sluša. Direktiva keepalive definira maksimalan broj neaktivnih veza koje mogu ostati otvorene.

Odjeljak 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Ovo je glavni Nginx odjeljak za blokiranje servera. Prvi red specificira eksternu IP adresu koju bi Nginx trebao slušati kada klijenti šalju svoje zahtjeve. Direktiva server_name specificira ime domene servera i nalaže Nginx-u da pokrene serverski blok kada klijenti pozovu ime domene umjesto vanjske IP adrese.

Zadnja dva reda označavaju jednostavnu HTTP autentifikaciju koja zahtijeva od korisnika da se prijavi koristeći korisničko ime i lozinku. Modul auth_basic pokreće iskačući prozor korisničkog imena/lozinke u pretraživaču s natpisom “Potrebna je autentifikacija” u naslovu koji se kasnije može prilagoditi vašim željama.

Modul auth_basic_user_file ukazuje na naziv datoteke koji će sadržavati korisničko ime i lozinku korisnika ovlaštenog za pristup kontrolnoj tabli Netdata – u ovom slučaju netdata-access. Kasnije ćemo kreirati ovu datoteku.

Odjeljak 3:

Posljednji odjeljak je blok lokacija koji se nalazi u bloku servera. Ovo obrađuje proxy i prosljeđivanje dolaznih zahtjeva na Nginx web server.


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

Za autentifikaciju ćemo kreirati korisničko ime i lozinku za korisnika pod nazivom tecmint koristeći uslužni program htpasswd i pohraniti vjerodajnice unutar datoteke netdata-access .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

Unesite lozinku i potvrdite je.

Zatim ponovo pokrenite Nginx web server kako bi promjene stupile na snagu.


sudo systemctl restart nginx

Da biste testirali da li je konfiguracija prošla ispravno, nastavite i pregledajte IP adresu vašeg servera


http://server-ip

Pojavit će se iskačući prozor za autentifikaciju kao što je prikazano ispod. Unesite svoje korisničko ime i lozinku i pritisnite ENTER.

Nakon toga, dobićete pristup Netdata kontrolnoj tabli.

Ovo nas dovodi do kraja naše današnje teme. Upravo ste naučili kako instalirati Netdata alat za praćenje i konfiguraciju osnovne HTTP autentikacije na Ubuntu. Slobodno pogledajte druge grafikone o različitim sistemskim metrikama.