Tous les produits
Search
Centre de documentation

Elasticsearch:Intégrer aliyun-timestream avec Prometheus et Grafana

Dernière mise à jour :Aug 19, 2026

aliyun-timestream est un moteur de séries temporelles développé par l'équipe Alibaba Cloud Elasticsearch en collaboration avec la communauté Elastic, intégrant les fonctionnalités des produits de séries temporelles de la communauté. Alibaba Cloud Elasticsearch offre une intégration transparente avec Prometheus et Grafana, prend en charge les API du langage de requête Prometheus (PromQL) et vous permet d'utiliser un index de séries temporelles directement comme source de données Prometheus dans Grafana. Cette configuration améliore les performances de stockage et d'interrogation des données de métriques de séries temporelles tout en réduisant les coûts. Ce guide explique comment utiliser le moteur aliyun-timestream pour s'intégrer à Prometheus et Grafana afin d'assurer l'observabilité cloud native.

Contexte

Le stockage local de Prometheus présente les limitations suivantes :

  • Absence de réplicas de données : si un nœud du cluster local tombe en panne, Prometheus devient inaccessible.

  • Stockage sur un seul nœud : à mesure que le volume de données augmente, vous pouvez rencontrer des goulots d'étranglement matériels qui empêchent la mise à l'échelle horizontale.

  • Aucune capacité de sauvegarde : une perte de données peut survenir en cas de défaillance du disque dur.

  • Coûts élevés du stockage sur disque local : absence de prise en charge de la séparation des données chaudes et froides.

Une configuration Prometheus à haute disponibilité nécessite une solution de stockage distant distribuée et hautement disponible. Le moteur aliyun-timestream pour Alibaba Cloud Elasticsearch fournit des capacités de stockage distant et d'interrogation pour Prometheus. S'appuyant sur l'architecture distribuée, élastique et hautement disponible d'Elasticsearch, qui prend également en charge les sauvegardes et la séparation des données chaudes et froides, aliyun-timestream constitue un excellent choix pour le stockage distant de Prometheus.

La figure suivante illustre l'intégration d'Alibaba Cloud Elasticsearch avec Prometheus et Grafana.Architecture ES+Prometheus+Grafana

Voici le principe de fonctionnement :

  1. Prometheus collecte les données auprès de divers exportateurs.

  2. Prometheus utilise la fonctionnalité d'écriture distante (remote write) pour envoyer les données collectées à Alibaba Cloud Elasticsearch.

  3. Vous pouvez consulter les données dans Kibana ou Grafana.

    Remarque

    Lorsque vous utilisez Grafana pour accéder aux données dans Alibaba Cloud Elasticsearch, vous pouvez utiliser soit la source de données Elasticsearch native, soit une source de données Prometheus. La source de données Prometheus vous permet d'interroger directement les données dans Elasticsearch à l'aide de PromQL.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster Alibaba Cloud Elasticsearch répondant à l'une des exigences de version suivantes :

    • Version du cluster V7.10, version du noyau V1.8.0 ou ultérieure

    • Version du cluster V7.16 ou ultérieure, version du noyau V1.7.0 ou ultérieure

Pour obtenir des instructions sur la création d'un cluster, consultez Créer un cluster Alibaba Cloud Elasticsearch.

Procédure

  1. Étape 1 : Préparer l'environnement

  2. Étape 2 : Télécharger et démarrer node_exporter

  3. Étape 3 : Télécharger, configurer et démarrer Prometheus

  4. Étape 4 : Télécharger, démarrer et configurer un tableau de bord Grafana

Étape 1 : Préparer l'environnement

  1. Créez un cluster Alibaba Cloud Elasticsearch de l'édition commerciale généraliste, version 7.16.

    Pour plus d'informations, consultez Créer un cluster Alibaba Cloud Elasticsearch.

  2. Créez une instance ECS dans le même VPC que l'instance Elasticsearch créée à l'étape 1, et sélectionnez Linux comme système d'exploitation.

    Pour plus de détails sur la création d'une instance ECS, consultez Créer une instance avec un lancement personnalisé. Cette instance ECS est utilisée pour accéder au cluster Alibaba Cloud Elasticsearch et déployer Prometheus et Grafana.

  3. Créez un index de séries temporelles dans Elasticsearch pour stocker les données provenant de Prometheus.

    1. Connectez-vous à la console Kibana de votre cluster Alibaba Cloud Elasticsearch.

      Pour plus d'informations, consultez Se connecter à la console Kibana.

    2. Dans le volet de navigation de gauche, cliquez sur l'icône Icône de développement et choisissez Management > Dev Tools.

    3. Dans la console, exécutez la commande PUT _time_stream/prom_index pour créer un index de séries temporelles nommé prom_index.

