Grafana est la plateforme de référence pour la visualisation de métriques d’infrastructure. Associé à Prometheus comme source de données, il permet de construire des tableaux de bord complets offrant une visibilité en temps réel sur l’état de vos serveurs, conteneurs et services. Ce guide vous accompagne dans la mise en place d’une pile de surveillance complète, de l’installation à la création de tableaux de bord avancés avec des alertes.

Installation de Prometheus et Node Exporter

La première étape consiste à déployer Prometheus et Node Exporter. Prometheus collecte les métriques en interrogeant des endpoints HTTP, tandis que Node Exporter expose les métriques système de chaque serveur.

Installez Node Exporter sur chaque serveur à surveiller :

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar xzf node_exporter-1.8.1.linux-amd64.tar.gz
sudo mv node_exporter-1.8.1.linux-amd64/node_exporter /usr/local/bin/

Créez un service systemd pour Node Exporter :

sudo useradd --no-create-home --shell /bin/false node_exporter
sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter

Configurez Prometheus pour scruter les Node Exporters dans prometheus.yml :

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['server1:9100', 'server2:9100']

Installation et Configuration de Grafana

Installez Grafana depuis le dépôt officiel :

sudo apt install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana.gpg
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana
sudo systemctl enable --now grafana-server

Accédez à Grafana via http://votre-serveur:3000 avec les identifiants par défaut (admin/admin). Changez immédiatement le mot de passe administrateur lors de la première connexion.

Création de Panneaux avec PromQL

Une fois la source de données Prometheus configurée, créez un nouveau tableau de bord. Voici des requêtes PromQL essentielles pour la surveillance d’infrastructure :

Utilisation CPU :

100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Mémoire disponible :

node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100

Espace disque utilisé :

100 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100)

Utilisez les panneaux Time Series pour les tendances, Gauge pour les valeurs actuelles et Stat pour les indicateurs clés.

Variables de Template et Alertes

Les variables de template rendent vos tableaux de bord dynamiques. Créez une variable instance avec la requête label_values(node_uname_info, instance) pour permettre aux utilisateurs de sélectionner un serveur spécifique. Référencez-la dans vos requêtes avec {instance="$instance"}.

Pour les alertes, configurez des règles dans Grafana Alerting. Par exemple, déclenchez une alerte lorsque l’utilisation CPU dépasse 90 % pendant plus de 5 minutes ou lorsque l’espace disque disponible descend en dessous de 10 %. Configurez les canaux de notification pour envoyer les alertes vers Slack, e-mail ou PagerDuty afin d’assurer une réponse rapide aux incidents.

Résumé

Ce guide a couvert la mise en place d’une pile de surveillance avec Prometheus et Grafana, la création de panneaux avec des requêtes PromQL, l’utilisation de variables de template et la configuration des alertes. Avec cette base, vous pouvez étendre vos tableaux de bord pour surveiller des conteneurs Docker, des clusters Kubernetes et des services applicatifs.

Articles Connexes