Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Analyze and monitor CoreDNS logs

Dernière mise à jour :Sep 29, 2026

Activez la collecte des journaux CoreDNS pour diagnostiquer les problèmes de latence DNS et détecter les domaines à haut risque dans vos clusters ACK.

Prérequis

Étape 1 (facultative) : Activer le plug-in de journalisation CoreDNS

Remarque

Dans la dernière version de CoreDNS, le plug-in de journalisation est activé par défaut pour le domaine par défaut. Suivez ces étapes uniquement si vous souhaitez configurer la journalisation pour des domaines personnalisés.

Notes d'utilisation

L'activation des journaux augmente l'utilisation du processeur de CoreDNS d'environ 10 %, selon le volume de requêtes. Si l'utilisation du processeur est déjà élevée, augmentez le nombre de réplicas CoreDNS avant de poursuivre.

Procédure

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Operations > Log Center.

  3. Dans l'espace de noms kube-system, recherchez la ConfigMap coredns et cliquez sur Edit.

  4. Vérifiez la présence du plug-in log dans le fichier Corefile (généralement dans le bloc .:53). S'il est absent, ajoutez-le comme indiqué ci-dessous. Consultez Modifier un paramètre.

Configuration coredns avec le format de journal par défaut :

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

Étape 2 : Activer la collecte des journaux CoreDNS

Méthode 1 : Activer le service depuis la console

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Operations > Log Center.

  3. Sous l'onglet Network Component Logs > CoreDNS, cliquez sur Install (si demandé), puis sur Enable Log Collection.

Méthode 2 : Activer le service à l'aide de kubectl

Déployez une définition de ressource personnalisée (CRD) AliyunLogConfig pour automatiser la création du Logstore et du tableau de bord. Consultez Gérer les ressources personnalisées.

Important
  1. Créez un fichier nommé k8s-coredns-log.yaml avec le contenu suivant :

    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. Appliquez la configuration.

    kubectl apply -f k8s-coredns-log.yaml

Pour configurer la CRD AliyunLogConfig pour des ressources telles que le stockage, la mise en réseau et la mise à l'échelle automatique, consultez Étape 1 : Créer un fichier de configuration de journal pour un plug-in système.

Étape 3 : Interroger et analyser les journaux dans le Logstore

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Operations > Log Center.

  3. Sous l'onglet Network Component Logs > CoreDNS, cliquez sur Logstores pour interroger et analyser les journaux DNS.

  4. Saisissez une instruction de requête et sélectionnez Last 1 Week pour la plage temporelle.

  5. Cliquez sur Search & Analyze pour afficher les résultats.

    Simple Log Service (SLS) affiche les résultats sous forme d'histogrammes, de journaux bruts et de graphiques statistiques. Consultez Démarrage rapide pour l'interrogation et l'analyse.

    • Histogramme des journaux

      Affiche la distribution des journaux dans le temps.

      image..png

    • Journaux bruts

      Sous l'onglet Raw Logs, cliquez sur Table ou Raw Data pour vérifier les anomalies DNS. Portez une attention particulière à la valeur RCODE. Consultez Résoudre les problèmes de résolution DNS.

      image..png

      Référence des champs de journal CoreDNS

      Field

      Description

      Example

      {level}

      Le niveau de journalisation.

      INFO

      {remote}

      L'adresse IP du client.

      172.16.0.10

      {port}

      Le port du client.

      58008

      {id}

      L'ID de la requête.

      34518

      {type}

      Le type de requête.

      A

      {class}

      La classe de la requête.

      IN

      {name}

      Le nom de domaine demandé.

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

      {proto}

      Le protocole utilisé.

      tcp

      {size}

      La taille de la requête (en octets).

      56

      {do}

      Indique si le bit EDNS0 DO (DNSSEC OK) est défini dans la requête.

      false

      {bufsize}

      La taille du tampon EDNS0 (en octets) dans la requête.

      65535

      {rcode}

      Le code de réponse.

      NOERROR

      {rflags}

      Les indicateurs de réponse. Affiche chaque indicateur défini.

      qr,aa,rd

      {rsize}

      La taille de la réponse non compressée (en octets).

      110

      {duration}

      La latence de résolution (en secondes).

      0.00011

    • Graphique

      Visualisez les résultats de la requête sous l'onglet Graph.

    • LogReduce

      Sous l'onglet LogReduce, cliquez sur Enable LogReduce pour regrouper les journaux similaires. Consultez LogReduce.

Étape 4 : Visualiser avec des tableaux de bord

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Operations > Log Center.

  3. Sous l'onglet Network Component Logs > CoreDNS, cliquez sur Dashboards pour afficher le tableau de bord Kubernetes CoreDNS Logs Analysis. Celui-ci fournit :

    • Total Requests, Success Ratio, and Latency : Surveillez l'état de santé du DNS en un coup d'œil.

    • Top Requested Domains : Identifiez les services les plus actifs.

    • Top Error Domains : Trouvez les domaines provoquant des erreurs NXDOMAIN ou SERVFAIL.

    • Timeout Domains, High-risk Domains, and Slow Logs : Identifiez les goulots d'étranglement de performance.

Étape 5 : Configurer des alertes

Sur le tableau de bord Kubernetes CoreDNS Logs Analysis, configurez des alertes basées sur des graphiques individuels. Cette fonctionnalité est disponible uniquement dans la console SLS.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.

  3. Sous l'onglet Basic Information, cliquez sur le lien situé à côté de Log Service Project pour accéder à la console SLS.

  4. Dans le volet de navigation de gauche de la page Logstores, cliquez sur Dashboard > Dashboard. Dans la liste des tableaux de bord, recherchez et cliquez sur Kubernetes CoreDNS Logs Analysis.

  5. Sur la page Kubernetes CoreDNS Logs Analysis, placez le curseur dans le coin supérieur droit du graphique cible et sélectionnez more > Save as Alert.

    Consultez Créer une règle d'alerte.alert

    Après avoir créé une règle, consultez-la, modifiez-la ou désactivez-la via Gérer les règles de surveillance des alertes.

Opérations connexes

Désactiver la collecte de journaux

Pour arrêter la collecte des journaux CoreDNS, supprimez la configuration :

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

Après la suppression, les journaux CoreDNS ne sont plus envoyés à SLS.

\