Zoeken op website

Hoe Ubuntu-prestaties te controleren met behulp van Netdata


Netdata is een gratis en opensource realtime monitoring- en probleemoplossingstool voor cloudservers, containers, applicaties en lokale IT-infrastructuur. Het biedt zeer gedetailleerde en realtime systeemstatistieken, zoals CPU-prestaties, RAM- en schijfgebruik en bandbreedtestatistieken, om er maar een paar te noemen.

Daarnaast biedt Netdata ook interactieve metrische visualisaties die toegankelijk zijn via een webbrowser, samen met intelligente alarmen die helpen bij het oplossen van systeemfouten.

De geavanceerde technologie en populariteit van Netdata hebben ervoor gezorgd dat Netdata in 2020 een plaats heeft verworven in de Forbes Cloud 100 rijzende sterren, wat geen sinecure is. Op het moment dat deze handleiding werd geschreven, kreeg deze zelfs bijna 50.000 Github-sterren.

Er zijn twee manieren waarop u Netdata kunt installeren. U kunt meteen een geautomatiseerd script uitvoeren op een BASH-shell. Hiermee worden uw systemen bijgewerkt en wordt de installatie van Netdata gestart. Als alternatief kunt u de Git-repository van Netdata klonen en daarna het geautomatiseerde script uitvoeren. De eerste methode is eenvoudig en duidelijk en dit is waar we ons in deze handleiding op zullen concentreren.

In dit artikel zullen we zien hoe u Netdata op Ubuntu kunt installeren om real-time, prestatie- en gezondheidsmonitoring van servers en applicaties te monitoren.

Ondersteunde platforms

Netdata ondersteunt de volgende Ubuntu LTS-distributies:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Hoe Netdata te installeren in Ubuntu Linux

Om de installatie te starten, voert u de onderstaande opdracht uit op uw bash-terminal om het script te downloaden en uit te voeren.

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

Tijdens de uitvoering van het script gebeurt het volgende:

  • Het script ontdekt automatisch uw Linux-distributie, werkt de pakketlijst bij en installeert alle vereiste softwarepakketten.
  • De nieuwste netdata-bronstructuur wordt gedownload naar het pad /usr/src/netdata.git.
  • Het script installeert netdata door het script ./netdata-installer.sh uit te voeren vanuit de bronstructuur.
  • Er wordt een update uitgevoerd in cron.daily om ervoor te zorgen dat netdata dagelijks wordt bijgewerkt.

Terwijl het script wordt uitgevoerd, krijgt u tips over hoe u toegang krijgt tot Netdata in een browser en hoe u deze kunt beheren als een systemd service.

De installatie duurt even, dus geef het ongeveer 10 minuten en kom terug. Ten slotte krijgt u de onderstaande uitvoer terwijl het script de installatie voltooit.

Eenmaal geïnstalleerd, start, schakel in en verifieer de status van Netdata zoals weergegeven.

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

Standaard luistert Netdata op poort 19999 en dit kan worden bevestigd met behulp van de netstat-opdracht, zoals weergegeven.

sudo netstat -pnltu | grep netdata

Als UFW actief is, probeer dan poort 19999 te openen, aangezien dit vereist is bij toegang tot Netdata in de browser.

sudo ufw allow 19999/tcp
sudo ufw reload

Om toegang te krijgen tot Netdata, schakelt u ten slotte over naar uw browser en bladert u door de volgende URL

http://server-ip:19999/

Dit is wat u begroet zodra u door de URL bladert. U zult zich zelfs realiseren dat u niet hoeft in te loggen. Alle systeemgegevens worden weergegeven zoals weergegeven.

U kunt door verschillende grafieken bladeren door op de gewenste statistieken in de rechterzijbalk van het dashboard te klikken. Als u bijvoorbeeld de netwerkinterfacestatistieken wilt bekijken, klikt u op de optie ‘Netwerkinterfaces’.

Netdata beveiligen met basisauthenticatie op Ubuntu

Tot nu toe heeft iedereen toegang tot het Netdata dashboard en kan hij een kijkje nemen in de verschillende systeemstatistieken. Dit komt neer op een inbreuk op de beveiliging en dat willen we absoluut vermijden.

