Integre o service de monitoramento de desempenho de aplicações (APM) do Elasticsearch open source ao Alibaba Cloud Elasticsearch para criar um sistema APM. Essa integração facilita a observabilidade de services e aplicações. Este tópico descreve como usar um servidor APM autogerenciado para coletar dados no Alibaba Cloud Elasticsearch.
Informações básicas
Observabilidade consiste em medir sua infraestrutura, plataformas e aplicações para compreender seu estado. Diferente do monitoramento tradicional, focado na detecção e emissão de alertas sobre problemas conhecidos, a observabilidade busca explicar tudo o que ocorre em um sistema distribuído complexo. Enquanto o monitoramento se concentra na saúde do service durante e após a entrega de software, a observabilidade abrange todo o ciclo de vida de desenvolvimento e operações.
Os três pilares da observabilidade são logs, métricas de infraestrutura e monitoramento de desempenho de aplicações (APM). O APM conecta métricas e logs. Embora logs e métricas cubram amplamente a infraestrutura e os componentes, o APM foca na camada da aplicação. Isso permite que as equipes de TI e desenvolvimento monitorem sua pilha de aplicações, incluindo a experiência do usuário final. Ao adicionar o APM ao seu sistema, você pode:
Identificar onde seus services consomem tempo e por que falham.
Visualizar interações entre services e identificar gargalos.
Descobrir e corrigir proativamente erros e problemas de desempenho.
Aumentar a produtividade das suas equipes de desenvolvimento.
Rastrear a experiência do usuário final no navegador.
O APM é comumente utilizado nos seguintes cenários:
Monitoramento da experiência do usuário: Melhore a experiência do usuário monitorando comportamentos, como interações com uma interface web ou cliente, e registrando o tempo desses eventos.
Arquitetura de aplicação em tempo de execução: Compreenda as dependências de services e a topologia de rede das interações da aplicação dentro da sua arquitetura.
Monitoramento de transações de negócios: Gere relatórios de SLA relevantes e forneça informações de tendências sobre o desempenho da aplicação sob uma perspectiva de negócios.
Monitoramento detalhado de componentes: Instale um agente para monitorar componentes de camada intermediária, como servidores web, servidores de aplicação e filas de mensagens. Um monitoramento robusto oferece um caminho claro de execução de código, dimensão frequentemente combinada com a arquitetura de tempo de execução em produtos de APM.
Análise e relatórios: Padronize e apresente as métricas coletadas das aplicações em uma visualização unificada dos dados de desempenho da aplicação.
Pré-requisitos
-
Crie uma instância do Alibaba Cloud Elasticsearch V7.10. Para mais informações, consulte Create an Alibaba Cloud Elasticsearch instance.
NotaRecomendamos ativar o Indexing Service e o Openstore para oferecer suporte à ingestão e armazenamento de grandes volumes de dados com custo-benefício para monitoramento de desempenho de aplicações.
Crie uma instância do Alibaba Cloud ECS com sistema operacional Linux. Para mais informações, consulte Create an instance by using the custom launch wizard.
-
Instale o ambiente da linguagem Go na instância ECS.
NotaEste tópico utiliza o agente APM para Go, que exige o ambiente da linguagem Go.
Procedimento
Etapa 1: Criar um servidor APM
-
Conecte-se à instância ECS.
Para mais informações, consulte Log on to a Linux instance by using Workbench.
NotaAs operações neste tópico utilizam uma conta de usuário comum.
-
Instale um servidor APM.
-
Baixe o pacote de instalação de um servidor APM.
wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.10.2-linux-x86_64.tar.gz -
Descompacte o pacote de instalação.
tar -zxf apm-server-7.10.2-linux-x86_64.tar.gz
-
-
Modifique as configurações do servidor APM.
-
Acesse o diretório onde o servidor APM está instalado.
cd apm-server-7.10.2-linux-x86_64/ -
Modifique o arquivo de configuração YML.
vim apm-server.ymlModifique o arquivo YML conforme mostrado no exemplo a seguir.
apm-server: host: "0.0.0.0:8200" output.elasticsearch: hosts: ["es-cn-*****.elasticsearch.aliyuncs.com:9200"] username: "elastic" password: "[pwd]"Parâmetro
Descrição
apm-server
O endpoint do APM Server. Defina o valor de
hostcomo oendereço IP de escuta:portado APM Server. Neste exemplo, o valor é0.0.0.0:8200.output.elasticsearch
A configuração de saída do Elasticsearch.
-
hosts: O endpoint público ou interno da sua instância do Elasticsearch. Para encontrar o endpoint, consulte View the basic information of an instance.
ImportanteSe a instância do Elasticsearch e a instância ECS onde o APM Server está instalado estiverem na mesma VPC, use o endpoint interno. Caso contrário, use o endpoint público e configure uma lista de permissões de endereços IP. Para mais informações, consulte Configure a public or internal IP address whitelist for an instance.
-
username: O nome de usuário para acessar a instância do Elasticsearch. O padrão é
elastic. Se você usar um usuário personalizado, deverá atribuir as funções e permissões necessárias. Para mais informações, consulte Use Elasticsearch X-Pack roles to manage user permissions. -
password: A senha do usuário especificado. A senha do usuário
elasticé definida durante a criação da instância. Se esquecê-la, poderá redefini-la. Para mais informações, consulte Reset the access password of an instance.
-
-
-
Inicie o servidor APM.
sudo nohup ./apm-server -e > apmserver.log 2>&1 &
Etapa 2: Configurar um agente APM
Este tópico usa Go como exemplo .
-
Instale um agente APM.
-
Inicialize o arquivo go.mod.
sudo go mod init demo -
Instale um pacote de agente APM Go.
sudo go get go.elastic.co/apm sudo go get go.elastic.co/apm/module/apmhttpNotaUm erro
golang.org xxxx: i/o timeoutindica quegolang.orgestá inacessível. Para resolver isso, altere a fonte de download.
-
-
Configure o agente APM.
-
Abra o arquivo de configuração de variáveis de ambiente.
vim ~/.bash_profile -
No arquivo de configuração, adicione as seguintes definições para inicializar o agente APM e salve as alterações.
# Set the service name. Allowed characters: a-z, A-Z, 0-9, -, _, and space. # If ELASTIC_APM_SERVICE_NAME is not set, the executable's file name is used. export ELASTIC_APM_SERVICE_NAME=zijian # Set a custom APM Server URL (default: http://localhost:8200). export ELASTIC_APM_SERVER_URL= # Use a secret token if required by the APM Server. export ELASTIC_APM_SECRET_TOKEN= -
Execute o seguinte comando para aplicar o arquivo de configuração:
source ~/.bash_profile
-
-
Use o agente APM para instrumentar uma aplicação.
-
Crie um arquivo de aplicação de exemplo chamado apm.go.
vim apm.go -
Adicione as seguintes informações ao arquivo apm.go e salve-o.
Para instrumentar sua aplicação Go, use um dos módulos de instrumentação fornecidos ou a API do tracer.
package main import ( "net/http" "go.elastic.co/apm/module/apmhttp" ) func main() { mux := http.NewServeMux() http.ListenAndServe(":8080", apmhttp.Wrap(mux)) } -
Execute o arquivo apm.go.
sudo go run apm.go
-
Etapa 3: Visualizar e analisar dados coletados pelo servidor APM no console do Kibana
-
Faça login no console do Kibana do cluster Elasticsearch.
Para mais informações, consulte Log on to the Kibana console.
NotaEste tópico usa uma instância do Alibaba Cloud Elasticsearch V7.10 como exemplo. A interface e as operações podem variar em outras versões.
Na página inicial do Kibana, clique em Dev tools no canto superior direito.
-
Na aba Console, execute o script a seguir para ativar a criação automática do índice de integração do APM.
NotaO Alibaba Cloud Elasticsearch impõe convenções de nomenclatura específicas para índices criados automaticamente. Como o nome padrão do índice de integração do APM não está em conformidade, execute este comando para permitir sua criação.
No script a seguir,
7.10.2é a versão do APM Server instalada.
PUT _cluster/settings { "persistent": { "action.auto_create_index":"+.*,+apm-7.10.2-onboarding-*,-*" } } -
Visualize os services monitorados pelo APM.
A página Services do APM lista todos os services integrados em uma tabela. A tabela contém as colunas Name, Environment, Avg. response time, Trans. per minute e Error rate %, que mostram cada service integrado e suas métricas de desempenho.
No canto superior esquerdo, clique no ícone
para expandir o painel de navegação à esquerda. No painel de navegação, em Observability, clique em APM.
A aba Services exibe todos os services do APM.
Clique no nome de um service para visualizar e analisar dados relacionados a ele.