Ative a coleta de logs do CoreDNS para solucionar problemas de latência de DNS e detectar domínios de alto risco em clusters do ACK.
Pré-requisitos
-
O add-on de coleta de logs está instalado.
-
Para o Logtail: a versão do
alibaba-log-controllerdeve ser0.2.0.0-76648ee-aliyunou superior.Se a versão do
alibaba-log-controllerestiver desatualizada, atualize o add-on do Logtail. Para o LoongCollector: todas as versões são compatíveis.
-
O CoreDNS deve estar atualizado para a versão mais recente. Consulte Gerencie componentes.
Etapa 1 (opcional): Ative o plugin de log do CoreDNS
Na versão mais recente do CoreDNS, o plugin de log é ativado por padrão para o domínio padrão. Siga estas etapas apenas para configurar o log de domínios personalizados.
Observações de uso
Ativar os logs aumenta o uso de CPU do CoreDNS em aproximadamente 10%, dependendo do volume de requisições. Se a utilização da CPU já estiver alta, dimensione as réplicas do CoreDNS antes de prosseguir.
Procedimento
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
No namespace kube-system, localize o ConfigMap
corednse clique em Edit.Verifique se o plugin log está presente no Corefile (geralmente no bloco
.:53). Se estiver ausente, adicione-o conforme o exemplo abaixo. Consulte Modificar um parâmetro.
Configuração do coredns com o formato de log padrão:
Corefile: |
.:53 {
errors
log # Add the log plugin here to enable DNS resolution logging.
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
# If you have other domains, add the log plugin to their blocks as well.
demo.com:53 {
...
log # Add the log plugin here.
}
Etapa 2: Ative a coleta de logs do CoreDNS
Método 1: Ativar o service no console
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
Na aba , clique em Install (se solicitado) e, em seguida, em Enable Log Collection.
Método 2: Ativar o service usando o kubectl
Implante uma Custom Resource Definition (CRD) AliyunLogConfig para automatizar a criação do logstore e do painel. Consulte Gerencie recursos personalizados.
Esta configuração se aplica apenas ao formato de log padrão do CoreDNS. Se você usar um formato personalizado, modifique o campo
Regexna definição da CRD.Para formatos de log personalizados, consulte o plugin log do CoreDNS.
Consulte Usar CRDs para coletar logs de contêiner no modo DaemonSet.
Para configurar a CRD AliyunLogConfig para recursos como armazenamento, rede e Auto Scaling, consulte Etapa 1: Crie um arquivo de configuração de log para um plugin do sistema.
Etapa 3: Consultar e analisar logs no Logstore
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
Na aba , clique em Logstores para consultar e analisar os logs de DNS.
Insira uma instrução de consulta e selecione Last 1 Week como intervalo de tempo.
-
Clique em Search & Analyze e visualize os resultados.
O Simple Log Service (SLS) exibe os resultados como histogramas, logs brutos e gráficos estatísticos. Consulte Guia de início rápido para consulta e análise.
-
Histograma de logs
Mostra a distribuição de logs ao longo do tempo.

-
Logs brutos
Na aba Raw Logs, clique em Table ou Raw Data para verificar anomalias de DNS. Preste atenção ao valor do RCODE. Consulte Solucionar problemas de resolução de DNS.

Referência de campos de log do CoreDNS
Campo
Descrição
Exemplo
{level}
O nível do log.
INFO
{remote}
O endereço IP do cliente.
172.16.0.10
{port}
A porta do cliente.
58008
{id}
O ID da consulta.
34518
{type}
O tipo de requisição.
A
{class}
A classe da requisição.
IN
{name}
O nome de domínio requisitado.
kube-dns.kube-system.svc.cluster.local.
{proto}
O protocolo utilizado.
tcp
{size}
O tamanho da requisição (bytes).
56
{do}
Indica se o bit EDNS0 DO (DNSSEC OK) está definido na consulta.
false
{bufsize}
O tamanho do buffer EDNS0 (bytes) na consulta.
65535
{rcode}
O código de resposta.
NOERROR
{rflags}
As flags de resposta. Exibe cada flag definida.
qr,aa,rd
{rsize}
O tamanho da resposta descompactada (bytes).
110
{duration}
A latência de resolução (segundos).
0.00011
-
Gráfico
Visualize os resultados da consulta de forma gráfica na aba Graph.
-
LogReduce
Na aba LogReduce, clique em Enable LogReduce para agregar logs semelhantes. Consulte LogReduce.
-
Etapa 4: Visualizar com painéis
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
-
Na aba , clique em Dashboards e visualize o painel Kubernetes CoreDNS Logs Analysis. Este painel fornece:
Total Requests, Success Ratio, and Latency: monitore a integridade do DNS rapidamente.
Top Requested Domains: identifique os services mais ativos.
Top Error Domains: encontre domínios que causam erros NXDOMAIN ou SERVFAIL.
Timeout Domains, High-risk Domains, and Slow Logs : identifique gargalos de desempenho.
Etapa 5: Configure alertas
No painel Kubernetes CoreDNS Logs Analysis, defina alertas com base em gráficos individuais. Esse recurso está disponível apenas no console do SLS.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Cluster Information.
Na aba Basic Information, clique no link ao lado de Log Service Project e acesse o console do SLS.
No painel de navegação à esquerda da página Logstores, clique em . Na lista de painéis, localize e clique em Kubernetes CoreDNS Logs Analysis.
-
Na página Kubernetes CoreDNS Logs Analysis, passe o mouse sobre o canto superior direito do gráfico desejado e selecione .
Consulte Crie uma regra de alerta.

Após criar uma regra, visualize, modifique ou desative-a em Gerencie regras de monitoramento de alertas.
Operações relacionadas
Desativar a coleta de logs
Para interromper a coleta de logs do CoreDNS, remova a configuração:
kubectl -n kube-system delete AliyunLogConfig k8s-coredns-log
Após a exclusão, os logs do CoreDNS deixam de ser enviados para o SLS.
\
> Dashboard