Prérequis
- Un serveur sous Ubuntu, Debian, AlmaLinux, Rocky, CentOS, Fedora, Alpine ou openSUSE : voir nos VPS au Canada
- Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
Netdata montre en direct ce que fait votre serveur : processeur, mémoire, disques, réseau, processus, et les services qu'il reconnaît (Nginx, MySQL, Docker...), avec des graphiques rafraîchis chaque seconde. Ce guide l'installe avec le script officiel, le démarre avec le serveur, et surtout le met à l'abri : tel qu'installé, son tableau de bord est ouvert à tout Internet sans mot de passe. Choisissez votre système ci-dessus.
1Mettre à jour le système et installer Netdata
Mettez le système à jour d'abord : une ou deux minutes.
apt update && apt upgrade -y... 212 upgraded, 8 newly installed, 0 to remove and 4 not upgraded. (les nombres dépendent de l'âge de l'image)
dnf upgrade -y... Complete!
dnf upgrade -y... Complete!
apk update && apk upgrade && reboot... OK: 158 MiB in 209 packages (les nombres dépendent de l'image ; la connexion SSH se coupe au redémarrage)
Alpine redémarre après la mise à jour : quand elle remplace le noyau, les modules du noyau en cours disparaissent et le pare-feu de l'étape 3 ne peut plus se charger (« Couldn't determine iptables version »). Reconnectez-vous en SSH après une minute.
zypper -n refresh && zypper -n updateAll repositories have been refreshed. ...
Sur Alpine, il n'existe pas de paquet : le script installe une version autonome sous /opt/netdata, et il faut d'abord curl.
apk add curlcurl -fsSL https://get.netdata.cloud/kickstart.sh -o /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --non-interactive --stable-channel --disable-telemetry... Successfully installed the Netdata Agent.
2Démarrer Netdata avec le serveur
L'installation n'a pas forcément démarré le service : la commande ci-dessous s'en assure, et le fait revenir à chaque redémarrage de la machine.
systemctl enable --now netdatasystemctl enable --now netdatasystemctl enable --now netdatasystemctl enable --now netdatacat > /etc/init.d/netdata << 'EOF'
#!/sbin/openrc-run
description="Netdata"
command="/opt/netdata/bin/netdata"
command_args="-D"
command_background=true
pidfile="/run/netdata.pid"
depend() {
need net
}
EOF
chmod +x /etc/init.d/netdata/opt/netdata/bin/netdatacli shutdown-agent; sleep 3; rc-update add netdata default && rc-service netdata start* service netdata added to runlevel default * Starting netdata ... [ ok ]
systemctl is-active netdataactive
systemctl is-active netdataactive
systemctl is-active netdataactive
systemctl is-active netdataactive
rc-service netdata status* status: started
curl -s http://127.0.0.1:19999/api/v1/info | grep -o '"version":"[^"]*"'"version":"v2.11.0" (le numéro change avec les mises à jour)
3Le mettre à l'abri avant de l'ouvrir
Ouvert à tout Internet dès l'installation
Netdata écoute sur le port 19999 de toutes les adresses du serveur, sans mot de passe : http://IP:19999 répond depuis l'extérieur dès l'installation (sauf sur openSUSE, dont le pare-feu bloque le port). Choisissez une des deux protections ci-dessous avant de continuer.
Protection A, la plus simple et la plus sûre : Netdata n'écoute plus que sur le serveur lui-même, et vous l'affichez à travers votre connexion SSH. Rien n'est exposé.
cat >> /etc/netdata/netdata.conf << 'EOF'
[web]
bind to = 127.0.0.1
EOF
systemctl restart netdatacat >> /etc/netdata/netdata.conf << 'EOF'
[web]
bind to = 127.0.0.1
EOF
systemctl restart netdatacat >> /etc/netdata/netdata.conf << 'EOF'
[web]
bind to = 127.0.0.1
EOF
systemctl restart netdatacat >> /etc/netdata/netdata.conf << 'EOF'
[web]
bind to = 127.0.0.1
EOF
systemctl restart netdatacat >> /opt/netdata/etc/netdata/netdata.conf << 'EOF'
[web]
bind to = 127.0.0.1
EOF
rc-service netdata restartss -ltn | grep 19999LISTEN 0 4096 127.0.0.1:19999 0.0.0.0:*
ss -ltn | grep 19999LISTEN 0 4096 127.0.0.1:19999 0.0.0.0:*
ss -ltn | grep 19999LISTEN 0 4096 127.0.0.1:19999 0.0.0.0:*
ss -ltn | grep 19999LISTEN 0 4096 127.0.0.1:19999 0.0.0.0:*
netstat -ltn | grep 19999tcp 0 0 127.0.0.1:19999 0.0.0.0:* LISTEN
ssh -L 19999:127.0.0.1:19999 root@203.0.113.42La session SSH s'ouvre normalement ; tant qu'elle est ouverte, http://localhost:19999 sur votre ordinateur affiche le Netdata du serveur
Protection B : garder le port ouvert, mais seulement pour votre adresse IP (celle de votre connexion Internet, remplacez VOTRE_IP). Sur openSUSE, cette règle est de toute façon nécessaire, le pare-feu bloque le port par défaut.
apt install -y ufw && ufw allow 22/tcp && ufw allow from VOTRE_IP to any port 19999 proto tcp && ufw --force enable... Firewall is active and enabled on system startup
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="VOTRE_IP" port protocol="tcp" port="19999" accept' && firewall-cmd --reloadsuccess success
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="VOTRE_IP" port protocol="tcp" port="19999" accept' && firewall-cmd --reloadsuccess success
apk add ufw && ufw allow 22/tcp && ufw allow from VOTRE_IP to any port 19999 proto tcp && ufw --force enable && rc-update add ufw default... Firewall is active and enabled on system startup * service ufw added to runlevel default
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="VOTRE_IP" port protocol="tcp" port="19999" accept' && firewall-cmd --reloadsuccess success
Avec la protection B, ouvrez http://203.0.113.42:19999 (l'adresse de votre serveur) dans votre navigateur.
4Ce que montre le tableau de bord
La page s'ouvre sur la vue d'ensemble du serveur ; le menu mène aux familles de graphiques :
system- Charge, processeur, mémoire, disque et réseau du serveur en un coup d'œil
cpu- L'usage de chaque cœur, et ce qui le consomme (utilisateur, système, attente disque)
mem- RAM utilisée, cache, swap
disk- Lectures et écritures, temps d'attente, espace libre par partition
net- Débit entrant et sortant par interface, paquets, erreurs
app- La consommation regroupée par application (serveur web, base de données, SSH...)
systemd- Chaque service systemd et ce qu'il consomme
5Les commandes du quotidien
systemctl status netdatasystemctl status netdatasystemctl status netdatasystemctl status netdatarc-service netdata statussystemctl restart netdatasystemctl restart netdatasystemctl restart netdatasystemctl restart netdatarc-service netdata restartjournalctl -u netdata -fjournalctl -u netdata -fjournalctl -u netdata -fjournalctl -u netdata -ftail -f /opt/netdata/var/log/netdata/daemon.lognetdatacli versionnetdata v2.11.0
netdatacli versionnetdata v2.11.0
netdatacli versionnetdata v2.11.0
netdatacli versionnetdata v2.11.0
/opt/netdata/bin/netdatacli versionnetdata v2.11.0
Les mises à jour sont automatiques : l'installation a posé une tâche quotidienne (/etc/cron.daily/netdata-updater, ou /etc/periodic/daily/netdata-updater sur Alpine) qui suit le canal stable. Les fichiers de configuration sont dans /etc/netdata (sous /opt/netdata/etc/netdata sur Alpine) ; netdata.conf est celui que vous avez touché à l'étape 3.
systemctl stop netdata && apt remove --purge -y netdatasystemctl stop netdata && dnf remove -y netdatasystemctl stop netdata && dnf remove -y netdatarc-service netdata stop; /opt/netdata/usr/libexec/netdata/netdata-uninstaller.sh --yes --forcesystemctl stop netdata && zypper -n remove netdata6Plusieurs serveurs et alertes par courriel : Netdata Cloud (facultatif)
Pas de serveur de courriel par défaut : les alertes par courriel de Netdata (health_alarm_notify.conf) exigent sendmail, que ces systèmes ne livrent pas. La voie prévue par Netdata est son service en ligne, Netdata Cloud : un compte, un espace, et le bouton « Connect Nodes » vous donne une commande à coller sur le serveur (le même script d'installation, avec un jeton). Vous voyez alors tous vos serveurs sur une page et recevez les alertes par courriel. Un palier gratuit existe ; ses limites sont sur le site de Netdata, elles changent avec le temps.
Netdata en service
Votre serveur se surveille en direct, à l'abri des regards. Pour des graphiques sur la durée et des tableaux de bord personnalisés, voyez Installer Grafana et Prometheus ; pour le reste du pare-feu, Configurer le pare-feu.
Erreurs fréquentes
L'image du serveur a été construite sur un autre disque et GRUB demande où se réinstaller : choisissez le disque de la machine (celui que lsblk affiche, en général /dev/sda) ; la mise à jour continue ensuite.
Trois causes, dans l'ordre : Netdata n'écoute qu'en local (protection A : passez par le tunnel SSH) ; le pare-feu bloque le port (protection B : vérifiez que la règle porte bien votre adresse IP du moment) ; le service n'est pas démarré (étape 2).
Normal : le paquet installe le service sans le démarrer. C'est la commande de l'étape 2.
Normal : le script installe la version autonome sous /opt/netdata. Tous les chemins de ce guide en tiennent compte.
Le pare-feu firewalld est actif par défaut et ferme le port 19999 : appliquez la protection B (ou A avec le tunnel SSH).
Il collecte chaque seconde ; sur un petit serveur, c'est visible mais faible. Si vous n'en avez pas besoin en permanence, arrêtez-le (systemctl stop netdata) et relancez-le quand vous voulez regarder.