Kako spremljati delovanje Ubuntuja z uporabo Netdata


Netdata je brezplačna statistika in statistika pasovne širine, če omenimo le nekatere.

Poleg tega Netdata ponuja tudi interaktivne metrične vizualizacije, do katerih lahko dostopate v spletnem brskalniku, skupaj z inteligentnimi alarmi, ki pomagajo pri odpravljanju napak v sistemu.

Najnovejša tehnologija in priljubljenost podjetja Netdata sta si leta 2020 zagotovila mesto na Forbesovem območju 100 vzhajajočih zvezd, kar pa ni noben podvig. Dejansko je v času pisanja tega vodnika prejel skoraj 50.000 zvezd Github.

Netdata lahko uporabite za namestitev dveh načinov. Takoj lahko zaženete samodejni skript na lupini BASH. To posodobi vaše sisteme in sproži namestitev Netdata. Lahko pa klonirate skladišče Netdata Git in nato zaženete samodejni skript. Prva metoda je preprosta in enostavna in na to se bomo osredotočili v tem priročniku.

V tem članku bomo videli, kako lahko namestite Netdata v Ubuntu za spremljanje sprotnega delovanja, delovanja in spremljanja stanja strežnikov in aplikacij.

Netdata podpira naslednje distribucije Ubuntu LTS:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Kako namestiti Netdata v Ubuntu Linux

Za začetek namestitve zaženite spodnji ukaz na bash terminalu, da prenesete in izvedete skript.

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

Med izvajanjem skripta se zgodi naslednje:

  • Skript samodejno odkrije vašo distribucijo Linuxa, posodobi seznam paketov in namesti vse potrebne programske pakete.
  • Najnovejše izvorno drevo netdata se prenese na pot /usr/src/netdata.git.
  • Skript namesti netdata z zagonom skripta ./netdata-installer.sh iz izvornega drevesa.
  • Posodobitev cron.daily zagotavlja, da se netdata dnevno posodablja.

Ko se skript zažene, boste dobili nasvete o tem, kako dostopati do Netdata v brskalniku in kako ga upravljati kot sistemsko storitev.

Namestitev traja nekaj časa, zato ji dajte približno 10 minut in se vrnite. Končno boste spodaj dobili izhod, ko skript zaključi namestitev.

Po namestitvi zaženite, omogočite in preverite stanje Netdata, kot je prikazano.

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

Netdata privzeto posluša na vratih 19999, kar je mogoče potrditi z ukazom netstat, kot je prikazano.

$ sudo netstat -pnltu | grep netdata

Če imate UFW zagnan, potrudite se odpreti vrata 19999, saj bo to potrebno pri dostopu do Netdata v brskalniku.

$ sudo ufw allow 19999/tcp
$ sudo ufw reload

Na koncu za dostop do Netdata preklopite na brskalnik in pobrskajte po naslednjem URL-ju

http://server-ip:19999/

To je tisto, kar vas pozdravi, ko brskate po URL-ju. Pravzaprav boste spoznali, da se ne boste morali prijaviti. Vse sistemske meritve bodo prikazane, kot je prikazano.

Prelistate lahko različne grafe, tako da kliknete želene meritve v desni stranski vrstici armaturne plošče. Če si želite na primer ogledati statistiko omrežnega vmesnika, kliknite možnost ‘Network Interfaces’.

Zaščita Netdata z osnovno overitvijo v Ubuntuju

Do tega trenutka lahko vsakdo dostopa do nadzorne plošče Netdata in si ogleda različne meritve sistema. To pomeni kršitev varnosti in temu se vsekakor želimo izogniti.

S tem v mislih bomo konfigurirali osnovno overjanje HTTP. Namestiti moramo paket apache2-utils, ki vsebuje program htpasswd, ki bo uporabljen za konfiguriranje uporabniškega imena in gesla uporabnika. Poleg tega bomo namestili spletni strežnik Nginx, ki bo deloval kot obratni proxy.

Za namestitev spletnega strežnika Nginx in paketa apache2-utils izvedite ukaz.

$ sudo apt install nginx apache2-utils

Z nameščenima Nginx in apache2-utils bomo v imeniku /etc/nginx/conf.d ustvarili konfiguracijsko datoteko. Vendar, če uporabljate Nginx za druge namene, razen Netdata, uporabite imenik, ki je na voljo na spletnih mestih.

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

V konfiguracijski datoteki bomo Nginxu najprej naročili, naj posreduje dohodne zahteve za nadzorno ploščo Netdata. Nato bomo priložili nekaj osnovnih pozivov za preverjanje pristnosti, ki pooblaščenim uporabnikom le omogoča dostop do nadzorne plošče Netdata z avtentikacijo uporabniškega imena/gesla.

Tu je celotna konfiguracija. Ne pozabite zamenjati direktiv server_ip in example.com z lastnim naslovom IP strežnika in imenom strežnika.

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;
    }
}

Razumejmo konfiguracijo, odsek za odsekom.

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

Določili smo zgornji modul, imenovan netdata-backend, ki se sklicuje na vgrajeni spletni strežnik Netdata z uporabo naslova povratne zanke 127.0.0.1 in vrat 19999, ki so privzeta vrata, ki jih Netdata posluša. Direktiva o ohranjanju določa največje število nedejavnih povezav, ki lahko ostanejo odprte.

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

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

To je glavni odsek bloka strežnika Nginx. Prva vrstica določa zunanji naslov IP, ki naj ga Nginx posluša, ko stranke pošljejo svoje zahteve. Direktiva server_name določa ime domene strežnika in Nginxu naroči, naj zažene strežniški blok, ko odjemalci prikličejo ime domene namesto zunanjega naslova IP.

Zadnji dve vrstici označujeta preprosto overjanje HTTP, ki zahteva, da se uporabnik prijavi z uporabniškim imenom in geslom. Modul auth_basic sproži pojavno okno uporabniškega imena/gesla v brskalniku z napisom »Zahtevana je overitev« na naslovu, ki ga lahko pozneje prilagodite svojim željam.

Modul auth_basic_user_file kaže na ime datoteke, ki bo vsebovalo uporabniško ime in geslo uporabnika, pooblaščenega za dostop do nadzorne plošče Netdata - v tem primeru netdata-access. To datoteko bomo ustvarili pozneje.

Zadnji odsek je lokacijski blok, ki ga vsebuje strežniški blok. Ta obravnava posredovanje in posredovanje dohodnih zahtev spletnemu strežniku Nginx.

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 preverjanje pristnosti bomo z uporabniškim pripomočkom htpasswd ustvarili uporabniško ime in geslo za uporabnika, imenovanega tecmint, ter poverilnice shranili v datoteko netdata-access.

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

Vnesite geslo in ga potrdite.

Nato znova zaženite spletni strežnik Nginx, da bodo spremembe začele veljati.

$ sudo systemctl restart nginx

Če želite preizkusiti, ali je konfiguracija šla pravilno, nadaljujte in pobrskajte po naslovu IP strežnika

http://server-ip

Pojavi se pojavno okno za preverjanje pristnosti, kot je prikazano spodaj. Navedite svoje uporabniško ime in geslo ter pritisnite ENTER.

Nato boste dobili dostop do nadzorne plošče Netdata.

S tem smo zaključili našo današnjo temo. Pravkar ste se naučili, kako namestiti orodje za spremljanje Netdata in konfiguracijo osnovne overitve HTTP v Ubuntu. Oglejte si druge grafe različnih sistemskih meritev.