Netdata met Nginx installeren op Alma Linux 8

Netdata is een gratis, open-source, en real-time server monitoring programma dat real-time gegevens zoals CPU gebruik, RAM gebruik, Load, SWAP gebruik, Bandbreedte gebruik, Schijf gebruik, enz. visualiseert en bewaakt. Het helpt de systeembeheerder om een overzicht te krijgen van wat er gebeurt en wat er zojuist gebeurd is in je systeem of toepassing. Het kan geïnstalleerd worden op alle fysieke servers, Virtuele Machines, containers, en IoT apparaten. Het biedt een interactieve webinterface om je server meetgegevens te bekijken, met ondersteuning voor verschillende gegevensopslagplaatsen voor persistente opslag.

In deze zelfstudie laten we je zien hoe je het Netdata monitoring gereedschap op Alma Linux 8 installeert.

Vereisten

  • Een server met Alma Linux 8.
  • Een geldige domeinnaam die wijst naar het IP van je server.
  • Een root wachtwoord is op de server ingesteld.

Installeer de vereiste afhankelijkheden

Eerst moet je de EPEL repo installeren en andere afhankelijkheden die nodig zijn om Netdata te installeren. Je kunt ze allemaal installeren door het volgende commando uit te voeren:

dnf install epel-release -y
dnf install git libuuid-devel autoconf automake pkgconfig zlib-devel curl findutils libmnl gcc make -y

Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Netdata

Netdata zit standaard niet in de Alma Linux standaard repo. Je zult het dus vanaf de bron moeten installeren.

Download eerst de nieuwste versie van Netdata uit de Git repository met het volgende commando:

git clone --recurse-submodules https://github.com/netdata/netdata.git --depth=100

Als de download voltooid is, verander je de directory in netdata en installeer je alle vereiste afhankelijkheden met het volgende commando:

cd netdata
./packaging/installer/install-required-packages.sh --non-interactive --dont-wait netdata

Installeer vervolgens andere pakketten met het volgende commando:

dnf --enablerepo=powertools install libuv-devel

Voer vervolgens het Netdata installatiescript uit om de installatie te starten.

./netdata-installer.sh

Je krijgt de volgende uitvoer:

 --- real-time performance monitoring, done right! --- 

  You are about to build and install netdata to your system.

  The build process will use /tmp for
  any temporary files. You can override this by setting $TMPDIR to a
  writable directory where you can execute files.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.


  NOTE:
  Anonymous usage stats will be collected and sent to Netdata.
  To opt-out, pass --disable-telemetry option to the installer or export
  the environment variable DISABLE_TELEMETRY to a non-zero or non-empty value
  (e.g: export DISABLE_TELEMETRY=1).

Press ENTER to build and install netdata to your system >                                                                   

Druk op de Enter toets om Netdata op je systeem te installeren. Zodra Netdata geïnstalleerd is, krijg je de volgende uitvoer:

Setting netdata.tarball.checksum to 'new_installation'

 --- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata  .-.   .-.   .-.   .-.   .-.   .-
  |   '-'   '-'   '-'   '-'   '-'               '-'   '-'   '-'   '-'   '-'   
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

 --- is installed and running now! --- 
  enjoy real-time performance and health monitoring...
systemctl start netdata
systemctl enable netdata

Je kunt nu de status van de Netdata controleren met het volgende commando.

systemctl status netdata

Je krijgt de volgende uitvoer:

? netdata.service - Real time performance monitoring
   Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-03-19 04:22:22 UTC; 4min 16s ago
 Main PID: 58935 (netdata)
    Tasks: 50 (limit: 11412)
   Memory: 103.1M
   CGroup: /system.slice/netdata.service
           ??58935 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
           ??58938 /usr/sbin/netdata --special-spawn-server
           ??59063 /usr/libexec/netdata/plugins.d/apps.plugin 1
           ??59064 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
           ??59065 /usr/libexec/netdata/plugins.d/go.d.plugin 1

