Sådan overvåges Ubuntu-ydeevne ved hjælp af Netdata


Netdata er et gratis overvågnings- og fejlfindingsværktøj i realtid til open source for cloud-servere, containere, applikationer og lokal IT-infrastruktur. Det giver høje granulære og realtids systemmålinger såsom CPU-ydelse, RAM- og diskudnyttelse og båndbreddestatistikker for at nævne nogle få.

Derudover leverer Netdata også interaktive metriske visualiseringer, der er tilgængelige i en webbrowser sammen med intelligente alarmer, der hjælper med fejlfinding af systemfejl.

Netdatas banebrydende teknologi og popularitet har fortjent det en plads i Forbes cloud 100-stigende stjerner i 2020, hvilket ikke er nogen bedrift. Faktisk på tidspunktet for skrivningen af denne vejledning har den modtaget næsten 50.000 Github-stjerner.

Der er to måder, du kan bruge til at installere Netdata. Du kan med det samme køre et automatiseret script på en BASH-shell. Dette opdaterer dine systemer og starter installationen af Netdata. Alternativt kan du klone Netdatas Git-arkiv og derefter udføre det automatiske script. Den første metode er enkel og ligetil, og det er det, vi skal fokusere på i denne vejledning.

I denne artikel vil vi se, hvordan du kan installere Netdata på Ubuntu til at overvåge realtids-, ydeevne- og sundhedsovervågning af servere og applikationer.

Netdata understøtter følgende Ubuntu LTS-distributioner:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Sådan installeres Netdata i Ubuntu Linux

For at starte installationen skal du køre kommandoen nedenfor på din bash-terminal for at downloade og udføre scriptet.

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

Under udførelsen af scriptet finder følgende sted:

  • The script automatically discovers your Linux distribution, updates the package list, and installs all the requisite software packages.
  • The latest netdata source tree is downloaded to the /usr/src/netdata.git path.
  • The script installs netdata by running the ./netdata-installer.sh script from the source tree.
  • An update is made to cron.daily to ensure that netdata is updated on a daily basis.

Når scriptet køres, får du tip om, hvordan du får adgang til Netdata i en browser, og hvordan du administrerer det som en systemtjeneste.

Installationen tager et stykke tid, så giv den cirka 10 minutter, og kom tilbage. Endelig får du output nedenfor, når scriptet afslutter installationen.

Når det er installeret, skal du starte, aktivere og verificere Netdata-status som vist.

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

Som standard lytter Netdata til port 19999, og dette kan bekræftes ved hjælp af kommandoen netstat som vist.

$ sudo netstat -pnltu | grep netdata

Hvis du har UFW kørende, skal du gøre en indsats for at åbne port 19999, da dette er nødvendigt, når du får adgang til Netdata i browseren.

$ sudo ufw allow 19999/tcp
$ sudo ufw reload

Endelig, for at få adgang til Netdata, skift til din browser og gennemse følgende URL

http://server-ip:19999/

Dette er hvad der byder dig velkommen, når du har gennemset URL'en. Faktisk vil du indse, at du ikke bliver forpligtet til at logge ind. Alle systemets metrics vises som vist.

Du kan bladre gennem forskellige grafer ved at klikke på dine foretrukne metrics i højre sidebjælke i dashboardet. For eksempel for at tjekke netværksinterfacestatistikkerne skal du klikke på 'Netværksgrænseflader'.

Sikring af netdata med grundlæggende godkendelse på Ubuntu

Indtil dette tidspunkt kan alle få adgang til Netdata-instrumentbrættet og kigge på de forskellige systemmålinger. Dette svarer til et sikkerhedsbrud, og vi vil bestemt undgå dette.

Med dette i tankerne vil vi konfigurere grundlæggende HTTP-godkendelse. Vi skal installere apache2-utils-pakken, der giver htpasswd-programmet, der vil blive brugt til at konfigurere brugernavnet og adgangskoden til brugeren. Derudover installerer vi Nginx-webserveren, der fungerer som den omvendte proxy.

For at installere Nginx-webserveren og apache2-utils-pakken skal du udføre kommandoen.

$ sudo apt install nginx apache2-utils

Med Nginx og apache2-utils installeret skal vi oprette en konfigurationsfil inde i /etc/nginx/conf.d biblioteket. Du er dog velkommen til at bruge den tilgængelige bibliotek, hvis du bruger Nginx til andre formål bortset fra Netdata.

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

Inde i konfigurationsfilen vil vi først instruere Nginx om at proxye indgående anmodninger om Netdata-dashboardet. Derefter tilføjer vi nogle grundlæggende godkendelsesprompter, der kun giver autoriserede brugere adgang til Netdata-dashboardet ved hjælp af brugernavn/adgangskodegodkendelse.

Her er hele konfigurationen. Vær opmærksom på at erstatte server_ip- og example.com-direktiverne med din egen server-IP-adresse og servernavn.

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

Lad os forstå konfigurationen sektion for sektion.

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

Vi har angivet et opstrømsmodul kaldet netdata-backend, der refererer til Netdatas indbyggede webserver ved hjælp af loopback-adressen 127.0.0.1 og port 19999, som er den standardport, som Netdata lytter til. Keepalive-direktivet definerer det maksimale antal ledige forbindelser, der kan forblive åbne.

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

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Dette er den vigtigste Nginx-serverblocksektion. Den første linje specificerer den eksterne IP-adresse, som Nginx skal lytte efter, når klienter sender deres anmodninger. Direktivet servernavn angiver serverens domænenavn og beder Nginx om at køre serverblokken, når klienterne påberåber domænenavnet i stedet for den eksterne IP-adresse.

De sidste to linjer angiver den enkle HTTP-godkendelse, der kræver, at brugeren logger på ved hjælp af et brugernavn og en adgangskode. Auth_basic-modulet udløser pop op-vinduet med brugernavn/adgangskode i browseren med "Authentication Required" på titlen, som senere kan tilpasses, så de passer til dine præferencer.

Auth_basic_user_file-modulet peger på filnavnet, der indeholder brugernavnet og adgangskoden til den bruger, der er autoriseret til at få adgang til Netdatas dashboard - I dette tilfælde netdata-adgang. Vi opretter denne fil senere.

Den sidste sektion er placeringsblokken, der er indeholdt i serverblokken. Dette håndterer proxy- og videresendelse af indgående anmodninger til Nginx-webserveren.

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

Til godkendelse opretter vi et brugernavn og en adgangskode til en bruger kaldet tecmint ved hjælp af htpasswd-værktøjet og gemmer legitimationsoplysningerne i netdata-adgangsfilen.

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

Angiv adgangskoden, og bekræft den.

Genstart derefter Nginx-webserveren for at ændringerne skal træde i kraft.

$ sudo systemctl restart nginx

For at teste, om konfigurationen gik rigtigt, skal du fortsætte og gennemse serverens IP-adresse

http://server-ip

Et pop op-vindue til godkendelse vises som vist nedenfor. Angiv dit brugernavn og din adgangskode, og tryk på ENTER.

Derefter får du adgang til Netdata-dashboardet.

Dette bringer os til slutningen af vores emne for i dag. Du har lige lært, hvordan du installerer Netdata-overvågningsværktøjet og konfiguration af grundlæggende HTTP-godkendelse på Ubuntu. Du er velkommen til at tjekke andre grafer på forskellige systemmålinger.