Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Analyze and monitor CoreDNS logs

Última atualização: Jun 27, 2026

O ACK implanta o CoreDNS como servidor DNS no cluster. Visualize os logs do CoreDNS para analisar problemas como resolução lenta de DNS e solicitações para domínios de alto risco. Este tópico descreve como ativar a análise e o monitoramento de logs do CoreDNS.

Pré-requisitos

O add-on de coleta de logs está instalado.

  • Se você utiliza o add-on Logtail, verifique se a versão do alibaba-log-controller é 0.2.0.0-76648ee-aliyun ou posterior. No console ACK, acesse a página Stateless, localize o Deployment alibaba-log-controller e confira sua versão na coluna Image (por exemplo, 0.2.8.0-245ff7b-aliyun).

    Caso a versão do alibaba-log-controller esteja desatualizada, atualize o add-on Logtail. Para mais informações sobre como atualizar add-ons, consulte Gerenciar componentes.

  • O componente LoongCollector não exige uma versão específica.

Etapa 1: Ativar o plugin de log do CoreDNS

Observações

  • Certifique-se de que o componente CoreDNS esteja atualizado para a versão mais recente. Para mais informações sobre como atualizar o componente, consulte Gerenciar componentes.

  • Na versão mais recente do CoreDNS, o plugin de log vem ativado por padrão para o domínio padrão. Caso precise ativar o plugin de log para outros domínios, siga o procedimento desta seção.

Procedimento

Nota

A ativação dos logs do CoreDNS consome recursos adicionais de CPU (aproximadamente 10%, dependendo do volume de solicitações) e tráfego de rede. Se a utilização de CPU das réplicas atuais do CoreDNS estiver alta, escale horizontalmente os pods do CoreDNS. Para mais informações sobre o dimensionamento de pods do CoreDNS, consulte Dimensionamento manual de pods.

No namespace kube-system do cluster ACK, selecione Configurations > ConfigMaps, clique em CoreDNS e verifique o campo Corefile do ConfigMap CoreDNS para confirmar se o plugin log está incluído. Se não estiver, adicione o plugin conforme o exemplo a seguir para ativar o registro de logs da resolução DNS do CoreDNS. Para mais informações sobre como modificar um ConfigMap, consulte Modificar um ConfigMap.

O exemplo a seguir mostra a configuração do CoreDNS com o formato de log padrão.