Étape 2 : Télécharger et démarrer node_exporter

node_exporter collecte diverses métriques liées au matériel et au noyau et les expose pour que Prometheus puisse les récupérer. Pour plus d'informations, consultez node_exporter.

  1. Connectez-vous à l'instance ECS.

    Pour plus d'informations, consultez Se connecter à une instance Linux à l'aide d'un mot de passe ou d'une clé.

    Remarque

    Cette rubrique utilise un utilisateur non root pour toutes les opérations.

  2. Téléchargez le package d'installation de node_exporter.

    Ce guide utilise node_exporter 1.3.1 à titre d'exemple. Exécutez la commande suivante pour le télécharger :

    wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
  3. Décompressez le package d'installation et démarrez node_exporter.

    tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
    cd node_exporter-1.3.1.linux-amd64
    ./node_exporter

Étape 3 : Télécharger, configurer et démarrer Prometheus

  1. Connectez-vous à l'instance ECS.

  2. Dans le répertoire personnel, téléchargez le package d'installation de Prometheus.

    Ce guide utilise Prometheus 2.36.2 à titre d'exemple. Exécutez la commande suivante pour le télécharger :

    cd ~
    wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-amd64.tar.gz
  3. Décompressez le package d'installation de Prometheus.

    tar xvfz prometheus-2.36.2.linux-amd64.tar.gz
  4. Dans le fichier prometheus.yml, configurez node_exporter et remote_write.

    cd prometheus-2.36.2.linux-amd64
    vim prometheus.yml

    Le code suivant fournit un exemple de configuration :

    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
        - targets: ['localhost:9090']
    
      # Configure node_exporter.
      - job_name: "node"
        static_configs:
        - targets: ["127.0.0.1:9100"]
    
    # Configure remote_write. Ensure that Prometheus can access the Elasticsearch cluster.
    remote_write:
      - url: "http://xxx:9200/_time_stream/prom_write/prom_index"
        basic_auth:
         username: elastic
         password: xxxx

    Paramètre

    Description

    node_exporter

    Configurez les informations de connexion pour node_exporter. Définissez targets sur l'adresse d'accès et le port de node_exporter.

    Étant donné que ce guide utilise la même instance ECS pour déployer Prometheus et node_exporter, l'adresse IP est 127.0.0.1 et le port par défaut 9100 est utilisé.

    remote_write

    Les paramètres de connexion pour l'index de séries temporelles dans votre cluster Alibaba Cloud Elasticsearch. Vous devez configurer les paramètres de base suivants. Pour plus d'informations sur les paramètres avancés, consultez remote_write.

    • url : L'URL du endpoint pour l'index de séries temporelles, au format suivant : http://<endpoint_public_ou_interne_de_votre_cluster_Elasticsearch>:9200/_time_stream/prom_write/<votre_index_de_series_temporelles>.

      Remarque
      • Endpoint public ou interne de votre cluster Elasticsearch : Retrouvez cette information sur la page Basic Information de la console de votre cluster Alibaba Cloud Elasticsearch. Si l'instance ECS où Prometheus est déployé se trouve dans le même VPC que votre cluster Elasticsearch, utilisez l'endpoint interne, comme dans cet exemple. Sinon, vous devez utiliser l'endpoint public et configurer une liste d'autorisation d'adresses IP publiques. Pour plus d'informations, consultez Gérer les listes d'autorisation d'adresses IP.

      • <votre_index_de_series_temporelles> : Le nom de l'index de séries temporelles qui reçoit les données de Prometheus. Vous devez créer cet index au préalable. Ce guide utilise prom_index à titre d'exemple.

    • username : Le nom d'utilisateur pour accéder à l'index de séries temporelles. La valeur par défaut est elastic. Vous pouvez également utiliser un utilisateur personnalisé, mais vous devez vous assurer que l'utilisateur dispose des autorisations nécessaires pour accéder et gérer l'index de séries temporelles. Pour plus d'informations, consultez Gérer le contrôle d'accès avec les rôles Elasticsearch X-Pack.

    • password : Le mot de passe de l'utilisateur spécifié. Le mot de passe du compte elastic est défini lors de la création du cluster. Si vous l'avez oublié, vous pouvez le réinitialiser. Pour plus d'informations, consultez Réinitialiser le mot de passe d'un cluster Elasticsearch.

  5. Démarrez Prometheus.

    ./prometheus
  6. Vérifiez que les données Prometheus sont envoyées à l'index de séries temporelles dans Elasticsearch.

    Dans la console Kibana de votre cluster Alibaba Cloud Elasticsearch, exécutez les commandes suivantes pour vérifier :

    • Vérifiez si l'index prom_index contient des données.

      GET _cat/indices/prom_index?v&s=i

      Résultat attendu :

      PUT _time_stream/prom_index
      
      GET _cat/indices/prom_index?v&s=i
      
      health status index                              uuid                pri rep docs.count docs.deleted store.size pri.store.size
      green  open   .ds-prom_index-2022.06.29-000001 U-y2z4j4RyWlKmxxx   1   1        178            0      5.6kb          226b
    • Vérifiez que vous pouvez interroger et consulter les données.

      GET prom_index/_search

      Résultat attendu :

      PUT _time_stream/prom_index
      GET _cat/indices/prom_index?v&s=i
      GET prom_index/_search
      
      {
        "took" : 354,
        "timed_out" : false,
        "_shards" : {
          "total" : 1,
          "successful" : 1,
          "skipped" : 0,
          "failed" : 0
        },
        "hits" : {
          "total" : {
            "value" : 3036,
            "relation" : "eq"
          },
          "max_score" : 1.0,
          "hits" : [
            {
              "_index" : ".ds-prom_index-2022.06.29-000001",
              "_type" : "_doc",
              "_id" : "kBXXroEBMnT0XiRApR78",
              "_score" : 1.0,
              "_source" : {
                "labels" : {
                  "instance" : "localhost:9090",
                  "job" : "prometheus"
                },
                "metrics" : {
                  "prometheus_remote_storage_exemplars_in_total" : 0.0,
                  "prometheus_target_scrape_pools_failed_total" : 0.0,
                  "prometheus_tsdb_data_replay_duration_seconds" : 6.66077E-4,
                  "prometheus_tsdb_wal_completed_pages_total" : 1.0,
                  "prometheus_tsdb_lowest_timestamp" : 1.656495558477E12,
                  "prometheus_tsdb_head_gc_duration_seconds_count" : 0.0,
                  "prometheus_tsdb_out_of_bound_samples_total" : 0.0,
                  "prometheus_tsdb_isolation_high_watermark" : 30.0,
                  "prometheus_tsdb_storage_blocks_bytes" : 0.0,
                  "up" : 1.0,
                  "go_gc_duration_seconds_sum" : 9.66942E-4,
                  "process_cpu_seconds_total" : 2.96,
                  "prometheus_tsdb_wal_writes_failed_total" : 0.0,
                  "prometheus_tsdb_head_max_time_seconds" : 1.656495768E9,
                  "prometheus_tsdb_head_chunks_created_total" : 455.0,
                  "prometheus_sd_kuma_fetch_duration_seconds_sum" : 0.0
                }
              }
            }
          ]
        }
      }

