O Alibaba Cloud Ingress registra solicitações HTTP no stdout. Ative a coleta de logs ao criar um cluster e use o Simple Log Service (SLS) para visualizar análises do log de acesso do Nginx Ingress e monitorar o status do Ingress em tempo real. Este tópico descreve como implantar e visualizar os logs de acesso do Nginx Ingress.
Pré-requisitos
Antes de começar, certifique-se de que:
O loongcollector esteja instalado no cluster (padrão durante a criação do cluster). Se estiver ausente, consulte Collect text logs from Kubernetes containers in DaemonSet mode.
-
O alibaba-log-controller esteja atualizado:
Ative a coleta de logs para o nginx-ingress-controller
Use o console do ACK, a menos que precise automatizar a configuração por meio de um pipeline GitOps ou CI/CD.
ACK console
Faça login no console do ACK. No painel de navegação à esquerda, clique em console do ACKClusters.
Na página Clusters, clique no cluster desejado. No painel de navegação à esquerda, escolha Operations > Add-ons.
Na página Add-ons, clique na aba Networking. No cartão Nginx Ingress Controller, clique no ícone
e selecione Enable Log Collection. Clique em OK.
CLI
O ACK fornece um CRD chamado AliyunLogConfig. Ao criar um AliyunLogConfig, o alibaba-log-controller gera automaticamente a configuração do SLS e atualiza os painéis.
Antes de criar um AliyunLogConfig:
Se já existirem pods do nginx-ingress-controller, recrie-os após aplicar o
AliyunLogConfigpara que a coleta de logs tenha efeito.O alibaba-log-controller deve estar na versão
0.2.0.0-76648ee-aliyunou posterior. Caso umAliyunLogConfigjá exista após a atualização do controller, exclua-o e crie-o novamente.Esta configuração pressupõe o formato de log padrão do ACK. Se você personalizou o formato de log, atualize a seção
processor_regex. Consulte Use CRDs to collect container logs in DaemonSet mode.
-
Crie um arquivo chamado
k8s-nginx-ingress.yamlcom o seguinte conteúdo:Defina
IncludeLabelcom os rótulos do Docker obtidos viadocker inspect.io.kubernetes.pod.namespaceseleciona por namespace;io.kubernetes.container.nameseleciona por contêiner. Por exemplo,io.kubernetes.pod.namespace: backend-prodcoleta todos os contêineres nesse namespace;io.kubernetes.container.name: worker-servertem como alvo um contêiner específico. Especifique apenas esses dois rótulos. Para filtrar por variáveis de ambiente, useIncludeEnvouExcludeEnv. Consulte Use the Simple Log Service console to collect container stdout and stderr in DaemonSet mode .Campo
Descrição
Modificar?
metadata.namespaceNamespace do controller de Ingress
Sim, se não for
kube-systemspec.logstoreNome do Logstore do SLS
Opcional
IncludeLabelRótulos do Docker usados para selecionar contêineres
Sim, se estiver coletando de um namespace específico
processor_regex>RegexRegex de análise de log
Apenas se você alterou o formato de log padrão
A tabela a seguir descreve os campos que você provavelmente precisará personalizar:
-
Aplique a configuração:
Para desativar a coleta de logs, exclua o AliyunLogConfig:
Visualize o log de acesso e os painéis
Faça login no console do Simple Log Service.
Na seção Projects, clique no projeto do seu cluster ACK (nomeado
k8s-log-{cluster-id}).No painel de navegação à esquerda, clique no ícone
e selecione um painel na lista.
Painéis disponíveis:
|
Painel |
Intervalo de tempo |
O que exibe |
|
Visão geral do Ingress |
Últimas 24 h / último 1 min |
Volume de tráfego, latência, taxas de erro, distribuição geográfica, principais URLs |
|
Central de acesso do Ingress |
Últimas 24 h |
Contagens de UV/PV, distribuição regional, principais navegadores e IPs de origem, detalhamento mobile |
|
Central de monitoramento do Ingress |
Última 1 h |
Taxa de sucesso em tempo real, proporções de erro, percentis de latência, principais Services por PV e taxa de falha |
|
Central de monitoramento do Ingress para implantações blue-green |
Dinâmico |
Comparação lado a lado das métricas do ServiceA e ServiceB para rollouts seguros |
|
Central de exceções do Ingress |
Automático |
Detecção de anomalias baseada em machine learning do SLS e análise de séries temporais |
Visão geral do Ingress
Rastreia o tráfego no nível do site por meio do nginx-ingress-controller. Principais métricas:
Last 24 hours: visualizações de página (PVs), visitantes únicos (UVs), tráfego de entrada/saída, latência média, proporção de usuários mobile, proporção de erros 5xx, proporção de erros 404
Último 1 minuto: PVs, UVs, taxa de sucesso de solicitações, latência média, latência P95, latência P99
Tendências e distribuição: tendência de PV em 24 horas e 7 dias, distribuição regional de solicitações, principais áreas e cidades, detalhamento Android/iOS
Principais URLs (última 1 hora): 10 URLs com maiores PVs, maior latência, mais erros 5xx e mais erros 404
Central de acesso do Ingress
Origens das solicitações e distribuição de clientes nas últimas 24 horas: contagens de UV/PV, detalhamento regional, principais navegadores, IPs de origem e proporções mobile.
Central de monitoramento do Ingress
Métricas em tempo real da última hora para detecção e triagem de problemas:
Taxa de sucesso de solicitações, proporção de 5xx, proporção de 404 e proporção de solicitações não encaminhadas ao upstream
Latência média, latência P95, latência P99 e latência P999
Distribuição de solicitações por código de status e proporção de PV por Ingress
Top 10 Services por PVs, taxa de falha, latência média e total de solicitações

