Surveiller un serveur de jeu Linux avec htop ou btop donne une photo instantanée, mais aucune mémoire : impossible de savoir si le CPU a piqué à 95 % à 3 h du matin ou si la RAM s'est remplie progressivement avant un crash. Prometheus collecte des métriques toutes les 15 secondes et les conserve sur disque ; Grafana les affiche sous forme de graphiques interactifs accessibles depuis n'importe quel navigateur. Ce guide installe les deux outils sur un serveur VPS Linux Ubuntu et configure un tableau de bord de monitoring prêt à l'emploi pour un serveur de jeu. La stack est légère, open source et tourne sur n'importe quel système d'exploitation Ubuntu ou Debian.
Prérequis
Ce guide suppose un VPS Linux Ubuntu 22.04 ou 24.04 (ou Debian équivalent) avec un accès SSH en ligne de commande en tant qu'administrateur root ou sudo. Un minimum de 1 Go de RAM disponible est recommandé : Prometheus et Grafana ensemble consomment environ 150 à 300 Mo selon le volume de métriques. Sur un serveur VPS ElypseCloud, aucune dépendance propriétaire n'est requise.
Les trois composants à installer :
- Node Exporter : collecte les métriques système Linux (CPU, RAM, espace disque SSD, réseau, bande passante) et les expose sur le port 9100.
- Prometheus : scrute Node Exporter toutes les 15 secondes et stocke les séries temporelles localement (port 9090).
- Grafana : se connecte à Prometheus comme source de données et affiche les tableaux de bord (port 3000).
Si vous administrez un serveur dédié ou une machine virtuelle plutôt qu'un serveur VPS, la procédure est identique. Les configurations proposées ci-dessous sont validées sur les deux types d'infrastructure. Pour les administrateurs qui gèrent plusieurs serveurs physiques, il est possible de centraliser toutes les métriques dans une seule instance Prometheus en ajoutant chaque adresse IP cible dans le fichier de conf.
Installer Node Exporter
Node Exporter est un binaire statique sans dépendance supplémentaire. Téléchargez la dernière version stable pour amd64 depuis la page officielle prometheus.io/download, par exemple la version 1.10.2 :
wget https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz
tar xvfz node_exporter-1.10.2.linux-amd64.tar.gz
sudo mv node_exporter-1.10.2.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -r -s /bin/false node_exporter
Créez un service systemd pour que Node Exporter démarre automatiquement et redémarre en cas de crash :
sudo tee /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
Pour vérifier que Node Exporter expose bien les métriques sur le port 9100, lancez la commande en ligne de commande :
curl -s http://localhost:9100/metrics | head -5
Vous devez voir des lignes commençant par # HELP et # TYPE. Si le service ne démarre pas, consultez les logs avec journalctl -u node_exporter -n 50. Node Exporter est opérationnel.
Installer Prometheus
Prometheus scrute Node Exporter et stocke les métriques sous forme de séries temporelles. Il se déploie en tant que service systemd sur votre serveur VPS ou serveur dédié. Téléchargez le binaire depuis prometheus.io/download (version 3.x recommandée) :
wget https://github.com/prometheus/prometheus/releases/download/v3.3.1/prometheus-3.3.1.linux-amd64.tar.gz
tar xvfz prometheus-3.3.1.linux-amd64.tar.gz
sudo mv prometheus-3.3.1.linux-amd64/prometheus /usr/local/bin/
sudo mv prometheus-3.3.1.linux-amd64/promtool /usr/local/bin/
sudo useradd -r -s /bin/false prometheus
sudo mkdir -p /var/lib/prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
Créez le fichier de configurations principal. L'intervalle de scraping à 15 secondes est suffisant pour détecter un pic de charge sur un serveur de jeu :
sudo tee /etc/prometheus/prometheus.yml <<EOF
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
EOF
Créez le service systemd Prometheus avec la rétention d'historique configurée dans le conf :
sudo tee /etc/systemd/system/prometheus.service <<EOF
[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 \
--storage.tsdb.retention.time=30d
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
Vérifiez que Prometheus tourne et scrute Node Exporter :
systemctl status prometheus
L'interface web Prometheus est accessible sur http://VOTRE_IP:9090. Dans le champ d'expression, saisissez up pour confirmer que la cible node est bien en état 1. Un restart propre se fait avec sudo systemctl restart prometheus.
Le flag --storage.tsdb.retention.time=30d conserve 30 jours d'historique. Sur un serveur VPS ou dédié avec 10 Go d'espace disque SSD disponible, c'est raisonnable ; augmentez jusqu'à 90d si vous avez davantage d'espace. Le guide sur la gestion de l'espace disque d'un VPS Linux explique comment surveiller la croissance de ces fichiers et anticiper la saturation avant qu'elle n'affecte vos sauvegardes et vos backups de données.
Installer Grafana
Grafana s'installe depuis le dépôt APT officiel apt.grafana.com, ce qui garantit les mises à jour de sécurité automatiques via apt-get update. L'édition OSS gratuite inclut toutes les fonctionnalités nécessaires pour administrer le monitoring d'un serveur VPS sans abonnement. Les scripts de déploiement suivants ont été testés sur Ubuntu 22.04 et 24.04 :
sudo apt-get install -y apt-transport-https wget gnupg
sudo mkdir -p /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
sudo chmod 644 /etc/apt/keyrings/grafana.asc
echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" \
| sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl enable --now grafana-server
Grafana écoute sur le port 3000. Connectez-vous sur http://VOTRE_IP:3000 avec les identifiants par défaut admin / admin ; Grafana vous demande immédiatement de choisir un nouveau mot de passe administrateur sécurisé.
Connecter Prometheus à Grafana
Dans l'interface Grafana, allez dans Connections > Data sources > Add data source, sélectionnez Prometheus et renseignez l'URL http://localhost:9090. Cliquez sur Save & test : Grafana doit confirmer que la connexion fonctionne avec le message Data source is working.
À partir de ce moment, toutes les métriques collectées par Prometheus (préfixées node_) sont interrogeables dans Grafana via des requêtes PromQL depuis la barre d'expressions.
Tableau de bord pour votre serveur de jeu
Au lieu de créer chaque graphique à la main, importez un tableau de bord communautaire. Node Exporter Full (ID 1860 sur grafana.com/dashboards) est le tableau de bord le plus utilisé pour les métriques Linux. Dans Grafana, allez dans Dashboards > Import, entrez l'ID 1860 et sélectionnez la source de données Prometheus créée à l'étape précédente.
Vous obtenez instantanément des graphiques pour :
- CPU : pourcentage par coeur et charge moyenne (
node_cpu_seconds_total) - RAM : mémoire utilisée, disponible et swap (
node_memory_MemAvailable_bytes) - Espace disque SSD : utilisation par partition et taux d'I/O (
node_filesystem_avail_bytes,node_disk_io_time_seconds_total) - Réseau et bande passante : débit entrant et sortant en temps réel (
rate(node_network_receive_bytes_total[1m]))
Pour un serveur FiveM ou Minecraft, les métriques les plus utiles sont la RAM disponible (la JVM Minecraft peut tout consommer) et les I/O disque (l'accès aux chunks génère des pics). Le guide sur la réduction de la consommation mémoire explique comment interpréter ces chiffres et agir si la RAM sature.
Pour créer une alerte e-mail ou webhook lorsque la RAM descend sous 200 Mo, consultez le guide alertes de monitoring sur un VPS Linux, qui couvre les alertes légères sans Grafana, complémentaires à ce tableau de bord.
Sécuriser l'accès
Par défaut, les ports 9090 (Prometheus), 9100 (Node Exporter) et 3000 (Grafana) sont ouverts sur toutes les interfaces réseau. Sur un serveur VPS de production, seul Grafana devrait être accessible depuis Internet, de préférence derrière un reverse proxy Nginx en HTTPS. Les deux autres doivent rester sur localhost grâce aux règles du pare-feu (firewall).
Bloquez les accès directs avec nftables ou UFW en ligne de commande :
# Bloquer les ports Prometheus et Node Exporter depuis l'extérieur (UFW)
sudo ufw deny 9090
sudo ufw deny 9100
sudo ufw allow 3000
Pour exposer Grafana derrière Nginx en HTTPS avec un certificat Let's Encrypt, suivez le guide publier un service sur un VPS Linux en HTTPS. Cela permet d'accéder au tableau de bord sur https://monitoring.votre-domaine.com sans exposer le port 3000.
Dans Grafana, créez des comptes utilisateurs distincts avec des rôles Viewer pour les membres de votre équipe qui ont besoin de consulter les graphiques sans pouvoir modifier les configurations admin. Cette flexibilité est particulièrement utile pour les équipes qui administrent plusieurs serveurs virtuels.
Aller plus loin
Une fois le tableau de bord de base en place, plusieurs extensions sont utiles pour les administrateurs de serveurs de jeu :
- Alertes Grafana : déclenchez une notification Discord ou Telegram si le CPU dépasse 90 % pendant plus de 5 minutes. Configurez via Alerting > Alert rules dans Grafana.
- Exporter bases de données : un exporter MySQL expose des métriques sur les bases de données de votre serveur FiveM (requêtes lentes, connexions ouvertes). Installez-le comme Node Exporter et ajoutez l'adresse IP cible dans le fichier de conf
prometheus.yml. - Loki et Promtail : pour agréger et interroger les logs de votre serveur de jeu directement dans Grafana, Loki est la brique complémentaire de Prometheus pour les journaux. Consultez le guide analyser les logs avec journalctl pour comprendre quels journaux valent la peine d'être exportés.
- Sauvegardes et backups de la configuration Grafana : exportez régulièrement vos tableaux de bord via l'option Dashboard JSON model. En cas de restart du serveur virtuel ou de réinstallation du système d'exploitation, vous retrouvez vos graphiques en quelques secondes sans reconfiguration grâce aux scripts d'import automatiques.
Grafana et Prometheus forment un socle d'observabilité solide pour tout serveur VPS Linux ElypseCloud hébergeant un serveur de jeu. Une fois installée, la pile tourne de manière autonome et vous alerte avant que vos joueurs ne remarquent un problème. Pour aller encore plus loin dans la supervision système, découvrez comment surveiller les ressources en temps réel avec htop et btop en complément de ce tableau de bord historique.
Besoin d'un serveur VPS Linux performant pour héberger votre stack de monitoring et votre serveur de jeu ?
Voir les offres VPS Linux