Étape 4 : Téléchargez, démarrez et configurez Grafana

  1. Connectez-vous à l'instance ECS.

    Pour plus d'informations, consultez la rubrique Connexion à une instance Linux à l'aide d'un mot de passe ou d'une clé.

  2. Dans le répertoire personnel, téléchargez le package d'installation de Grafana.

    Ce guide utilise Grafana 9.0.2 à titre d'exemple. Exécutez la commande suivante pour le télécharger :

    cd ~
    wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.2.linux-amd64.tar.gz
  3. Décompressez le package d'installation de Grafana et démarrez Grafana.

    tar xvfz grafana-enterprise-9.0.2.linux-amd64.tar.gz
    cd grafana-9.0.2
    ./bin/grafana-server
  4. Dans un navigateur web, accédez à http://<your_ECS_public_IP>:3000 pour ouvrir la page de connexion à Grafana. Saisissez votre nom d'utilisateur et votre mot de passe pour accéder à la console Grafana.

    • Lors de votre première connexion, utilisez admin comme nom d'utilisateur et mot de passe. Vous serez invité à modifier le mot de passe.

    • Pour trouver l'adresse IP publique de votre instance ECS, accédez à la console ECS et repérez l'adresse dans la colonne IP Address correspondant à votre instance.

    • Le port par défaut de Grafana est 3000. Pour accéder à ce port, ajoutez une règle entrante au groupe de sécurité de votre instance ECS. Définissez le port de Destination sur 3000 et la Source sur l'adresse IP de votre client. Pour plus d'informations, consultez la rubrique Ajout d'une règle de groupe de sécurité.

  5. Ajoutez une source de données Prometheus dans Grafana.

    1. Dans le volet de navigation de gauche de la console Grafana, sélectionnez Settings icon > Data sources.

    2. Sous l'onglet Data sources, cliquez sur Add data source.

    3. Dans la liste Time series databases, cliquez sur Prometheus.

    4. Sous l'onglet Settings, configurez la source de données Prometheus.

      Le tableau suivant décrit les paramètres à configurer pour cet exemple.

      Parameter

      Description

      URL

      L'URL du endpoint pour l'index de séries temporelles, au format suivant : http://<public_or_internal_endpoint_of_your_Elasticsearch_cluster>:9200/_time_stream/prom/<your_time_series_index>.

      Remarque
      • Public or internal endpoint of your Elasticsearch cluster : retrouvez cette information sur la page Basic Information de la console de votre cluster Alibaba Cloud Elasticsearch. Si l'instance ECS où Prometheus est déployé se trouve dans le même VPC que votre cluster Elasticsearch, utilisez le endpoint interne, comme dans cet exemple. Sinon, vous devez utiliser le endpoint public et configurer une liste blanche d'adresses IP publiques. Pour plus d'informations, consultez la rubrique Gestion des listes blanches d'adresses IP.

      • <your_time_series_index> : le nom de l'index de séries temporelles qui reçoit les données de Prometheus. Vous devez créer cet index au préalable. Ce guide utilise prom_index à titre d'exemple.

      Basic auth

      Active ou désactive l'authentification de base pour le cluster. Lorsqu'elle est activée, vous devez fournir un nom d'utilisateur et un mot de passe.

      User

      Le nom d'utilisateur permettant d'accéder à l'index de séries temporelles. La valeur par défaut est elastic. Vous pouvez également utiliser un utilisateur personnalisé, mais vous devez vous assurer que cet utilisateur dispose des autorisations requises pour accéder à l'index de séries temporelles et le gérer. Pour plus d'informations, consultez la rubrique Gestion du contrôle d'accès avec les rôles Elasticsearch X-Pack.

      Password

      Le mot de passe de l'utilisateur spécifié. Le mot de passe du compte elastic est défini lors de la création du cluster. Si vous l'avez oublié, vous pouvez le réinitialiser. Pour plus d'informations, consultez la rubrique Réinitialisation du mot de passe d'un cluster Elasticsearch.

    5. Cliquez sur Save & test.

      Si la configuration est réussie, un message Data source is working s'affiche.

  6. Dans Grafana, créez un tableau de bord pour la source de données Prometheus.

    1. Dans le volet de navigation de gauche de la console Grafana, sélectionnez Dashboard > New dashboard.

    2. Cliquez sur Add a new panel.

    3. Sélectionnez la data source, choisissez une plage de temps, puis cliquez sur Run queries.

      Par exemple, définissez Data source sur test_datastream, définissez Metric sur go_gc_duration_seconds, et définissez la plage de temps sur Last 2 days.

    4. Cliquez sur Save dans le coin supérieur droit pour enregistrer le tableau de bord.

  7. Dans Grafana, importez le tableau de bord par défaut node_exporter et connectez-le à votre source de données Prometheus pour surveiller les métriques.

    1. Dans le volet de navigation de gauche de la console Grafana, sélectionnez Dashboard > Import.

    2. Dans la zone de texte Import via grafana.com, saisissez l'URL du tableau de bord https://grafana.com/grafana/dashboards/1860 ou l'ID 1860.

    3. Cliquez sur Load.

    4. Sur la page de configuration, dans la liste déroulante de la source de données Prometheus, sélectionnez la source de données que vous avez créée.

    5. Cliquez sur Import.

    6. Sur le tableau de bord, sélectionnez une plage de temps dans le coin supérieur droit pour afficher les métriques de cette période.

      Tableau de bord de surveillance des métriques

      Remarque

      Pour obtenir des informations plus détaillées sur Grafana, consultez la documentation Grafana.

Références