Serveri monitooring Netdataga: paigaldus ja seadistus

17 May 2026 Autor: Laura Zariņa

Käivita serveris ühe käsuga (kontrolli enne skripti sisu allpool):

curl -sSL https://cp.lv/scripts/monitoring-servera-netdata.sh | sudo bash

…või wgetiga:

wget -qO- https://cp.lv/scripts/monitoring-servera-netdata.sh | sudo bash

Skripti sisu monitoring-servera-netdata.sh:

#!/usr/bin/env bash
# Install Netdata and expose it through nginx with basic auth
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive

# 1. Install Netdata (official kickstart, stable channel)
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sudo sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry --non-interactive

# 2. Bind the agent to localhost only
sudo tee /etc/netdata/netdata.conf > /dev/null << 'EOF'
[web]
    bind to = 127.0.0.1
EOF
sudo systemctl restart netdata

# 3. nginx reverse proxy with basic auth
sudo apt-get update -y
sudo apt-get install -y nginx apache2-utils openssl
PASS="$(openssl rand -base64 12)"
sudo htpasswd -bc /etc/nginx/.netdata-htpasswd admin "$PASS"

# quoted 'EOF' keeps nginx variables ($host) from being expanded
sudo tee /etc/nginx/sites-available/netdata > /dev/null << 'EOF'
server {
    listen 80;
    server_name monitor.example.com;
    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;
    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}
EOF

sudo ln -sf /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/netdata
sudo nginx -t && sudo systemctl reload nginx
echo "Done. Dashboard is served on the domain. Login: admin, password: $PASS"

Netdata paigaldub ühe käsuga ja annab kohe veebitöölaua serveri reaalajamõõdikutega: protsessori koormus, mälu, ketas, võrk ja protsessid sekundilise sammuga. Allpool on paigaldus, ligipääsu kaitsmine ja teavituste seadistamine.

Miks Netdata

Erinevalt raskest Prometheuse ja Grafana kooslusest paigaldub Netdata minutiga, ei vaja seadistamist ja näitab sadu mõõdikuid kohe karbist välja võttes. See on ideaalne, kui on vaja kiiresti näha, mis serveriga just praegu toimub.

Nõuded: iga VPS alates 512 MB RAM-ist. Agent tarbib vähe ressursse.

1. samm. Paigaldamine

Ametlik paigaldusskript (kickstart) tuvastab distributsiooni ise:

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry

Lipp --disable-telemetry lülitab välja anonüümse statistika saatmise.

Pärast paigaldust käivitub teenus automaatselt:

systemctl status netdata

2. samm. Ligipääs töölauale

Netdata kuulab porti 19999. Avage brauseris:

http://<teie_VPS_IP>:19999

Näete elavat töölauda. Vaikimisi on port kõigile avatud — see on ebaturvaline, piirame ligipääsu.

3. samm. Otseligipääsu sulgemine

Siduge Netdata ainult localhosti külge. Failis /etc/netdata/netdata.conf:

[web]
    bind to = 127.0.0.1

Taaskäivitage:

systemctl restart netdata

Nüüd on töölaud kättesaadav ainult serverist endast — väljastpoolt avame selle pöördproksi kaudu parooliga.

4. samm. Pöördproksi autoriseerimisega (nginx)

Paigaldage utiliidid ja looge parool:

apt install -y nginx apache2-utils
htpasswd -c /etc/nginx/.netdata-htpasswd admin

Avage konfiguratsioon redaktoris (sudo nano /etc/nginx/sites-available/netdata) ja lisage sisu:

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

    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}

Või looge konfiguratsioon tervikuna ühe käsuga (jutumärgid 'EOF' on tähtsad — nginxi muutuja $host jääb muutumatuks):

sudo tee /etc/nginx/sites-available/netdata > /dev/null << 'EOF'
server {
    listen 80;
    server_name monitor.example.com;
    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;
    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}
EOF

Aktiveerige:

ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Nüüd avaneb töölaud domeeni kaudu kasutajanime ja parooliga. Krüpteerimiseks lisage certbotiga HTTPS.

