Tous les produits
Search
Centre de documentation

Elasticsearch:Analysez les journaux de requêtes lentes Redis en temps réel à l'aide d'Alibaba Cloud Elasticsearch et de Rsbeat

Dernière mise à jour :Aug 19, 2026

Des requêtes lentes excessives ou de longue durée dans Redis (par exemple, 20 secondes) peuvent bloquer la file d'attente des opérations monothread et entraîner une indisponibilité du service. Utilisez Alibaba Cloud Elasticsearch et Rsbeat pour collecter et analyser les journaux de requêtes lentes Redis en temps réel, afin de détecter et de résoudre rapidement les problèmes de performance.

Informations générales

Rsbeat collecte les journaux de requêtes lentes Redis et les envoie vers Elasticsearch pour leur visualisation et leur analyse dans la console Kibana. Les termes suivants sont utilisés dans cette rubrique :

  • Elasticsearch : moteur de recherche et d'analyse distribué en temps réel basé sur Lucene, publié sous licence Apache. Il permet de stocker, d'interroger et d'analyser de grands ensembles de données en quasi-temps réel.

    Alibaba Cloud Elasticsearch est compatible avec les fonctionnalités open source d'Elasticsearch telles que Security, Machine Learning, Graph et Application Performance Monitoring (APM). Il est disponible dans des versions telles que 5.5.3, 6.3.2, 6.7.0, 6.8.0 et 7.4.0. Il prend en charge le plug-in commercial X-Pack et fournit une gestion des autorisations de niveau entreprise, une surveillance et des alertes de sécurité, ainsi que des rapports automatisés. Cet exemple utilise Alibaba Cloud Elasticsearch. Pour plus d'informations, consultez Présentation d'Alibaba Cloud Elasticsearch

  • Rsbeat : expéditeur de données utilisé pour collecter et analyser les journaux de requêtes lentes Redis. Pour plus d'informations, consultez la documentation officielle de Rsbeat.

  • Redis : magasin de structures de données en mémoire open source. Il peut servir de base de données, de cache et de middleware de messagerie. Pour plus d'informations, consultez la documentation officielle de Redis.

    ApsaraDB for Redis est compatible avec les protocoles Redis natifs et prend en charge le stockage hybride mémoire-disque avec une architecture de standby actif hautement disponible. Il peut évoluer pour répondre aux exigences des opérations de lecture/écriture haute performance. Cet exemple utilise ApsaraDB for Redis. Pour plus d'informations, consultez Présentation d'ApsaraDB for Redis

Procédure

  1. Effectuez les préparatifs

    Créez un cluster Alibaba Cloud Elasticsearch, une instance ApsaraDB for Redis et une instance Elastic Compute Service (ECS) dans le même réseau privé virtuel (VPC).

  2. Étape 1 : Configurez les paramètres de requête lente pour l'instance ApsaraDB for Redis

    Configurez les conditions de génération des journaux de requêtes lentes Redis et spécifiez le nombre maximal de journaux de requêtes lentes à enregistrer selon vos besoins.

  3. Étape 2 : Installez et configurez Rsbeat

    Installez Rsbeat sur l'instance ECS et spécifiez l'instance ApsaraDB for Redis et le cluster Alibaba Cloud Elasticsearch dans le fichier de configuration de Rsbeat.

  4. Étape 3 : Analysez les journaux de requêtes lentes Redis dans la console Kibana à l'aide de graphiques

    Consultez les détails des journaux de requêtes lentes Redis dans la console Kibana du cluster Alibaba Cloud Elasticsearch et analysez les journaux en fonction de vos besoins métier.

Effectuez les préparatifs

  1. Créez un cluster Alibaba Cloud Elasticsearch et activez la fonctionnalité Auto Indexing pour le cluster.

    Pour plus d'informations, consultez Créer un cluster Alibaba Cloud Elasticsearch et Configurer le fichier YML. Cet exemple utilise un cluster Elasticsearch V6.7 de l'édition Standard.

  2. Créez une instance ApsaraDB for Redis.

    Pour plus d'informations, consultez Étape 1 : Créer une instance ApsaraDB for Redis. Cet exemple utilise une instance ApsaraDB for Redis V5.0 de l'édition Community. Cette instance réside dans le même VPC que le cluster Alibaba Cloud Elasticsearch, ce qui permet d'accéder au cluster Elasticsearch via un réseau interne.

  3. Créez une instance ECS.

    Pour plus d'informations, consultez Créer une instance à l'aide de l'assistant. Cet exemple utilise une instance ECS exécutant une image CentOS 7.6 64 bits. Cette instance réside dans le même VPC que l'instance ApsaraDB for Redis et le cluster Alibaba Cloud Elasticsearch.

  4. Configurez une liste d'autorisation d'adresses IP pour l'accès à l'instance ApsaraDB for Redis.

    Ajoutez l'adresse IP privée de l'instance ECS à une liste d'autorisation d'adresses IP de l'instance ApsaraDB for Redis. Pour plus d'informations, consultez Configurer les listes d'autorisation.

