Monitorer son serveur avec Netdata

Credit : Illustration backtotheweb.fr

Monitorer son serveur avec Netdata

Dylan D. — Agent Support Technique Serveur DevOps 507 mots 3 min

Pourquoi Netdata ?

Netdata est un outil de monitoring open source qui collecte des milliers de metriques en temps reel avec une granularite a la seconde. Contrairement a Prometheus + Grafana, il s'installe en une commande et fournit un dashboard complet immediatement.

Ideal pour surveiller un serveur IONOS sans infrastructure complexe.

Installation en une commande

curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel

Netdata demarre automatiquement sur le port 19999 :

sudo systemctl status netdata
sudo ss -tlnp | grep 19999

Monitorer son serveur avec Netdata

Securiser l'acces au dashboard

Par defaut, le dashboard est accessible a tous. Limitez l'acces via Nginx en reverse proxy :

server {
    listen 443 ssl;
    server_name monitoring.monsite.fr;

    ssl_certificate /etc/letsencrypt/live/monitoring.monsite.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monitoring.monsite.fr/privkey.pem;

    auth_basic "Monitoring";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Creez le fichier d'authentification :

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

Puis bloquez l'acces direct au port 19999 :

sudo ufw deny 19999
sudo systemctl reload nginx

Comprendre le dashboard

Le dashboard Netdata affiche en temps reel :

Chaque graphique est interactif et permet de zoomer sur une periode precise.

Monitorer son serveur avec Netdata

Configurer les alertes

Netdata inclut des centaines d'alertes preconfigurables. Modifiez-les dans /etc/netdata/health.d/ :

sudo /etc/netdata/edit-config health.d/cpu.conf

Exemple d'alerte personnalisee pour l'utilisation disque :

alarm: disk_space_usage
    on: disk.space
lookup: max -1m unaligned of avail
 units: GiB
 every: 1m
  warn: $this < 10
  crit: $this < 5
  info: Espace disque disponible
    to: sysadmin

Notifications par email et Slack

Configurez les notifications :

sudo /etc/netdata/edit-config health_alarm_notify.conf

Pour les notifications email :

SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@monsite.fr"

Pour Slack :

SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/T00/B00/XXXX"
DEFAULT_RECIPIENT_SLACK="#monitoring"

Testez l'envoi :

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

Monitorer MySQL et Nginx

Netdata detecte automatiquement la plupart des services. Pour MySQL, creez un utilisateur dedie :

CREATE USER 'netdata'@'localhost';
GRANT USAGE ON *.* TO 'netdata'@'localhost';
FLUSH PRIVILEGES;

Pour Nginx, activez le stub_status :

server {
    listen 127.0.0.1:80;
    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}

Redemarrez Netdata pour qu'il detecte les nouveaux modules :

sudo systemctl restart netdata

Retention des donnees

Par defaut, Netdata conserve environ 2 heures de donnees en RAM. Pour augmenter la retention, editez /etc/netdata/netdata.conf :

[db]
    mode = dbengine
    storage tiers = 3
    dbengine multihost disk space MB = 2048

Avec 2 Go de stockage, vous conserverez plusieurs semaines de metriques detaillees.

Netdata est l'outil ideal pour avoir une visibilite complete sur votre serveur IONOS sans complexite. Le dashboard est consultable depuis n'importe quel navigateur, et les alertes vous previennent avant qu'un probleme ne devienne critique.

# Articles similaires

// newsletter

Cet article vous a aide ? Recevez les prochains par email.