Integre a stack open source Elastic APM ao Alibaba Cloud Elasticsearch para criar um pipeline de observabilidade para seus serviços e aplicações. Este guia orienta você na implantação de um servidor APM autogerenciado em uma instância do Elastic Compute Service (ECS), na instrumentação de uma aplicação Go com um agente APM e na visualização dos dados coletados no Kibana.
O APM conecta as métricas de infraestrutura ao comportamento no nível da aplicação. Enquanto logs e métricas mostram o que acontece na camada de infraestrutura, o APM revela o que ocorre dentro da sua aplicação e como os usuários a experienciam. Integrar o APM à sua stack permite:
Identificar quais operações demoram mais e por que os serviços param de responder
Mapear dependências entre serviços e localizar gargalos em fluxos de requisições distribuídas
Acompanhar a experiência real do usuário em navegadores e clientes nativos
Gerar relatórios de SLA e análises de tendências sob a perspectiva de negócios
Pré-requisitos
Antes de começar, verifique se você possui:
Um cluster do Alibaba Cloud Elasticsearch V7.10. Consulte Criar um cluster do Alibaba Cloud Elasticsearch.
Uma instância ECS executando Linux. Consulte Conectar-se a uma instância Linux usando senha ou chave.
Go instalado na instância ECS. Este guia instrumenta uma aplicação Go usando o agente Elastic APM Go.
Como funciona
O servidor APM recebe dados de rastreamento dos agentes APM em execução nas suas aplicações.
O servidor APM encaminha os dados para o seu cluster do Alibaba Cloud Elasticsearch.
O Kibana lê os dados do Elasticsearch e os exibe na interface de APM em Observability.
Etapa 1: Crie um servidor APM
Instale o servidor APM
Conecte-se à sua instância ECS como um usuário comum. Consulte Conectar-se a uma instância Linux usando senha ou chave.
-
Baixe o pacote do servidor APM.
wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.10.2-linux-x86_64.tar.gz -
Extraia o pacote.
tar -zxf apm-server-7.10.2-linux-x86_64.tar.gz
Configure o servidor APM
-
Acesse o diretório do servidor APM.
cd apm-server-7.10.2-linux-x86_64/ -
Abra o arquivo de configuração.
vim apm-server.yml -
Atualize a configuração com os detalhes do seu cluster do Elasticsearch.
Parâmetro
Descrição
apm-server.hostEndereço e porta nos quais o servidor APM escuta. Formato:
<IP>:<porta>. O valor0.0.0.0:8200escuta em todas as interfaces.output.elasticsearch.hostsEndpoint do seu cluster do Elasticsearch. Use o endpoint interno se a instância ECS e o cluster estiverem na mesma Virtual Private Cloud (VPC). Se estiverem em VPCs diferentes, use o endpoint público e configure uma lista de permissões de IP público. Consulte Visualize as informações básicas de um cluster e Configure uma lista de permissões de endereços IP públicos ou privados para um cluster do Elasticsearch.
output.elasticsearch.usernameNome de usuário para o Elasticsearch. O padrão é
elastic. Para usar uma conta personalizada, crie primeiro uma função e conceda a ela as permissões de gravação necessárias. Consulte Usar o mecanismo RBAC fornecido pelo Elasticsearch X-Pack para implementar controle de acesso.output.elasticsearch.passwordSenha do nome de usuário acima. A senha da conta
elasticé definida durante a criação do cluster. Para redefini-la, consulte Redefinir a senha de acesso de um cluster do Elasticsearch.apm-server: host: "0.0.0.0:8200" output.elasticsearch: hosts: ["es-cn-*****.elasticsearch.aliyuncs.com:9200"] username: "elastic" password: "<your-password>"
Iniciar o servidor APM
Execute o comando a seguir para iniciar o servidor APM em segundo plano e redirecionar a saída para um arquivo de log.
nohup ./apm-server -e > apmserver.log 2>&1 &
O servidor APM inicia, conecta-se ao Elasticsearch no endpoint especificado e expõe a API do agente na porta 8200. Para verificar se o servidor está em execução, procure no arquivo apmserver.log uma mensagem confirmando a conexão com o Elasticsearch e indicando que o servidor está escutando na porta 8200.
Etapa 2: Configure um agente APM
Este exemplo utiliza o agente Elastic APM Go. O guia usa variáveis de ambiente para a configuração inicial.
Este guia usa Go como exemplo. Para outras linguagens, instale o agente Elastic APM correspondente. Consulte a documentação do agente Elastic APM para obter a lista completa de linguagens suportadas e módulos integrados.
Instale o agente Go
-
Inicialize um módulo Go para o seu projeto.
sudo go mod init demo -
Instale os pacotes do agente APM.
Se você encontrar o erro
golang.org xxxx: i/o timeout, seu ambiente não consegue acessar golang.org. Altere o proxy de módulos do Go para um espelho acessível antes de tentar novamente.sudo go get go.elastic.co/apm sudo go get go.elastic.co/apm/module/apmhttp
Defina variáveis de ambiente do agente APM
-
Abra o arquivo de perfil do shell.
vim ~/.bash_profile -
Adicione as seguintes variáveis de ambiente e salve o arquivo.
Variável
Padrão
Descrição
ELASTIC_APM_SERVICE_NAMENome do arquivo executável
Nome do seu serviço. Caracteres permitidos: letras, dígitos, hifens (
-), sublinhados (_) e espaços.ELASTIC_APM_SERVER_URLhttp://localhost:8200URL do servidor APM. Defina este valor como o endereço do servidor iniciado na Etapa 1.
ELASTIC_APM_SECRET_TOKEN_(nenhum)_
Token secreto exigido pelo servidor APM.
export ELASTIC_APM_SERVICE_NAME=zijian export ELASTIC_APM_SERVER_URL= export ELASTIC_APM_SECRET_TOKEN= -
Aplique a configuração.
source ~/.bash_profile
Instrumentar sua aplicação
O agente Elastic APM Go oferece módulos integrados para frameworks populares (como apmhttp) e uma API Tracer de nível mais baixo para instrumentação personalizada. Este exemplo usa apmhttp para encapsular um servidor HTTP padrão.
-
Crie o arquivo da aplicação.
vim apm.go -
Adicione o código a seguir e salve o arquivo.
package main import ( "net/http" "go.elastic.co/apm/module/apmhttp" ) func main() { mux := http.NewServeMux() http.ListenAndServe(":8080", apmhttp.Wrap(mux)) } -
Execute a aplicação.
sudo go run apm.goQuando a aplicação entra em execução, o agente APM começa a enviar dados de rastreamento para o servidor APM, que os encaminha para o seu cluster do Elasticsearch.
Etapa 3: Visualize dados de APM no Kibana
Ative a criação automática de índices
O Alibaba Cloud Elasticsearch impõe convenções de nomenclatura de índices. O índice de onboarding do APM, criado automaticamente pelo servidor APM, não segue essas convenções; portanto, é necessário permiti-lo explicitamente.
-
Faça login no console do Kibana. Consulte Fazer login no console do Kibana.
Este guia utiliza um cluster V7.10. As etapas de login podem variar em outras versões do Elasticsearch.
Na página inicial do Kibana, clique em Dev tools no canto superior direito.
-
Na aba Console, execute o comando a seguir. Substitua
7.10.2pela versão do servidor APM instalada.PUT _cluster/settings { "persistent": { "action.auto_create_index":"+.*,+apm-7.10.2-onboarding-*,-*" } }
Visualize serviços monitorados
Clique em no ícone
no canto superior esquerdo para expandir o painel de navegação.Em Observability, clique em APM.
-
A aba Services lista todos os serviços monitorados pelo agente APM.

Clique em no nome de um serviço para detalhar seus rastreamentos, transações e dados de desempenho.
Próximos passos
Para usar uma linguagem de programação diferente, instale o agente Elastic APM correspondente. Para a lista completa de linguagens suportadas e seus módulos integrados, consulte a documentação do agente Elastic APM.
Para gerencie centralmente a configuração do agente sem nova implantação, utilize a configuração de agente APM baseada no Kibana em Observability > APM > Settings.
Para controlar o acesso ao seu cluster do Elasticsearch, configure o controle de acesso baseado em funções. Consulte Usar o mecanismo RBAC fornecido pelo Elasticsearch X-Pack para implementar controle de acesso.