Todos os produtos
Search
Central de documentação

Elasticsearch:Use SkyWalking e Elasticsearch para implementar monitoramento de ponta a ponta

Última atualização: Aug 21, 2026

O SkyWalking é um sistema de rastreamento e monitoramento de desempenho de aplicações (APM) distribuídas. Este tópico descreve como configurar o SkyWalking para usar um cluster Alibaba Cloud Elasticsearch V7.4.0 como backend de armazenamento e permitir a observabilidade de ponta a ponta nas suas aplicações distribuídas.

Como funciona

O SkyWalking coleta dados de telemetria de agentes em execução na sua aplicação e os encaminha para o servidor SkyWalking OAP (Observability Analysis Platform). O OAP analisa e agrega esses dados e os armazena no Elasticsearch. A interface do SkyWalking lê as informações do Elasticsearch para renderizar painéis e rastreamentos.

O SkyWalking oferece suporte a dois modos de instrumentação:

  • Agentes de instrumentação automática: Instrumentam sua aplicação automaticamente, sem modificar o código-fonte. Oferecem suporte nativo a uma ampla variedade de frameworks e bibliotecas.

  • Agentes de instrumentação manual: Usam o SDK OpenTracing para instrumentar componentes não cobertos pelos agentes automáticos, incluindo componentes privados ou personalizados. É possível combinar a instrumentação automática com a manual.

O SkyWalking aceita dados de múltiplas fontes, incluindo agentes SkyWalking para diversas linguagens, Zipkin v1, Zipkin v2, telemetria do Istio e Envoy.

Este tópico aborda o uso do Alibaba Cloud Elasticsearch V7.4.0 como backend de armazenamento do SkyWalking. Para enviar dados de aplicações Java ao SkyWalking, consulte Use SkyWalking to report Java application data . Para obter a lista completa de middlewares e componentes compatíveis com o SkyWalking, acesse a documentação do Apache SkyWalking .

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster Alibaba Cloud Elasticsearch V7.4.0. Consulte Crie um cluster Alibaba Cloud Elasticsearch.

  • Um servidor Linux com JDK 1.8.0 ou superior instalado. Recomendamos usar uma instância Elastic Compute Service (ECS). Consulte Crie uma instância ECS e Instale o JDK.

  • As portas 8080, 10800, 11800 e 12800 disponíveis no servidor Linux.

  • O firewall e o Security-Enhanced Linux (SELinux) desativados no servidor Linux.

Se o JDK não estiver instalado corretamente, os logs do SkyWalking exibirão Java not found ou java-xxx: No such file or directory ao iniciar o service.

Etapa 1: Baixe e instale o SkyWalking

  1. Baixe o pacote do SkyWalking para Elasticsearch 7 no seu servidor Linux. Como este tópico usa um cluster Elasticsearch V7.4.0, selecione Binary Distribution for Elasticsearch 7 na página de downloads do SkyWalking. Execute o comando abaixo para baixar o pacote:

    wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz
  2. Extraia o pacote:

    tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gz
  3. Verifique os arquivos extraídos:

    ls apache-skywalking-apm-bin-es7/

    Saída esperada:

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

Etapa 2: Configure o SkyWalking para conectar ao cluster Elasticsearch

O SkyWalking usa o H2 como backend de armazenamento padrão, mas o H2 não oferece suporte a armazenamento persistente de dados. Altere o backend de armazenamento para Elasticsearch editando o arquivo application.yml.

  1. Abra o arquivo application.yml na pasta config:

    cd apache-skywalking-apm-bin-es7/config/
    vi application.yml
  2. Localize a seção storage. Altere o seletor de H2 para elasticsearch7 e configure os parâmetros de conexão:

    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"}
    Importante

    Mantenha trustStorePath e trustStorePass comentados. Descomentar esses parâmetros sem um arquivo de keystore válido causa o erro NoSuchFileException: ../es_keystore.jks.

    Os principais parâmetros são:

    Parâmetro

    Descrição

    selector

    Seletor do backend de armazenamento. Defina como elasticsearch7.

    nameSpace

    Prefixo aplicado a todos os nomes de índice criados no cluster Elasticsearch.

    clusterNodes

    Endpoint público do seu cluster Elasticsearch. Como o SkyWalking e o cluster Elasticsearch estão em VPCs diferentes, use o endpoint público. Para localizar o endpoint, consulte Visualize as informações básicas de um cluster.

    user

    Nome de usuário do cluster Elasticsearch. Padrão: elastic.

    password

    Senha do usuário elastic, definida durante a criação do cluster. Para redefinir a senha, consulte Reset the access password for an Elasticsearch cluster.

  3. (Opcional) Altere o endereço IP de escuta ou os números de porta na seção core do arquivo application.yml. Os valores padrão são a porta 12800 para API RESTful e a porta 11800 para gRPC. Este tópico usa os valores padrão.

    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. (Opcional) Modifique o arquivo webapp/webapp.yml para alterar a porta da UI ou o endpoint do backend. Este tópico usa os valores padrão.

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

Etapa 3: Inicie o SkyWalking e verifique os resultados

  1. Certifique-se de que o cluster Elasticsearch esteja em execução antes de iniciar o SkyWalking.

  2. Execute o script de inicialização no diretório bin:

    cd ../bin
    ./startup.sh

    Se a inicialização for bem-sucedida, você verá:

    SkyWalking OAP started successfully!
    SkyWalking Web Application started successfully!

    A execução do script startup.sh inicia tanto o SkyWalking OAP quanto a UI do SkyWalking.

  3. Acesse http://<Endereço IP do servidor Linux>:8080/ em um navegador para abrir a UI do SkyWalking.

    Na primeira conexão do SkyWalking com o Elasticsearch, a inicialização é mais lenta porque o sistema cria muitos índices no cluster. A página da UI pode aparecer em branco até que a criação dos índices seja concluída. Para acompanhar o progresso, visualize os logs em <Caminho de instalação do SkyWalking>/logs/skywalking-oap-server.log .

    Após o acesso bem-sucedido, o painel de monitoramento Rocketbot do SkyWalking será exibido. O painel contém menus de navegação como Dashboard, Topology e Trace. Na visualização Global, é normal que os painéis de monitoramento (Heatmap, Response Time Percentile, Global Brief, entre outros) não apresentem dados inicialmente. Isso indica que o service foi iniciado, mas nenhum dado de agente de aplicação foi conectado ainda.

  4. Verifique se o SkyWalking criou seus índices no Elasticsearch. Faça login no console Kibana do seu cluster — consulte Log on to the Kibana console — e execute:

    GET _cat/indices?v

    Os resultados listarão muitos índices cujos nomes começam com skywalking-index.

    Após executar o comando, dados de índice semelhantes aos seguintes serão retornados, indicando que o SkyWalking gravou dados com sucesso no 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

Próximas etapas

  • Para conectar sua aplicação ao SkyWalking, adicione o JAR do agente localizado em apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar aos argumentos de inicialização da JVM da sua aplicação.

  • Para saber mais sobre middlewares e componentes compatíveis, consulte a documentação do Apache SkyWalking.

  • Para enviar dados de aplicações Java diretamente ao SkyWalking, consulte Use SkyWalking to report Java application data.