Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Analyze and monitor CoreDNS logs

Dernière mise à jour :Aug 11, 2026

Activez la collecte des journaux CoreDNS pour diagnostiquer la 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 pour configurer la journalisation des domaines personnalisés.

Remarques 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 le namespace kube-system, localisez le 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 la rubrique 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 vous y êtes invité), puis sur Enable Log Collection.

Méthode 2 : Activer le service avec 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 la rubrique 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, le réseau et la mise à l'échelle automatique, consultez la rubrique Étape 1 : Créer des configurations de collecte de journaux.

É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 la rubrique Guide rapide d'interrogation et d'analyse.

    • Histogramme des journaux

      Affiche la répartition 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. Prêtez attention à la valeur RCODE. Consultez la rubrique 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 journal.
      |
      INFO
      | |
      {remote}
      |
      L'adresse IP du client.
      |
      172.16.0.10
      | |
      {port}
      |
      Le port client.
      |
      58008
      | |
      {id}
      |
      L'ID de la requête.
      |
      34518
      | |
      {type}
      |
      Le type de requête.
      |
      A
      | |
      {class}
      |
      La classe de 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 (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 (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 réponse non compressée (octets).
      |
      110
      | |
      {duration}
      |
      La latence de résolution (secondes).
      |
      0.00011
      |































































































    • Graphique

      Visualisez les résultats des requêtes sous l'onglet Graph.

    • LogReduce

      Sous l'onglet LogReduce, cliquez sur Enable LogReduce pour regrouper les journaux similaires. Consultez la rubrique 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 offre :

    • Total Requests, Success Ratio, and Latency : Surveillez l'état 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 goulets d'étranglement de performance.

Étape 5 : Configurer des alertes

Depuis 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 la rubrique Créer une règle d'alerte.alert

    Après avoir créé une règle, consultez-la, modifiez-la ou désactivez-la via la rubrique 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 vers SLS.

\