Mar 19 04:22:22 linux systemd[1]: Starting Real time performance monitoring...
Mar 19 04:22:22 linux systemd[1]: Started Real time performance monitoring.
Mar 19 04:22:22 linux netdata[58935]: CONFIG: cannot load cloud config '/var/lib/netdata/cloud.d/cloud.conf'. Running with internal defaults.
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : CONFIG: cannot load cloud config '/var/lib/netdata/cloud.d/>
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : Found 0 legacy dbengines, setting multidb diskspace to 256MB
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : Created file '/var/lib/netdata/dbengine_multihost_size' to >
Mar 19 04:22:22 linux netdata[58935]: Found 0 legacy dbengines, setting multidb diskspace to 256MB
Mar 19 04:22:22 linux netdata[58935]: Created file '/var/lib/netdata/dbengine_multihost_size' to store the computed value
Mar 19 04:22:23 linux ebpf.plugin[59064]: Does not have a configuration file inside `/etc/netdata/ebpf.d.conf. It will try to load stock file.
Mar 19 04:22:23 linux ebpf.plugin[59064]: Cannot read process groups configuration file '/etc/netdata/apps_groups.conf'. Will try '/usr/lib/n>

Op dit moment draait Netdata en luistert op poort 19999. Je kunt het controleren met het volgende commando:

ss -antpl | grep netdata

Je krijgt de volgende uitvoer:

LISTEN 0      128        127.0.0.1:8125       0.0.0.0:*    users:(("netdata",pid=58935,fd=29))
LISTEN 0      128          0.0.0.0:19999      0.0.0.0:*    users:(("netdata",pid=58935,fd=6)) 
LISTEN 0      128            [::1]:8125          [::]:*    users:(("netdata",pid=58935,fd=28))
LISTEN 0      128             [::]:19999         [::]:*    users:(("netdata",pid=58935,fd=7))

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer de firewall

Als je firewalld firewall op je systeem gebruikt, dan moet je poorten 19999 en 80 door de firewalld toelaten. Je kunt ze toestaan met het volgende commando:

firewall-cmd --permanent --add-port=19999/tcp
firewall-cmd --permanent --add-port=80/tcp

Herlaad vervolgens de firewalld daemon om de veranderingen toe te passen:

firewall-cmd --reload

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Nginx als een Reverse Proxy voor Netdata

Het is altijd een goed idee om Nginx te installeren en in te stellen als een omgekeerde proxy om de Netdata te benaderen. Installeer eerst de Nginx server met het volgende commando:

dnf install nginx httpd-tools -y

Genereer vervolgens een wachtwoordbestand met het volgende commando:

htpasswd -c /etc/nginx/.htpasswd netadmin

Stel je admin wachtwoord in zoals hieronder:

New password: 
Re-type new password: 
Adding password for user netadmin

Maak vervolgens een Nginx virtual host configuratiebestand met het volgende commando:

nano /etc/nginx/conf.d/netdata.conf

Voeg de volgende regels toe:

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

server {
listen 80;
server_name netdata.example.com;

    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://backend;
    proxy_http_version 1.1;   
    proxy_pass_request_headers on;
    proxy_set_header Connection "keep-alive";
    proxy_store off;
    auth_basic "Private Property";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
}

Sla het bestand op en sluit het af, controleer Nginx dan op eventuele syntaxis configuratiefouten:

nginx -t

Als alles in orde is, krijg je de volgende uitvoer:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herstart vervolgens de Nginx dienst om de configuratiewijzigingen toe te passen:

systemctl restart nginx

Je kunt ook de Nginx status controleren met het volgende commando:

systemctl status nginx

Je zou de volgende uitvoer moeten zien:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-03-19 04:28:44 UTC; 4s ago
  Process: 61706 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 61705 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 61703 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 61708 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.7M
   CGroup: /system.slice/nginx.service
           ??61708 nginx: master process /usr/sbin/nginx
           ??61709 nginx: worker process

Mar 19 04:28:44 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 19 04:28:44 linux nginx[61705]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 19 04:28:44 linux nginx[61705]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 19 04:28:44 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Mar 19 04:28:44 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot het Netdata Dashboard

Open nu je webbrowser en ga naar het Netdata dashboard met de URL http://your-server-ip. Je zou de Netdata login pagina moeten zien:

Netdata Inloggen

Geef je admin gebruikersnaam en wachtwoord op en klik op de Sign in knop. Je zou het Netdata dashboard op de volgende pagina moeten zien:

Netdata Dashboard

Conclusie

Gefeliciteerd! Je hebt met succes het Netdata bewakingsprogramma geïnstalleerd op Alma Linux 8. Je kunt nu beginnen je server matrics in real-time te bewaken vanaf het Netdata dashboard. Stel me gerust als je vragen hebt.