Étape 1 : Configurez les paramètres de requête lente pour l'instance ApsaraDB for Redis

  1. Connectez-vous à la console ApsaraDB for Redis.

  2. Dans la barre de navigation supérieure, sélectionnez une région.

  3. Sur la page Clusters, cliquez sur l'ID de l'instance cible.

  4. Dans le volet de navigation de gauche, cliquez sur Parameters.

  5. Sous l'onglet System Parameters, repérez les paramètres slowlog-log-slower-than et slowlog-max-len. Modifiez ensuite ces paramètres selon vos besoins.

    Paramètre

    Description

    Exemple

    slowlog-log-slower-than

    Si le temps d'exécution d'une commande dépasse la valeur de ce paramètre, la commande est définie comme une requête lente et enregistrée en tant que journal de requête lente. Le temps d'exécution n'inclut pas le temps passé en file d'attente. Unité : microsecondes. Valeur par défaut : 10000 (10 millisecondes).

    Important

    Si vous définissez ce paramètre sur un nombre négatif, ApsaraDB for Redis n'enregistre pas les requêtes lentes en tant que journaux de requêtes lentes. Si vous définissez ce paramètre sur 0, ApsaraDB for Redis enregistre toutes les commandes.

    Dans cet exemple, ce paramètre est défini sur 20000. Cette valeur indique qu'une commande dont le temps d'exécution dépasse 20 millisecondes est enregistrée en tant que journal de requête lente.

    slowlog-max-len

    Le nombre maximal de commandes de requête lente pouvant être enregistrées en tant que journaux de requêtes lentes. Si le nombre de commandes enregistrées dépasse la valeur de ce paramètre, ApsaraDB for Redis supprime les journaux de requêtes lentes les plus anciens.

    Dans cet exemple, ce paramètre est défini sur 100. Cette valeur indique qu'ApsaraDB for Redis enregistre les 100 dernières commandes de requête lente en tant que journaux de requêtes lentes.

Étape 2 : Installez et configurez Rsbeat

  1. Connectez-vous à l'instance ECS.

    Pour plus d'informations, consultez Se connecter à une instance ECS.

  2. Téléchargez et décompressez le package de Rsbeat.

    Cet exemple utilise Rsbeat 5.3.2.

    wget https://github.com/Yourdream/rsbeat/archive/master.zip
    unzip master.zip
  3. Modifiez les configurations de Rsbeat.

    1. Exécutez la commande suivante pour ouvrir le fichier rsbeat.yml :

      cd rsbeat-master
      vim rsbeat.yml
    2. Modifiez les configurations dans les sections rsbeat et output.elasticsearch selon les instructions suivantes et enregistrez les modifications.

      L'exemple suivant montre la configuration rsbeat.yml :

      ################################ Rsbeat ######################################
      
      rsbeat:
        # Defines how often an event is sent to the output
        period: 1s
        redis: ["r-xxx.redis.rds.aliyuncs.com:6379"]
        slowerThan: 100
      
      #================================ General =====================================
      
      # The name of the shipper that publishes the network data. It can be used to group
      # all the transactions sent by a single shipper in the web interface.
      #name:
      
      # The tags of the shipper are included in their own field with each
      # transaction published.
      #tags: ["service-X", "web-tier"]
      
      # Optional fields that you can specify to add additional information to the
      # output.
      #fields:
      #  env: staging
      
      #============================== Outputs =======================================
      
      # Configure what outputs to use when sending the data collected by the beat.
      # Multiple outputs may be used.
      
      #-------------------------- Elasticsearch output ------------------------------
      output.elasticsearch:
        # Array of hosts to connect to.
        hosts: ["es-cn-xxx.elasticsearch.aliyuncs.com:9200"]
      
        # Optional protocol and basic auth credentials.
        #protocol: "https"
        username: "elastic"
        password: "xxx"
      
        # Overwrite existing template
        template.overwrite: true
      Tableau 1. Configurations dans la section rsbeat

      Paramètre

      Description

      period

      L'intervalle auquel Rsbeat envoie les journaux de requêtes lentes Redis au cluster Elasticsearch.

      redis

      L'endpoint utilisé pour se connecter à l'instance ApsaraDB for Redis. Pour plus d'informations, consultez Afficher les endpoints.

      Important

      Le mot de passe utilisé pour accéder à l'instance ApsaraDB for Redis n'est pas spécifié dans le fichier de configuration de Rsbeat. Pour permettre à Rsbeat d'accéder à l'instance ApsaraDB for Redis, vous devez activer l'accès sans mot de passe après avoir obtenu l'endpoint. Pour plus d'informations, consultez Activer l'accès sans mot de passe.

      slowerThan

      Le temps nécessaire pour envoyer la commande config set slowlog-log-slower-than au serveur Redis. Unité : microsecondes.

      Tableau 2. Configurations dans la section output.elasticsearch

      Paramètre

      Description

      hosts

      L'endpoint utilisé pour accéder au cluster Elasticsearch. Vous pouvez obtenir l'endpoint sur la page Basic Information du cluster Elasticsearch. Pour plus d'informations, consultez Afficher les informations de base d'un cluster.

      username

      Le nom d'utilisateur utilisé pour accéder au cluster Elasticsearch. Le nom d'utilisateur par défaut est elastic.

      password

      Le mot de passe utilisé pour accéder au cluster Elasticsearch. Le mot de passe est spécifié lors de la création du cluster Elasticsearch. Si vous oubliez le mot de passe, vous pouvez le réinitialiser. Pour plus d'informations sur les précautions et les procédures de réinitialisation du mot de passe, consultez Réinitialiser le mot de passe d'accès pour un cluster Elasticsearch.

      template.overwrite

      Indique si le modèle d'index créé par Rsbeat portant le même nom que le modèle d'index du cluster Elasticsearch remplace le modèle d'index du cluster Elasticsearch. Valeur par défaut : true.

  4. Démarrez le service Rsbeat.

    ./rsbeat.linux.amd64 -c rsbeat.yml -e -d "*"

