Objectif
Dans ce tutoriel, on va mettre en place un système de supervision temps réel d’un serveur dédié ou d’un VPS entièrement auto-hébergé, sans solutions SaaS type Datadog, UptimeRobot, NewRelic, etc. On se concentrera sur trois approches possibles :
- Prometheus + Grafana : combo très puissant, flexible, mais nécessite un peu de configuration.
- Netdata : rapide à installer, parfait pour une vue temps réel immédiate.
- Zabbix : solution complète d’entreprise, idéale pour des infrastructures complexes.
1. Pourquoi surveiller son VPS ou serveur dédié ?
Superviser son infrastructure, c’est indispensable pour :
- Détecter les anomalies avant qu’il soit trop tard (CPU à 100 %, disque plein, RAM saturée…)
- Diagnostiquer les ralentissements (I/O, réseau, processus lents…)
- Prévenir les coupures et les indisponibilités
- Avoir un historique clair des performances
2. Prérequis
- Un serveur Linux (Debian, Ubuntu, etc.)
- Un utilisateur avec droits root ou sudo
- Un pare-feu ouvert sur les bons ports (on y revient plus bas)
- Un peu de temps (\~30 min)
3. Option 1 : Netdata — la solution ultra rapide
🔧 Installation
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
C’est tout. Netdata s’installe, détecte automatiquement les services (MySQL, Nginx, Apache, etc.) et lance une interface Web sur le port 19999.
🔒 Sécuriser l’accès
Netdata n’a pas d’authentification intégrée. Protégez l’interface avec un reverse proxy + login (ex. Nginx + Basic Auth) ou limitez par IP via le pare-feu :
sudo ufw allow from <votre-ip> to any port 19999
✅ Avantages
- Temps réel (rafraîchissement < 1 seconde)
- Facile à mettre en œuvre
- Vue complète de tous les métriques système
❌ Inconvénients
- Pas d’alerte intégrée par email/Slack
- Pas fait pour des dashboards personnalisés ou multiserveurs
4. Option 2 : Prometheus + Grafana — le combo moderne
📦 Étape 1 : Installer Prometheus
Créez un dossier et téléchargez Prometheus :
useradd --no-create-home --shell /bin/false prometheus
mkdir /etc/prometheus /var/lib/prometheus
chown prometheus: /etc/prometheus /var/lib/prometheus
cd /tmp
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar xvf prometheus-2.52.0.linux-amd64.tar.gz
cp prometheus-*/prometheus /usr/local/bin/
cp prometheus-*/promtool /usr/local/bin/
cp -r prometheus-*/consoles /etc/prometheus
cp -r prometheus-*/console_libraries /etc/prometheus
cp prometheus-*/prometheus.yml /etc/prometheus/
Créez le service systemd :
nano /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
[Service]
User=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/
[Install]
WantedBy=default.target
Activez-le :
systemctl daemon-reexec
systemctl enable --now prometheus
🔍 Test : Accédez à http://<IP>:9090
📦 Étape 2 : Installer Node Exporter (collecte des métriques système)
useradd --no-create-home --shell /bin/false node_exporter
cd /tmp
curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar xvf node_exporter-*.tar.gz
cp node_exporter-*/node_exporter /usr/local/bin/
nano /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=default.target
Lancez-le :
systemctl daemon-reexec
systemctl enable --now node_exporter
Par défaut, il écoute sur le port 9100.
Ajoutez-le dans Prometheus (/etc/prometheus/prometheus.yml
) :
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Puis :
systemctl restart prometheus
📊 Étape 3 : Installer Grafana
Pour Debian/Ubuntu :
apt install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
apt update
apt install grafana
systemctl enable --now grafana-server
Accédez à http://<IP>:3000
Identifiants par défaut : admin / admin
Ajoutez Prometheus comme source de données dans Grafana, puis utilisez un dashboard « Node Exporter Full » depuis Grafana.com (ID : 1860).
✅ Avantages
- Flexible, personnalisable
- Dashboards pros
- Extensible à plusieurs serveurs
- Alerting puissant
❌ Inconvénients
- Plus long à mettre en place
- Besoin de maintenir les services à jour
5. Option 3 : Zabbix — la solution complète
Zabbix est plus lourd à installer, mais ultra-complet. Il peut gérer des dizaines de machines, envoie des alertes par email/Telegram, a des agents sur Windows/Linux, etc.
🧰 Installation (Debian 12 + MariaDB)
apt install -y mariadb-server
mysql_secure_installation
mysql -u root -p
Créez la base :
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'motdepassefort';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
FLUSH PRIVILEGES;
Ajoutez les dépôts Zabbix :
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
dpkg -i zabbix-release_7.0-1+debian12_all.deb
apt update
Installez le serveur + frontend + agent :
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Importez le schéma :
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Configurez /etc/zabbix/zabbix_server.conf
:
DBPassword=motdepassefort
Puis :
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2
Accédez à http://<IP>/zabbix
Login : Admin / zabbix
✅ Avantages
- Complet, orienté entreprise
- Alerting intégré
- Supervision distribuée
- Prise en charge multi-OS
❌ Inconvénients
- Lourd à configurer pour un petit VPS
- Moins intuitif que Grafana
6. Comparatif rapide
Solution | Temps réel | Facilité | Alerting | Multi-serveur | Idéal pour |
---|---|---|---|---|---|
Netdata | ✅ | ⭐⭐⭐⭐⭐ | ❌ | ❌ | 1 serveur, rapide |
Prometheus+Grafana | ✅ | ⭐⭐⭐ | ✅ | ✅ | Monitoring moderne |
Zabbix | ⚠️ 15s\~ | ⭐⭐ | ✅ | ✅ | Parc serveur + alerting pro |
7. Conclusion
Si tu veux surveiller un seul serveur rapidement, Netdata est parfait. Si tu veux un monitoring sérieux avec alertes, choisis Prometheus + Grafana. Si tu veux gérer un parc de serveurs avec alertes avancées, pars sur Zabbix.
Dans tous les cas, éviter les solutions SaaS, c’est garder le contrôle de ses données, rester souverain, et avoir un système 100 % open source, personnalisable et sans abonnement.