Met dit in gedachten gaan we de basis-HTTP-authenticatie configureren. We moeten het apache2-utils pakket installeren dat het htpasswd programma levert dat gebruikt zal worden om de gebruikersnaam en het wachtwoord van de gebruiker te configureren. Bovendien zullen we de Nginx-webserver installeren die als omgekeerde proxy zal fungeren.

Om de Nginx webserver en het apache2-utils pakket te installeren, voert u de opdracht uit.


sudo apt install nginx apache2-utils

Met Nginx en apache2-utils geïnstalleerd, gaan we een configuratiebestand maken in de map /etc/nginx/conf.d. U kunt echter gerust de map sites-available gebruiken als u Nginx voor andere doeleinden gebruikt dan Netdata.


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

In het configuratiebestand zullen we eerst Nginx instrueren om inkomende verzoeken voor het Netdata dashboard te proxyen. Daarna zullen we een basisverificatieprompt toevoegen die alleen geautoriseerde gebruikers toegang verleent tot het Netdata dashboard met behulp van gebruikersnaam/wachtwoordverificatie.

Hier is de volledige configuratie. Zorg ervoor dat u de richtlijnen server_ip en example.com vervangt door uw eigen server-IP-adres en servernaam.


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

Laten we de configuratie, sectie voor sectie, begrijpen.

Sectie 1:


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

We hebben een upstream module gespecificeerd genaamd netdata-backend die verwijst naar de ingebouwde webserver van Netdata met behulp van het loopback adres 127.0.0.1< en poort 19999, wat de standaardpoort is waarop Netdata luistert. De keepalive richtlijn definieert het maximale aantal inactieve verbindingen dat open kan blijven.

Sectie 2:


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

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Dit is de belangrijkste Nginx serverbloksectie. De eerste regel specificeert het externe IP-adres waarnaar Nginx moet luisteren wanneer clients hun verzoeken verzenden. De server_name richtlijn specificeert de domeinnaam van de server en instrueert Nginx om het serverblok uit te voeren wanneer de clients de domeinnaam aanroepen in plaats van het externe IP-adres.

De laatste twee regels geven de eenvoudige HTTP-authenticatie aan, waarbij de gebruiker zich moet aanmelden met een gebruikersnaam en wachtwoord. De auth_basic module activeert de gebruikersnaam/wachtwoord pop-up in de browser met de tekst “Authenticatie vereist” in de titel, die later kan worden aangepast aan uw voorkeur.

De module auth_basic_user_file verwijst naar de bestandsnaam die de gebruikersnaam en het wachtwoord bevat van de gebruiker die geautoriseerd is om toegang te krijgen tot het dashboard van Netdata – in dit geval netdata-access. Dit bestand zullen we later aanmaken.

Sectie 3:

De laatste sectie is het locatie blok dat zich in het serverblok bevindt. Dit zorgt voor de proxying en het doorsturen van inkomende verzoeken naar de Nginx-webserver.


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

Voor authenticatie zullen we een gebruikersnaam en wachtwoord aanmaken voor een gebruiker genaamd tecmint met behulp van het hulpprogramma htpasswd en de inloggegevens opslaan in het netdata-access bestand .


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

Geef het wachtwoord op en bevestig het.

Start vervolgens de Nginx-webserver opnieuw op zodat de wijzigingen van kracht worden.


sudo systemctl restart nginx

Om te testen of de configuratie goed is gegaan, gaat u verder en bladert u door het IP-adres van uw server


http://server-ip

Er verschijnt een authenticatiepop-up zoals hieronder weergegeven. Geef uw gebruikersnaam en wachtwoord op en druk op ENTER.

Daarna krijgt u toegang tot het Netdata dashboard.

Dit brengt ons aan het einde van ons onderwerp voor vandaag. Je hebt zojuist geleerd hoe je de Netdata monitoringtool en de configuratie van basis-HTTP-authenticatie op Ubuntu installeert. Bekijk gerust andere grafieken over verschillende systeemstatistieken.