Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Analyze and monitor CoreDNS logs

Última atualização: Sep 29, 2026

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-controller deve ser 0.2.0.0-76648ee-aliyun ou superior.

      Se a versão do alibaba-log-controller estiver 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

Nota

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

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Operations > Log Center.

  3. No namespace kube-system, localize o ConfigMap coredns e clique em Edit.

  4. 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

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Operations > Log Center.

  3. Na aba Network Component Logs > CoreDNS, 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.

Importante
  1. Crie um arquivo chamado k8s-coredns-log.yaml com o seguinte conteúdo:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #     Your config name, must be unique in your ACK cluster.
      name: k8s-coredns-log
      namespace: kube-system
    spec:
      # The logstore name to upload log
      logstore: coredns-log
      # Logtail config detail
      productCode: k8s-coredns
      logtailConfig:
        inputType: plugin
        # Logtail config name, should be the same as [metadata.name]
        configName: k8s-coredns-log
        inputDetail:
          plugin:
            inputs:
            - type: service_docker_stdout
              detail:
                IncludeLabel:
                  io.kubernetes.container.name: coredns
                Stderr: true
                Stdout: true
            processors:
            - type: processor_regex
              detail:
                KeepSource: false
                KeepSourceIfParseError: true
                Keys:
                - level
                - remote
                - port
                - id
                - type
                - class
                - name
                - proto
                - size
                - do
                - bufsize
                - rcode
                - rflags
                - rsize
                - duration
                NoKeyError: true
                NoMatchError: false
                FullMatch: false
                Regex: \[([^]]+)]\s([^:]+):(\S+)\s+-\s+(\S+)\s+"(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+([^"]+)"\s+(\S+)\s+(\S+)\s+(\S+)\s+([\d\.]+).*
                SourceKey: content
            - type: processor_regex
              detail:
                KeepSource: false
                KeepSourceIfParseError: true
                Keys:
                - error
                - rcode
                - name
                - type
                - errorMsg
                NoKeyError: false
                NoMatchError: false
                FullMatch: false
                Regex: \[ERROR]\s+(plugin/errors):\s+(\S)+\s+(\S+)\s+([^:]*):\s+(.*)
                SourceKey: content
  2. Aplique a configuração.

    kubectl apply -f k8s-coredns-log.yaml

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

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Operations > Log Center.

  3. Na aba Network Component Logs > CoreDNS, clique em Logstores para consultar e analisar os logs de DNS.

  4. Insira uma instrução de consulta e selecione Last 1 Week como intervalo de tempo.

  5. 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.

      image..png

    • 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.

      image..png

      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

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Operations > Log Center.

  3. Na aba Network Component Logs > CoreDNS, 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.

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Cluster Information.

  3. Na aba Basic Information, clique no link ao lado de Log Service Project e acesse o console do SLS.

  4. No painel de navegação à esquerda da página Logstores, clique em Dashboard > Dashboard. Na lista de painéis, localize e clique em Kubernetes CoreDNS Logs Analysis.

  5. Na página Kubernetes CoreDNS Logs Analysis, passe o mouse sobre o canto superior direito do gráfico desejado e selecione more > Save as Alert.

    Consulte Crie uma regra de alerta.alert

    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.

\