Étape 3 : Analysez les journaux de requêtes lentes Redis dans la console Kibana à l'aide de graphiques

  1. Connectez-vous à la console Kibana du cluster Elasticsearch.

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

  2. Créez un modèle d'index.

    1. Dans le volet de navigation de gauche, cliquez sur Management.

    2. Dans la section Kibana, cliquez sur Index Patterns.

    3. Cliquez sur Create index pattern.

    4. Dans la section qui s'affiche, saisissez un nom de modèle d'index dans le champ Index pattern et cliquez sur Next step.

    5. Spécifiez Time Filter field name. Dans cette rubrique, ce paramètre est défini sur @timestamp.

    6. Cliquez sur Create index pattern.

  3. Consultez les détails des journaux de requêtes lentes Redis.

    1. Dans le volet de navigation de gauche, cliquez sur Discover.

    2. Dans la partie gauche de la page Discover, sélectionnez rsbeat-* dans la liste déroulante située sous Add a filter.

    3. Dans le coin supérieur droit de la page, sélectionnez une plage de temps et consultez les détails des journaux de requêtes lentes Redis pendant cette période.

      Sur la page Discover, sélectionnez rsbeat-* comme modèle d'index et définissez la plage de temps sur Last 24 hours pour afficher les enregistrements de journaux de requêtes lentes de cette période. La page affiche le nombre de résultats correspondants, un histogramme montrant la distribution temporelle et une liste d'entrées de journal contenant des champs tels que cmd, ipPort, slowId, key et duration.

  4. Enregistrez les 10 clés présentant le plus grand nombre de journaux de requêtes lentes Redis et classez-les par ordre décroissant.

    1. Dans le volet de navigation de gauche, cliquez sur Visualize.

    2. Sur la page Visualize, cliquez sur l'icône 添加图标.

    3. Dans la boîte de dialogue New Visualization, cliquez sur Pie.

    4. Dans la section From a New Search, Select Index, cliquez sur rsbeat-*.

    5. Configurez les paramètres dans les sections Metrics et Buckets.

      Configuration Metrics :

      • Slice Size : Définissez Aggregation sur Count et Custom Label sur slowlog count.

      Configuration Buckets :

      • Split Slices : Définissez Aggregation sur Terms, Field sur key, Order By sur metric: slowlog count, Order sur Descend et Size sur 10.

    6. Cliquez sur l'icône 运行图标 pour afficher le résultat.

      统计结果

      Remarque

      Pour plus d'informations sur les notes d'utilisation de la console Kibana, consultez Guide d'utilisation de Kibana.