5. samm. Teavituste seadistamine

Netdata oskab saata teateid Telegrami, e-postile ja Slacki. Telegrami näide — muutke faili /etc/netdata/health_alarm_notify.conf:

SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="<boti_token>"
DEFAULT_RECIPIENT_TELEGRAM="<chat_id>"

Kontrollige saatmist:

/usr/libexec/netdata/plugins.d/alarm-notify.sh test

Kasulikud mõõdikud jälgimiseks

Mõõdik Millele tähelepanu pöörata
CPU iowait Kõrge — ketas on kitsaskoht
RAM available Vähe — OOM-i risk
Disk space Partitsiooni täitumine
Network errors Probleemid võrgu või NIC-iga
Load average Protsessori ülekoormus

Läviväärtuste seadistamine

Teavituste reeglid asuvad kaustas /etc/netdata/health.d/. Näiteks ketta täitumise lävi:

nano /etc/netdata/health.d/disk_space.conf

Pärast muudatusi lugege konfiguratsioon uuesti sisse:

netdatacli reload-health

Ligipääsu krüpteerimine (HTTPS)

Basic-autoriseerimine ilma HTTPS-ita saadab parooli avatekstina. Lisage certbotiga Let’s Encrypti sertifikaat:

apt install -y certbot python3-certbot-nginx
certbot --nginx -d monitor.example.com

certbot seab ise üles ümbersuunamise HTTPS-ile ja sertifikaadi automaatse uuendamise. Kontrollige uuendustaimerit:

systemctl status certbot.timer

Agendi ressursside piiramine

Nõrgal VPS-il vähendage kogumissagedust, et koormust langetada. Failis /etc/netdata/netdata.conf:

[db]
    update every = 2

Väärtus 2 kogub mõõdikuid iga kahe sekundi tagant ühe asemel — täpsus on veidi madalam, koormus märgatavalt väiksem. Mittevajalikud pluginad (näiteks olematute teenuste kogumine) saab välja lülitada sektsioonis [plugins].

Kasulikud töölaua sektsioonid

  • System Overview — kokkuvõte protsessorist, mälust, kettast ja võrgust.
  • Applications — ressursitarve protsessigruppide kaupa.
  • Disks — iga plokkseadme viited ja koormus.
  • Networking Stack — ühendused, retransmits ja TCP vead.

Töölaud on täielikult interaktiivne: viige kursor graafikule, et näha täpseid väärtusi konkreetsel hetkel, ja valige hiirega vahemik suumimiseks.

Uuendamine ja eemaldamine

Netdata uuendamine värskeimale stabiilsele versioonile:

netdata-updater.sh

Agendi täielik eemaldamine, kui seda enam vaja pole:

/usr/libexec/netdata/netdata-uninstaller.sh --yes --force

Korduma kippuvad küsimused

Kui palju ressursse Netdata tarbib? Agent on kerge, kuid sekundilise sammu juures on nõrgal VPS-il koormus märgatav. Kogumisintervalli saab failis netdata.conf suurendada.

Kas ajaloolisi andmeid säilitatakse? Jah, kohalikus andmebaasis (dbengine). Säilitamise sügavus määratakse konfiguratsiooni sektsioonis [db].

Kas mitut serverit saab monitoorida? Jah, Netdata Cloudi kaudu või vanemsõlmega (streaming), mis kogub mõõdikuid lapssõlmedelt.

Kas porti 19999 on turvaline lahti hoida? Ei. Siduge see localhostiga ja proksige nginxi kaudu parooli ja HTTPS-iga.

Kas Netdata asendab Prometheuse? Kiireks reaalajamonitooringuks jah. Pikaajaliseks säilitamiseks ja keerukateks päringuteks on Prometheuse ja Grafana kooslus paindlikum.


Monitooring on käituse kohustuslik osa. Paigutage projekt VPS-i rendile või VPS-ile turvalisuse ja VPN-i jaoks. Monitooringu ja teavituste seadistuse võtab enda peale Serverite haldus.

Laura Zariņa