Désactiver le préchargeur
Explorez, Apprenez et Maîtrisez

Documentation et Tutoriels - Hébergement Web Caramania.Ca

avec Nos Documentation et Tutoriels

Découvrez notre vaste bibliothèque de documentation et de tutoriels conçus pour vous aider à tirer le meilleur parti des services Caramania.Ca. Que vous soyez un débutant cherchant à configurer votre premier site web ou un utilisateur avancé désireux d'explorer des fonctionnalités plus complexes, nos guides pas à pas vous accompagneront à chaque étape. Simplifiez la gestion de vos services, trouvez des solutions rapides à vos problèmes, et approfondissez vos connaissances grâce à notre centre de ressources complet.

Documentation / Tutoriels Linux / Monitoring / Installer Grafana et Prometheus sur Ubuntu, Debian et AlmaLinux
Bahanos
09/01/2025
Intermédiaire
30 minutes

Prérequis

  • Un serveur Ubuntu/Debian ou AlmaLinux/Rocky Linux
  • Docker installé (méthode recommandée)
  • Accès root ou sudo

Prometheus collecte les métriques de vos serveurs et applications. Grafana les visualise dans des tableaux de bord élégants. Ensemble, ils forment une stack de monitoring professionnelle.

Architecture

  • Prometheus : Base de données de métriques (time-series)
  • Node Exporter : Agent qui collecte les métriques système
  • Grafana : Interface de visualisation et tableaux de bord

Méthode 1 : Installation avec Docker Compose

Créer la structure
mkdir -p /opt/monitoring/{prometheus,grafana}
cd /opt/monitoring
docker-compose.yml
version: '3.8'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention.time=30d'

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: unless-stopped
    ports:
      - "9100:9100"
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - '--path.rootfs=/rootfs'
      - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin_password
      - GF_USERS_ALLOW_SIGN_UP=false

volumes:
  prometheus_data:
  grafana_data:
prometheus/prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100']

  # Ajouter d'autres serveurs
  # - job_name: 'serveur-2'
  #   static_configs:
  #     - targets: ['192.168.1.10:9100']
Démarrer la stack
cd /opt/monitoring
docker compose up -d

# Vérifier
docker compose ps

Méthode 2 : Installation native

Installer Prometheus

Installation Prometheus
# Créer l'utilisateur
useradd --no-create-home --shell /bin/false prometheus

# Télécharger Prometheus
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz
tar xvf prometheus-2.48.0.linux-amd64.tar.gz

# Installer
mv prometheus-2.48.0.linux-amd64/prometheus /usr/local/bin/
mv prometheus-2.48.0.linux-amd64/promtool /usr/local/bin/
mkdir -p /etc/prometheus /var/lib/prometheus
mv prometheus-2.48.0.linux-amd64/consoles /etc/prometheus/
mv prometheus-2.48.0.linux-amd64/console_libraries /etc/prometheus/

chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus

Installer Node Exporter

Installation Node Exporter
# Créer l'utilisateur
useradd --no-create-home --shell /bin/false node_exporter

# Télécharger
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz

# Installer
mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
chown node_exporter:node_exporter /usr/local/bin/node_exporter

Installer Grafana

Installation Grafana (Ubuntu/Debian)
# Ajouter le dépôt
apt install -y apt-transport-https software-properties-common
wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list

# Installer
apt update
apt install -y grafana

# Démarrer
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
Installation Grafana (AlmaLinux/Rocky Linux)
# Ajouter le dépôt
cat <<EOF | tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF

# Installer
dnf install -y grafana

# Démarrer
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server

3. Configurer Grafana

  1. Accédez à http://VOTRE_IP:3000
  2. Connectez-vous (admin/admin ou le mot de passe défini)
  3. Changez le mot de passe admin
  4. Allez dans Configuration → Data Sources
  5. Cliquez sur Add data source → Prometheus
  6. URL : http://prometheus:9090 (Docker) ou http://localhost:9090
  7. Cliquez Save & Test

4. Importer un dashboard

  1. Allez dans Dashboards → Import
  2. Entrez l'ID 1860 (Node Exporter Full)
  3. Cliquez Load
  4. Sélectionnez votre source Prometheus
  5. Cliquez Import

Dashboards populaires à importer :

  • 1860 : Node Exporter Full (très complet)
  • 11074 : Node Exporter for Prometheus
  • 13659 : Docker and system monitoring
  • 7249 : Kubernetes cluster

5. Configurer les alertes

  1. Dans Grafana, allez dans Alerting → Contact points
  2. Ajoutez un canal (Email, Slack, Discord, Telegram...)
  3. Créez des Alert rules basées sur vos métriques
  4. Exemple : Alerte si CPU > 90% pendant 5 minutes

6. Ouvrir les ports

Pare-feu (Ubuntu/Debian)
# Grafana
ufw allow 3000/tcp

# Prometheus (optionnel, souvent en interne seulement)
# ufw allow 9090/tcp

# Node Exporter (pour scraping depuis un autre serveur)
# ufw allow 9100/tcp
Pare-feu (AlmaLinux/Rocky Linux)
# Grafana
firewall-cmd --permanent --add-port=3000/tcp

# Prometheus (optionnel, souvent en interne seulement)
# firewall-cmd --permanent --add-port=9090/tcp

# Node Exporter (pour scraping depuis un autre serveur)
# firewall-cmd --permanent --add-port=9100/tcp

firewall-cmd --reload

7. Monitorer plusieurs serveurs

prometheus.yml avec plusieurs cibles
scrape_configs:
  - job_name: 'node-exporters'
    static_configs:
      - targets:
        - 'localhost:9100'       # Serveur local
        - '192.168.1.10:9100'    # Serveur 2
        - '192.168.1.11:9100'    # Serveur 3
        labels:
          env: 'production'

8. Requêtes PromQL utiles

Exemples de requêtes
# CPU utilisé (%)
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# Mémoire utilisée (%)
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

# Espace disque utilisé (%)
(1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes)) * 100

# Trafic réseau entrant (Mbps)
rate(node_network_receive_bytes_total[5m]) * 8 / 1024 / 1024

# Uptime en jours
node_time_seconds - node_boot_time_seconds) / 86400

9. Sécuriser l'installation

  • Changez le mot de passe admin Grafana
  • Ne pas exposer Prometheus sur Internet
  • Utilisez un reverse proxy avec SSL pour Grafana
  • Limitez l'accès Node Exporter par IP
Stack de monitoring prête !

Vous avez maintenant une solution de monitoring professionnelle. Explorez les dashboards disponibles sur grafana.com/grafana/dashboards

💬 Écrivez-nous sur Messenger !