Relution-Surveillance avec Grafana (optionnel)

Introduction

Relution fournit une variété de métriques qui peuvent être visualisées à l’aide de Grafana.
Ci-dessous, nous avons fourni une configuration de base pour une installation Docker et deux tableaux de bord.
Ces configurations peuvent être adaptées en fonction de vos propres besoins.

Prometheus, Grafana et les tableaux de bord individuels ne sont pas maintenus par Relution Support.

Configuration

Fichiers et répertoires nécessaires

Comme indiqué, les configurations sont disponibles et peuvent être téléchargées ici →.

Fichiers

  • docker-compose.yml
    • Contient les configurations des conteneurs Docker Prometheus et Grafana.
  • prometheus.yml
    • Contient la configuration de Prometheus.
  • .env
    • Contient les variables GF_SECURITY_ADMIN_USER et GF_SECURITY_ADMIN_PASSWORD.
      Pour un fonctionnement productif, il est recommandé de changer le mot de passe.

Sous-dossier

  • Tableaux de bord Exemples de tableaux de bord : Les fichiers de configuration pour deux exemples de tableaux de bord sont inclus. Ces tableaux de bord sont automatiquement importés dans le conteneur Grafana Docker.

  • Provisionnement Configurations de base : Les fichiers de configuration pour la source de données Prometheus et les deux exemples de tableaux de bord sont inclus. Ces configurations peuvent être adaptées selon les besoins.

Intégration du fichier docker-compose.yml

Le fichier docker-compose.yml décrit ici peut être utilisé de deux manières :

  • Autonome Le fichier peut être utilisé en tant que fichier autonome.

  • Contenu Le contenu du fichier peut être inclus dans un fichier docker-compose.yml existant.

Dans notre exemple, le contenu du fichier est inclus dans le fichier docker-compose.yml existant.
Dans ce cas, il est important que les fichiers et les répertoires des volumes soient à l’endroit approprié et aient les permissions correctes.
Dans notre docker-compose.yml, les conteneurs mariadb, Relution et nginx sont présents, donc les lignes deux à quatre n’ont été insérées que pour l’orientation.

services : # déjà présent
  # mariadb : déjà présent
  # relution : déjà présent
  # nginx : déjà présent

  prometheus :
    image : prom/prometheus:${DOCKER_PROMETHEUS:-latest}
    volumes :
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    réseaux :
      relution-network :
    ports :
      - "${PORT_PROMETHEUS:-9090}:9090"
    expose :
      - "9090"
    logging :
      driver : "json-file"
      options :
        max-size : "${DOCKER_PROMETHEUS_LOGSIZE:-8m}"
        max-file : "4"
        compress : "true"

  grafana :
    image : grafana/grafana:${DOCKER_GRAFANA:-latest}
    volumes :
      - ./provisioning:/etc/grafana/provisioning
      - ./dashboards:/var/lib/grafana/dashboards
    depends_on :
      - prometheus
    environnement :
      # définir l'espace réservé dans le tableau de bord, au nom réel de la source de données
      - "DS_PROMETHEUS=Prometheus"
      # définir l'utilisateur administrateur par défaut de grafana
      - "GF_SECURITY_ADMIN_USER=${GF_SECURITY_ADMIN_USER}"
      # définir le mot de passe de l'administrateur par défaut de grafana
      - "GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD}"
    réseaux :
      relution-network :
    ports :
      - "${PORT_GRAFANA:-3000}:3000"
    expose :
      - "3000"
    logging :
      driver : "json-file"
      options :
        max-size : "${DOCKER_GRAFANA_LOGSIZE:-8m}"
        max-file : "4"
        compress : "true"

Dans le fichier docker-compose.yml, les ports pour Prometheus et Grafana sont définis à 9090 et 3000 respectivement.
Cette section peut être insérée dans le fichier docker-compose.yml existant pour l’exemple.

Ajustement du fichier .env

Pour des raisons de sécurité, il est recommandé d’ajuster le paramètre password.

GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=motdepasse

Paramètres de la base de données prometheus.yml

global :
  # Intervalle d'analyse par défaut
  scrape_interval : 15s

scrape_configs :
  # Job pour récupérer les métriques Prometheus
  - job_name : "prometheus"
    scrape_interval : 5s
    static_configs :
      - targets : ["localhost:9090"]

  - job_name : "relution"
    # Job pour récupérer les métriques de l'application
    metrics_path : "/actuator/prometheus"
    scrape_interval : 5s
    static_configs :
      # Appeler le docker host à l'intérieur du conteneur
      - targets : ["relution:8099"]

Dans notre configuration concrète, la dernière ligne doit contenir le nom du conteneur et le port 8099, dans ce cas relution:8099.
Avec la commande docker ps, le nom et le port du conteneur utilisé peuvent être vérifiés et ajustés si nécessaire.
Lorsque les conteneurs sont téléchargés et démarrés avec docker compose down ou docker compose up -d, l’interface Grafana est accessible sous IP du serveur et port 3000.
Deux tableaux de bord sont maintenant disponibles.

Tableaux de bord

Tableau de bord du serveur Relution :
Tableau de bord Grafana

Tableau de bord par défaut de Spring Boot :
Grafana Dashboard