Corefile: |
    .:53 {
        errors
        log # Add the log plugin here.
        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 for which you need to collect logs, add the log plugin to their blocks in the same format.
    demo.com:53 {
        ... 
        log # Add the log plugin here.
    }

Etapa 2: Ativar a coleta de logs do CoreDNS

Usar o console

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

  2. Na página Clusters, clique em Operations > Log Center.

  3. Na página Log Center, acesse a aba Network Component Logs > CoreDNS. Clique em Install e, em seguida, em Enable Log Collection.

Usar kubectl

Ao implantar um recurso AliyunLogConfig, o Log Controller cria automaticamente as configurações de coleta de logs e painéis necessários no Simple Log Service (SLS). Para mais informações sobre como criar um recurso personalizado AliyunLogConfig, consulte Gerenciar recursos personalizados.

    Importante

    A configuração a seguir aplica-se apenas ao formato de log padrão do CoreDNS. Se você utilizar um formato de log personalizado, modifique a seção Regex na configuração do CRD.

    Para mais informações sobre formatos de log personalizados no CoreDNS, consulte log.

    Para mais detalhes sobre o processo e as configurações de coleta de logs, consulte Coletar logs de contêiner usando um DaemonSet e um CRD.

  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 k8s cluster.
      name: k8s-coredns-log
      namespace: kube-system
    spec:
      # The name of the Logstore to which logs are uploaded.
      logstore: coredns-log
      # Details of the Logtail configuration.
      productCode: k8s-coredns
      logtailConfig:
        inputType: plugin
        # The name of the Logtail configuration. This must 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. Execute o comando a seguir para ativar a coleta de logs do CoreDNS:

    kubectl apply -f k8s-coredns-log.yaml

Para mais informações sobre como configurar um CRD AliyunLogConfig para recursos como armazenamento, rede e dimensionamento automático, consulte Etapa 1: Criar um arquivo de configuração de log para componentes do plano de dados.

Etapa 3: Consultar e analisar logs

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

  2. Na página Clusters, clique em Operations > Log Center.

  3. Na página Log Center, clique em Network Component Logs. Em seguida, na aba CoreDNS, clique em Logstores para consultar e analisar logs de DNS.

  4. Insira uma instrução de consulta e análise na caixa de pesquisa e selecione Last 1 Week para definir o intervalo de tempo da consulta.

  5. Clique em Search & Analyze para visualizar os resultados.

    O Simple Log Service (SLS) exibe os resultados da consulta e análise como um histograma de logs, logs brutos e gráficos. Para mais informações sobre como consultar e analisar logs, consulte Início rápido para consulta e análise de logs.

    • Histograma de Logs

      Este gráfico apresenta a distribuição temporal dos logs consultados.

      image..png

    • Logs Brutos

      Os resultados da consulta aparecem na aba Raw Logs. Clique em Table ou Origin para visualizar os logs e verificar anomalias na resolução de domínios. Preste atenção especial ao valor RCODE. Para mais informações sobre os significados dos RCODEs, consulte Solucionar problemas de resolução de DNS.

      A tabela a seguir descreve os campos presentes nos logs.

      Parâmetro

      Descrição

      Exemplo

      {level}

      Nível do log.

      INFO

      {remote}

      Endereço IP do cliente.

      172.16.0.10

      {port}

      Porta do cliente.

      58008

      {id}

      ID da consulta.

      34518

      {type}

      Tipo de solicitação.

      A

      {class}

      Classe da solicitação.

      IN

      {name}

      Nome de domínio solicitado.

      kube-dns.kube-system.svc.cluster.local.

      {proto}

      Protocolo utilizado.

      tcp

      {size}

      Tamanho da solicitação em bytes.

      56

      {do}

      Indica se o bit EDNS0 DO (DNSSEC OK) está definido na consulta.

      false

      {bufsize}

      Tamanho do buffer EDNS0 em bytes definido na consulta.

      65535

      {rcode}

      Código de resposta.

      NOERROR

      {rflags}

      Flags de resposta. Cada flag definida é exibida.

      qr,aa,rd

      {rsize}

      Tamanho da resposta não compactada em bytes.

      110

      {duration}

      Tempo de resposta em segundos.

      0.00011

    • Gráfico

      Após executar uma instrução de consulta e análise, visualize os resultados na aba Graph.

    • LogReduce

      Na aba LogReduce, clique em Enable LogReduce para agrupar automaticamente os logs coletados com padrões semelhantes. Para mais informações, consulte LogReduce.

Etapa 4: Visualizar o painel de logs do CoreDNS

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

  2. Na página Clusters, clique em Operations > Log Center.

  3. Na página Log Center, clique em Network Component Logs. Na aba CoreDNS, clique em Dashboards para visualizar o painel Kubernetes CoreDNS Logs Analysis.

    A página Kubernetes CoreDNS Logs Analysis exibe métricas agregadas como contagem de solicitações do CoreDNS, taxa de sucesso e latência. O painel também fornece listas dos domínios mais solicitados, domínios com erro, domínios com resolução lenta e uma análise de solicitações para domínios de alto risco.

Etapa 5: Criar um alerta para logs do CoreDNS

No painel Kubernetes CoreDNS Logs Analysis, configure um alerta com base em um único gráfico. Essa operação está disponível apenas no console SLS.

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

  2. Na página Clusters, clique em Cluster Information.

  3. Na página Cluster Information, clique em Basic Information. Clique em Project para acessar o console SLS.

  4. No painel de navegação à esquerda, clique em 仪表盘. Na lista de painéis, localize e clique em Kubernetes CoreDNS Logs Analysis.

  5. Na página Kubernetes CoreDNS Logs Analysis, no canto superior direito do gráfico para o qual deseja criar um alerta, escolha image> Save as Alert.

    Para mais informações sobre como configurar parâmetros de alerta, consulte Criar uma regra de alerta baseada em log.

    Após criar uma regra de alerta, visualize, modifique ou desative-a. Para mais informações, consulte Gerenciar regras de alerta.

Operações relacionadas

Desativar a coleta de logs

Para interromper a coleta de logs do CoreDNS, execute o comando a seguir para excluir o recurso personalizado:

kubectl -n kube-system delete AliyunLogConfig k8s-coredns-log

Após a exclusão do recurso, os logs do CoreDNS deixam de ser enviados ao Simple Log Service (SLS).