A proteção de tráfego do Microservices Engine (MSE) defende seus microsserviços contra picos de tráfego por meio de limitação de taxa, circuit breaking, degradação e proteção contra sobrecarga do sistema. O painel integrado do MSE oferece análise da distribuição de tráfego em tempo real, mas retém os dados apenas por um período limitado.
Para consultar métricas em intervalos de tempo maiores, criar painéis personalizados ou configurar alertas, exporte os logs de métricas para o Simple Log Service (SLS). As seções a seguir detalham todo o processo: instalação do agente de coleta de logs, configuração da fonte de dados, verificação da entrega de logs e criação de gráficos com base nos dados exportados.
Painel do MSE versus exportação para o SLS
|
Abordagem |
Retenção |
Flexibilidade de consulta |
Painéis personalizados |
Alertas |
|
Painel integrado do MSE |
Limitada (curto prazo) |
Apenas visualizações predefinidas |
Não |
Não |
|
Exportação para o SLS |
Configurável (dias a anos) |
Consultas completas semelhantes a SQL |
Sim |
Sim |
Use o painel integrado para monitoramento em tempo real. Exporte para o SLS quando precisar de análises históricas, correlação entre recursos ou alertas automatizados.
Como funciona
A proteção de tráfego do MSE usa o Sentinel, que grava logs de métricas em arquivos locais em cada pod. O agente Logtail coleta esses arquivos de log e os envia para um Logstore do SLS. Após a ingestão no SLS, consulte os dados com instruções semelhantes a SQL e crie painéis.
Pod (Sentinel metric logs) --> Logtail agent --> SLS Logstore --> Query & dashboards
Antes de começar
Ative o Simple Log Service. Consulte "Step 1: Activate Simple Log Service" em Getting Started.
Crie um cluster ACK. Use um ACK managed cluster ou um ACK dedicated cluster.
Ative a proteção de tráfego do MSE. Ative a proteção de tráfego para o MSE Microservices Governance e configure as regras de proteção. Consulte Overview.
Formato do log de métricas
Cada linha no log de métricas do Sentinel contém campos delimitados por barras verticais. Compreender esse formato facilita a configuração do analisador de logs e a escrita de consultas.
Exemplo de linha de log:
1724811932000|2024-08-28 02:25:32|com.alibabacloud.mse.demo.c.service.HelloServiceCTwo|24|0|24|0|1|0|1|202|OUT
Referência de campos:
|
Índice |
Valor de exemplo |
Descrição |
|
1 |
|
Timestamp (milissegundos desde a época) |
|
2 |
|
Data e hora (legível por humanos) |
|
3 |
|
Nome do recurso (interface ou método protegido) |
|
4 |
|
Requisições permitidas por segundo |
|
5 |
|
Requisições bloqueadas por segundo |
|
6 |
|
Requisições concluídas por segundo |
|
7 |
|
Exceções por segundo |
|
8 |
|
Tempo médio de resposta (ms) |
|
9 |
|
Campo reservado |
|
10 |
|
Campo reservado |
|
11 |
|
Código de classificação |
|
12 |
|
Direção do tráfego ( |
Para obter detalhes sobre caminhos e formatos de arquivos de log, consulte Important logs.
Etapa 1: Instale o Logtail
Ignore esta etapa se o Simple Log Service já estava ativado durante a criação do cluster ACK. Consulte Install Logtail when you create a cluster.
Instale o componente Logtail no seu ACK managed cluster ou ACK dedicated cluster:
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, localize seu cluster e clique no nome dele. No painel de navegação à esquerda, escolha Operations > Add-ons.
Na aba Logs and Monitoring, localize o cartão logtail-ds e clique em Install.
Etapa 2: Configure a fonte de dados do SLS
Configure o SLS para coletar, analisar e indexar os logs de métricas do Sentinel dos seus pods.
Faça login no Simple Log Service console.
Clique no cartão Quick Data Import. Na caixa de diálogo Import Data, pesquise por Kubernetes e clique no cartão Kubernetes - File.
-
Select Logstore -- Configure os parâmetros a seguir e clique em Next.
Parâmetro
Descrição
Project
Selecione um projeto existente ou crie um novo. Siga a convenção de nomenclatura
k8s-log-{your ACK cluster ID}.Logstore
Selecione um Logstore existente ou crie um novo. Para mais detalhes, consulte Create a Logstore.
-
Machine Group Configurations -- Selecione o grupo de máquinas Kubernetes-group-${your ACK cluster ID} na lista Source Machine Group, adicione-o à lista Applied Server Groups e clique em Next.
NotaCaso tenha selecionado um projeto diferente na etapa anterior, crie um grupo de máquinas conforme solicitado.
-
Logtail Configuration -- Configure a fonte de dados e o formato de análise e clique em Next.
Parâmetro
Como configurar
Configuration Name
Insira um nome descritivo, como
mse-sentinel-metrics.File Path
Insira o caminho no formato
${user_home}/logs/csp/{app_name}-metrics.log.{date}. Por exemplo, se o diretório home for/root, defina o diretório como/root/logs/cspe o nome do arquivo como*metrics.log*.Log Sample
Cole uma linha de log de exemplo:
`17248119320002024-08-28 02:25:32
com.alibabacloud.mse.demo.c.service.HelloServiceCTwo
24
0
24
0
1
0
1
202
OUT`
Processing Method
Selecione Processors e adicione um processador do tipo Data Parsing (Delimiter Mode). Use o caractere de barra vertical
`` como delimitador.

-
Query and Analysis Configurations -- Aguarde a atualização automática da seção Preview Data. Revise e ajuste os campos de índice conforme necessário e clique em Next.

Para mais informações sobre a configuração da fonte de dados, consulte Configure data source and parsing format.
Etapa 3: Verifique a entrega de logs
Confirme se os dados de métricas estão fluindo para o SLS antes de criar painéis.
Faça login no Simple Log Service console.
Na seção Projects, clique no seu projeto e selecione o Logstore correspondente.
-
Execute a consulta a seguir para verificar registros recentes. Se houver retorno de registros, o pipeline está funcionando corretamente. Os resultados contêm os campos analisados do formato de log de métricas descrito anteriormente: timestamp, nome do recurso, contagem de permissões, contagem de bloqueios, tempo médio de resposta e direção do tráfego.
* | SELECT * LIMIT 10 -
(Opcional) Verifique a presença de dados de requisições bloqueadas executando:
NotaOs nomes dos campos nestas consultas (
resource_name,blocked) dependem de como os campos de índice foram nomeados durante a Etapa 2. Ajuste-os para corresponder à sua configuração.* | SELECT resource_name, blocked WHERE blocked > 0 LIMIT 10
