All Products
Search
Document Center

Container Service for Kubernetes:Analisis dan pantau log CoreDNS

Last Updated:Aug 21, 2026

Aktifkan pengumpulan log CoreDNS untuk menangani latensi DNS dan mendeteksi domain berisiko tinggi di kluster ACK.

Prasyarat

  • add-on pengumpulan log telah diinstal.

    • Untuk Logtail: Versi alibaba-log-controller adalah 0.2.0.0-76648ee-aliyun atau yang lebih baru.

      Jika versi alibaba-log-controller sudah usang, upgrade add-on Logtail.

    • Untuk LoongCollector: Semua versi didukung.

  • CoreDNS telah di-upgrade ke versi terbaru. Lihat Kelola komponen.

Langkah 1 (opsional): Aktifkan plugin log CoreDNS

Catatan

Pada versi CoreDNS terbaru, plugin log diaktifkan secara default untuk domain default. Ikuti langkah-langkah berikut hanya jika ingin mengonfigurasi pencatatan log untuk domain kustom.

Catatan penggunaan

Mengaktifkan log meningkatkan penggunaan CPU CoreDNS sekitar 10%, tergantung pada volume permintaan. Jika pemanfaatan CPU sudah tinggi, tambah jumlah replika CoreDNS sebelum melanjutkan.

Prosedur

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Operations > Log Center.

  3. Di namespace kube-system, temukan ConfigMap coredns lalu klik Edit.

  4. Periksa Corefile untuk plugin log (biasanya berada di blok .:53). Jika tidak ada, tambahkan seperti contoh berikut. Lihat Ubah parameter.

Konfigurasi coredns dengan format log default:

Corefile: |
    .:53 {
        errors
        log # Tambahkan plugin log di sini untuk mengaktifkan pencatatan resolusi DNS.
        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
    }
    # Jika Anda memiliki domain lain, tambahkan plugin log ke bloknya juga.
    demo.com:53 {
        ... 
        log # Tambahkan plugin log di sini.
    }

Langkah 2: Aktifkan pengumpulan log CoreDNS

Metode 1: Aktifkan layanan di konsol

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Operations > Log Center.

  3. Pada tab Network Component Logs > CoreDNS, klik Install (jika diminta), lalu klik Enable Log Collection.

Metode 2: Aktifkan layanan menggunakan kubectl

Deploy Custom Resource Definition (CRD) AliyunLogConfig untuk mengotomatiskan pembuatan logstore dan dashboard. Lihat Kelola resource kustom.

Penting
  1. Buat file bernama k8s-coredns-log.yaml dengan konten berikut:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #     Nama konfigurasi Anda, harus unik dalam kluster ACK Anda.
      name: k8s-coredns-log
      namespace: kube-system
    spec:
      # Nama logstore untuk mengunggah log
      logstore: coredns-log
      # Detail konfigurasi Logtail
      productCode: k8s-coredns
      logtailConfig:
        inputType: plugin
        # Nama konfigurasi Logtail, harus sama dengan [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. Terapkan konfigurasi tersebut.

    kubectl apply -f k8s-coredns-log.yaml

Untuk mengonfigurasi CRD AliyunLogConfig bagi resource seperti penyimpanan, jaringan, dan auto scaling, lihat Langkah 1: Buat konfigurasi pengumpulan log.

Langkah 3: Kueri dan analisis log di Logstore

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Operations > Log Center.

  3. Pada tab Network Component Logs > CoreDNS, klik Logstores untuk mengkueri dan menganalisis log DNS.

  4. Masukkan pernyataan kueri dan pilih Last 1 Week untuk rentang waktu.

  5. Klik Search & Analyze untuk melihat hasilnya.

    Simple Log Service (SLS) menampilkan hasil sebagai histogram, log mentah, dan grafik statistik. Lihat Memulai kueri dan analisis.

    • Histogram log

      Menunjukkan distribusi log dari waktu ke waktu.

      image..png

    • Log mentah

      Pada tab Raw Logs, klik Table atau Raw Data untuk memeriksa anomali DNS. Perhatikan nilai RCODE. Lihat Atasi masalah resolusi DNS.

      image..png

      Referensi field log CoreDNS

      Field

      Deskripsi

      Contoh

      {level}

      Tingkat log.

      INFO

      {remote}

      Alamat IP klien.

      172.16.0.10

      {port}

      Port klien.

      58008

      {id}

      ID kueri.

      34518

      {type}

      Jenis permintaan.

      A

      {class}

      Kelas permintaan.

      IN

      {name}

      Nama domain yang diminta.

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

      {proto}

      Protokol yang digunakan.

      tcp

      {size}

      Ukuran permintaan (byte).

      56

      {do}

      Apakah bit EDNS0 DO (DNSSEC OK) diatur dalam kueri.

      false

      {bufsize}

      Ukuran buffer EDNS0 (byte) dalam kueri.

      65535

      {rcode}

      Kode respons.

      NOERROR

      {rflags}

      Flag respons. Menampilkan setiap flag yang diatur.

      qr,aa,rd

      {rsize}

      Ukuran tanggapan yang tidak terkompresi (dalam byte).

      110

      {duration}

      Latensi resolusi (detik).

      0.00011

    • Grafik

      Lihat hasil kueri yang divisualisasikan pada tab Graph.

    • LogReduce

      Pada tab LogReduce, klik Enable LogReduce untuk mengagregasi log yang serupa. Lihat LogReduce.

Langkah 4: Visualisasi dengan dashboard

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Operations > Log Center.

  3. Pada tab Network Component Logs > CoreDNS, klik Dashboards untuk melihat dashboard Kubernetes CoreDNS Logs Analysis. Dashboard ini menyediakan:

    • Total Permintaan, Rasio Keberhasilan, dan Latensi: Pantau kesehatan DNS secara sekilas.

    • Domain yang Paling Sering Diminta: Identifikasi layanan yang paling aktif.

    • Domain dengan Error Terbanyak: Temukan domain yang menyebabkan error NXDOMAIN atau SERVFAIL.

    • Domain Timeout, Domain Berisiko Tinggi, dan Log Lambat: Identifikasi hambatan kinerja.

Langkah 5: Konfigurasi alert

Pada dashboard Kubernetes CoreDNS Logs Analysis, atur alert berdasarkan grafik tertentu. Fitur ini hanya tersedia di konsol SLS.

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

  3. Pada tab Basic Information, klik tautan di samping Log Service Project untuk membuka konsol SLS.

  4. Di panel navigasi kiri halaman Logstores, klik Dashboard > Dashboard. Di daftar dashboard, temukan dan klik Kubernetes CoreDNS Logs Analysis.

  5. Pada halaman Kubernetes CoreDNS Logs Analysis, arahkan kursor ke pojok kanan atas grafik target lalu pilih more > Save as Alert.

    Lihat Buat aturan alert.alert

    Setelah membuat aturan, Anda dapat melihat, mengubah, atau menonaktifkannya di Kelola aturan pemantauan alert.

Operasi terkait

Nonaktifkan pengumpulan log

Untuk menghentikan pengumpulan log CoreDNS, hapus konfigurasi berikut:

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

Setelah dihapus, log CoreDNS tidak lagi dikirim ke SLS.

\