Tous les produits
Search
Centre de documentation

Elasticsearch:Utiliser SkyWalking et Elasticsearch pour mettre en œuvre une surveillance de bout en bout

Dernière mise à jour :Aug 21, 2026

SkyWalking est un système distribué de surveillance des performances d'applications (APM) et de traçage. Cette rubrique explique comment configurer SkyWalking pour utiliser un cluster Alibaba Cloud Elasticsearch V7.4.0 comme backend de stockage, afin d'offrir une observabilité de bout en bout pour vos applications distribuées.

Fonctionnement

SkyWalking collecte les données de télémétrie auprès des agents exécutés dans votre application, puis les transmet au serveur OAP (Observability Analysis Platform) de SkyWalking. L'OAP analyse et agrège les données avant de les stocker dans Elasticsearch. L'interface utilisateur de SkyWalking lit ensuite les données depuis Elasticsearch pour afficher les tableaux de bord et les traces.

SkyWalking prend en charge deux modes d'instrumentation :

  • Agents d'instrumentation automatique : instrumentez votre application automatiquement sans modifier le code source. Cette méthode prend en charge nativement un large éventail de frameworks et de bibliothèques.

  • Agents d'instrumentation manuelle : utilisez le SDK OpenTracing pour instrumenter les composants non couverts par l'instrumentation automatique, y compris les composants privés ou personnalisés. L'instrumentation automatique et manuelle peuvent être utilisées conjointement.

SkyWalking accepte les données provenant de multiples sources, notamment les agents SkyWalking pour divers langages, Zipkin v1, Zipkin v2, la télémétrie Istio et Envoy.

Cette rubrique couvre l'utilisation d'Alibaba Cloud Elasticsearch V7.4.0 comme backend de stockage pour SkyWalking. Pour envoyer les données d'une application Java directement à SkyWalking, consultez Utiliser SkyWalking pour envoyer les données d'une application Java . Pour obtenir la liste complète des middleware et composants pris en charge par SkyWalking, reportez-vous à la documentation Apache SkyWalking .

Prérequis

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

  • Un cluster Alibaba Cloud Elasticsearch V7.4.0. Consultez la rubrique Créer un cluster Alibaba Cloud Elasticsearch.

  • Un serveur Linux sur lequel JDK 1.8.0 ou une version ultérieure est installé. Il est recommandé d'utiliser une instance Elastic Compute Service (ECS). Consultez les rubriques Créer une instance ECS et Installer le JDK.

  • Les ports 8080, 10800, 11800 et 12800 du serveur Linux doivent être disponibles.

  • Le pare-feu et Security-Enhanced Linux (SELinux) doivent être désactivés sur le serveur Linux.

Si le JDK n'est pas correctement installé, les journaux SkyWalking indiqueront Java not found ou java-xxx: No such file or directory lors du démarrage du service.

Étape 1 : Télécharger et installer SkyWalking

  1. Téléchargez le package SkyWalking pour Elasticsearch 7 sur votre serveur Linux. Comme cette procédure utilise un cluster Elasticsearch V7.4.0, sélectionnez Binary Distribution for Elasticsearch 7 sur la page de téléchargement de SkyWalking. Exécutez la commande suivante pour télécharger le package :

    wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz
  2. Extrayez le package :

    tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gz
  3. Vérifiez les fichiers extraits :

    ls apache-skywalking-apm-bin-es7/

    Le résultat attendu est le suivant :

    agent
    bin
    config
    LICENSE
    licenses
    NOTICE
    oap-libs
    README.txt
    tools
    webapp

Étape 2 : Configurer SkyWalking pour se connecter au cluster Elasticsearch

Par défaut, SkyWalking utilise H2 comme backend de stockage, mais H2 ne prend pas en charge la persistance des données. Modifiez le backend de stockage pour utiliser Elasticsearch en éditant le fichier application.yml.

  1. Ouvrez le fichier application.yml situé dans le dossier config :

    cd apache-skywalking-apm-bin-es7/config/
    vi application.yml
  2. Localisez la section storage . Remplacez le sélecteur H2 par elasticsearch7 , puis configurez les paramètres de connexion :

    storage:
      selector: ${SW_STORAGE:elasticsearch7}
      elasticsearch7:
        nameSpace: ${SW_NAMESPACE:"skywalking-index"}
        clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es-cn-4591kzdzk000i****.public.elasticsearch.aliyuncs.com:9200}
        protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
       # trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
       # trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
        enablePackedDownsampling: ${SW_STORAGE_ENABLE_PACKED_DOWNSAMPLING:true} # Hour and Day metrics will be merged into minute index.
        dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
        user: ${SW_ES_USER:"elastic"}
        password: ${SW_ES_PASSWORD:"es_password"}
    Important

    Laissez les paramètres trustStorePath et trustStorePass commentés. Si vous les décommentez sans fournir un fichier keystore valide, une erreur NoSuchFileException: ../es_keystore.jks se produira.

    Voici la description des principaux paramètres :

    Paramètre Description
    selector Sélecteur du backend de stockage. Définissez-le sur elasticsearch7 .
    nameSpace Préfixe appliqué à tous les noms d'index créés dans le cluster Elasticsearch.
    clusterNodes Endpoint public de votre cluster Elasticsearch. Étant donné que SkyWalking et le cluster Elasticsearch résident dans des VPC différents, utilisez l'endpoint public. Pour trouver cet endpoint, consultez la rubrique Afficher les informations de base d'un cluster .
    user Nom d'utilisateur du cluster Elasticsearch. La valeur par défaut est elastic .
    password Mot de passe de l'utilisateur elastic , défini lors de la création du cluster. Pour réinitialiser le mot de passe, consultez la rubrique Réinitialiser le mot de passe d'accès d'un cluster Elasticsearch .
  3. (Facultatif) Modifiez l'adresse IP d'écoute ou les numéros de port dans la section core du fichier application.yml . Les valeurs par défaut sont le port 12800 pour l'API RESTful et le port 11800 pour gRPC. Cette procédure utilise les valeurs par défaut.

    core:
      selector: ${SW_CORE:default}
      default:
        # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate
        # Receiver: Receive agent data, Level 1 aggregate
        # Aggregator: Level 2 aggregate
        role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
        restHost: ${SW_CORE_REST_HOST:0.0.0.0}
        restPort: ${SW_CORE_REST_PORT:12800}
        restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
        gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
        gRPCPort: ${SW_CORE_GRPC_PORT:11800}
  4. (Facultatif) Modifiez le fichier webapp/webapp.yml pour changer le port de l'interface utilisateur ou l'endpoint du backend. Cette procédure utilise les valeurs par défaut.

    server:
      port: 8080
    collector:
      path: /graphql
      ribbon:
        ReadTimeout: 10000
        # Point to all backend's restHost:restPort, split by ,
        listOfServers: 127.0.0.1:12800