Central de monitoramento do Ingress para implantações blue-green
Comparação lado a lado das métricas do ServiceA e ServiceB — PVs, taxas de erro, percentis de latência e total de solicitações — para detectar regressões durante rollouts blue-green.

Central de exceções do Ingress
Detecta anomalias nos logs do nginx-ingress-controller usando machine learning do SLS e análise de séries temporais.

Configure alertas
Configure regras de alerta em qualquer gráfico do painel, com notificações por e-mail, chatbot do DingTalk, webhooks ou SMS.
Consulte Configure an alert rule.
Este exemplo cria um alerta que dispara quando a proporção de erros 5xx excede 1%, verificado a cada 5 minutos.
Na seção Dashboard, clique em Ingress Monitoring Center. Passe o mouse sobre o ícone
no canto superior direito do gráfico 5XX Proportion e clique em Save as Alert (Old Version).No assistente Create Alert, defina Alert Name, Associated Chart, Frequency e Trigger Condition. O campo
totalrepresenta a proporção de erros 5xx; defina a Trigger Condition comototal > 1.Na página Notifications, selecione os canais de notificação, configure os parâmetros e clique em Submit.
Inscreva-se em um painel
Entregue snapshots agendados do painel para um endereço de e-mail ou grupo do DingTalk. Consulte Subscribe to a dashboard.
Este exemplo inscreve o painel Ingress Overview V1.2 e envia um snapshot diário para um grupo do DingTalk às 10:00.
Na seção Dashboard, clique em Ingress Overview V1.2. Escolha Subscribe > Create.
No assistente Create Subscription, defina a Notifications como Daily e o horário para 10:00. Desative a opção Add Watermark e clique em Next.
Na página Projects, selecione WebHook-DingTalk Bot em Notifications e defina a Request URL para a URL do webhook do seu chatbot do DingTalk. Clique em Submit.
Use o painel do Ingress com o ARMS
O painel Ingress Overview V1.2 integra-se ao Application Real-Time Monitoring Service (ARMS) para fornecer visibilidade completa de rastreamento ponta a ponta.
Faça login no console do Simple Log Service.
Na seção Projects, clique no projeto do seu cluster ACK.
No painel de navegação à esquerda, clique no ícone
e selecione Ingress Overview V1.2 na lista de Dashboard.Na seção Top 10 Request URLs by Latency, clique em uma URL na coluna URL(ARMS Troubleshooting) para visualizar os detalhes de rastreamento do ARMS desse Service.
Próximos passos
Data filtering plugin — aplique filtros de consulta de log para investigar solicitações específicas ou janelas de tempo.