Étape 3 : Démarrer SkyWalking et vérifier les résultats

  1. Assurez-vous que le cluster Elasticsearch est en cours d'exécution avant de démarrer SkyWalking.

  2. Exécutez le script de démarrage depuis le répertoire bin :

    cd ../bin
    ./startup.sh

    En cas de réussite du démarrage, le message suivant s'affiche :

    SkyWalking OAP started successfully!
    SkyWalking Web Application started successfully!

    L'exécution du script startup.sh démarre à la fois SkyWalking OAP et l'interface utilisateur de SkyWalking.

  3. Accédez à l'interface utilisateur de SkyWalking en ouvrant l'URL http://<adresse IP du serveur Linux>:8080/ dans un navigateur.

    Lors de la première connexion de SkyWalking à Elasticsearch, le démarrage est plus lent que d'habitude car SkyWalking crée un grand nombre d'index dans le cluster. La page de l'interface utilisateur peut rester vide jusqu'à ce que la création des index soit terminée. Pour suivre la progression, consultez les journaux situés à l'emplacement <chemin d'installation de SkyWalking>/logs/skywalking-oap-server.log .

    Une fois l'accès établi, le tableau de bord de surveillance Rocketbot de SkyWalking s'affiche. Ce tableau de bord contient des menus de navigation tels que Dashboard, Topology et Trace. Dans la vue globale, il est normal que les panneaux de surveillance (Heatmap, Response Time Percentile, Global Brief, etc.) n'affichent aucune donnée. Cela indique que le service a démarré, mais qu'aucun agent d'application n'est encore connecté.

  4. Vérifiez que SkyWalking a créé ses index dans Elasticsearch. Connectez-vous à la console Kibana de votre cluster (consultez la rubrique Se connecter à la console Kibana), puis exécutez la commande suivante :

    GET _cat/indices?v

    Les résultats affichent une longue liste d'index dont les noms commencent par skywalking-index .

    Après exécution de la commande, des données d'index similaires à celles ci-dessous sont renvoyées, ce qui confirme que SkyWalking écrit correctement les données dans Elasticsearch.

    green  open   skywalking-index_all_percentile-20200408
    green  open   skywalking-index_endpoint_inventory
    green  open   skywalking-index_service_apdex-20200408
    green  open   skywalking-index_database_access_resp_time_month-202004
    green  open   skywalking-index_service_relation_client_cpm-20200408
    green  open   skywalking-index_database_access_sla_month-202004
    green  open   skywalking-index_service_relation_server_call_sla-20200408
    green  open   skywalking-index_endpoint_sla-20200408
    green  open   skywalking-index_instance_jvm_memory_noheap-20200408
    green  open   skywalking-index_service_relation_server_percentile-20200408
    green  open   skywalking-index_service_instance_relation_server_resp_time-20200408
    green  open   skywalking-index_profile_task_segment_snapshot-20200408
    green  open   skywalking-index_endpoint_relation_cpm-20200408
    green  open   skywalking-index_instance_jvm_old_gc_time-20200408
    green  open   skywalking-index_service_sla-20200408
    green  open   skywalking-index_top_n_database_statement-20200408
    green  open   skywalking-index_service_relation_client_call_sla-20200408
    green  open   skywalking-index_endpoint_percentile_month-202004
    green  open   apm-agent-configuration

Étapes suivantes

  • Pour connecter votre application à SkyWalking, ajoutez le fichier JAR de l'agent situé à l'emplacement apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar aux arguments de démarrage JVM de votre application.

  • Pour en savoir plus sur les middleware et composants pris en charge, consultez la documentation Apache SkyWalking.

  • Pour envoyer directement les données d'une application Java à SkyWalking, consultez la rubrique Utiliser SkyWalking pour envoyer les données d'une application Java .