Container Service for Kubernetes (ACK) menggunakan CoreDNS sebagai server DNS dalam kluster. Anda dapat melihat log CoreDNS untuk menganalisis masalah seperti resolusi DNS yang lambat dan akses ke domain berisiko tinggi. Topik ini menjelaskan cara mengaktifkan analisis dan pemantauan log untuk CoreDNS.
Prasyarat
Anda telah menginstal komponen pengumpulan log.
Jika Anda menggunakan komponen Logtail, pastikan aplikasi alibaba-log-controller berada pada versi 0.2.0.0-76648ee-aliyun atau yang lebih baru.
Jika versi alibaba-log-controller sudah usang, Anda dapat meningkatkan komponen Logtail. Untuk informasi selengkapnya tentang cara meningkatkan komponen, lihat Komponen.
Jika Anda menggunakan komponen LoongCollector, tidak ada persyaratan versi.
Langkah 1: Aktifkan plugin log CoreDNS
Perhatian
Pastikan komponen CoreDNS menggunakan versi terbaru. Untuk informasi selengkapnya tentang cara meningkatkan, lihat Kelola komponen.
Plugin log diaktifkan secara default untuk domain default pada versi terbaru CoreDNS. Untuk mengaktifkan plugin tersebut untuk domain lain, ikuti langkah-langkah berikut.
Prosedur
Setelah Anda mengaktifkan log CoreDNS, penggunaan CPU meningkat sekitar 10% (tergantung pada permintaan aktual) dan lalu lintas jaringan juga meningkat. Jika Pod replika CoreDNS berjalan dengan penggunaan CPU tinggi, Anda dapat menambahkan lebih banyak Pod CoreDNS. Untuk informasi selengkapnya, lihat Menyesuaikan skala Pod secara manual.
Di namespace kube-system kluster ACK, buka , klik item konfigurasi coredns, lalu periksa bidang Corefile dari item konfigurasi coredns untuk plugin log. Jika plugin tidak ditemukan, tambahkan seperti pada contoh berikut untuk mengaktifkan pencatatan log untuk resolusi nama domain CoreDNS. Untuk informasi selengkapnya, lihat Ubah Item Konfigurasi.
Kode berikut menunjukkan konfigurasi coredns yang menggunakan format log default.
Corefile: |
.:53 {
errors
log # Tambahkan plugin log di sini.
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 dan perlu mengumpulkan log untuk kontainer mereka, tambahkan plugin log dengan format yang sama.
demo.com:53 {
...
log # Tambahkan plugin log di sini.
}Langkah 2: Aktifkan layanan log CoreDNS
Metode 1: Aktifkan layanan di konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Log Center, pada tab , klik Install, lalu klik Enable CoreDNS Logs.
Metode 2: Aktifkan layanan menggunakan kubectl
Fitur pengumpulan log untuk ACK diperluas menggunakan CustomResourceDefinitions (CRD). Anda dapat menerapkan CRD AliyunLogConfig, dan Log Controller secara otomatis membuat konfigurasi pengumpulan dan laporan yang sesuai di Simple Log Service. Untuk informasi selengkapnya tentang cara membuat resource kustom AliyunLogConfig, lihat Kelola resource kustom.
Konfigurasi berikut hanya berlaku untuk format log default di CoreDNS. Jika Anda menggunakan format log kustom untuk CoreDNS, Anda harus memodifikasi bagian `Regex` dalam konfigurasi CRD.
Untuk informasi selengkapnya tentang format log kustom untuk CoreDNS, lihat log.
Untuk informasi selengkapnya tentang alur pengumpulan log dan konfigurasi pengumpulan, lihat Kumpulkan log kontainer menggunakan DaemonSet-CRD.
Untuk informasi selengkapnya tentang cara mengonfigurasi CRD AliyunLogConfig untuk resource seperti penyimpanan, jaringan, dan Auto Scaling, lihat Langkah 1: Buat file konfigurasi log untuk komponen bidang data.
Langkah 3: Kueri dan analisis log di Logstore
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Log Center, klik tab Network Component Logs. Lalu, klik Logstore pada tab CoreDNS untuk mengkueri dan menganalisis log DNS.
Di kotak pencarian, masukkan pernyataan kueri dan pilih Last 1 Week sebagai rentang waktu.
Klik Query/Analysis untuk melihat hasilnya.
Simple Log Service memungkinkan Anda melihat distribusi hasil kueri dan analisis dalam bentuk histogram, menganalisis log mentah, serta memeriksa hasil kueri dan analisis dalam berbagai jenis grafik. Untuk informasi selengkapnya tentang cara mengkueri dan menganalisis log, lihat Panduan Cepat Kueri dan Analisis.
Histogram Log
Histogram distribusi log menunjukkan distribusi log dari waktu ke waktu.

Log Mentah
Hasil kueri ditampilkan di tab Raw Logs. Anda dapat mengeklik Table atau Raw untuk melihat log dan menganalisisnya guna menentukan apakah resolusi nama domain tidak normal. Perhatikan dengan saksama nilai kode yang dikembalikan (RCODE). Untuk penjelasan tentang nilai RCODE, lihat Pemecahan masalah eror resolusi DNS.

Tabel berikut menjelaskan bidang-bidang tersebut.
Bidang
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}
Menentukan apakah bit EDNS0 DO (DNSSEC OK) diatur dalam kueri.
false
{bufsize}
Ukuran buffer EDNS0 (byte) yang didefinisikan dalam kueri.
65535
{rcode}
Kode tanggapan.
NOERROR
{rflags}
Flag tanggapan. Setiap flag yang diatur akan ditampilkan.
qr,aa,rd
{rsize}
Ukuran tanggapan tak terkompresi (byte).
110
{duration}
Waktu tanggapan (detik).
0,00011
Grafik Statistik
Setelah menjalankan pernyataan kueri, Anda dapat melihat hasil visualisasi di tab Statistical Chart.
LogReduce
Di tab LogReduce, klik Enable LogReduce untuk mengagregasi log yang sangat mirip selama pengumpulan log. Untuk informasi selengkapnya, lihat LogReduce.
Langkah 4: Lihat data pengumpulan log CoreDNS di dasbor
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Log Center, klik tab Network Component Logs, lalu tab CoreDNS. Klik Dashboard untuk melihat dasbor Kubernetes CoreDNS Log Analysis.
Di halaman Kubernetes CoreDNS Log Analysis, Anda dapat melihat metrik utama seperti jumlah total permintaan CoreDNS, tingkat keberhasilan permintaan, dan latensi permintaan. Dasbor ini juga menampilkan domain yang paling sering diminta, domain dengan kesalahan, domain dengan resolusi lambat, serta analisis akses ke domain berisiko tinggi.
Langkah 5: Buat peringatan untuk log CoreDNS
Anda dapat membuat aturan peringatan dari grafik di dasbor Kubernetes CoreDNS Log Analysis. Operasi ini hanya tersedia di konsol Simple Log Service (SLS).
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster target dan klik namanya. Di panel navigasi kiri, klik Cluster Information.
Di tab Basic Information halaman Cluster Information, klik tautan di sebelah Simple Log Service Project untuk membuka konsol SLS.
Di panel navigasi kiri halaman Logstore, klik ikon Dasbor
. Di daftar dasbor, temukan dan klik Kubernetes CoreDNS Log Analysis.Di halaman Kubernetes CoreDNS Log Analysis, arahkan kursor ke pojok kanan atas grafik target dan pilih .
Untuk informasi selengkapnya tentang parameter konfigurasi peringatan, lihat Buat aturan peringatan dan pemantauan log.

Setelah aturan peringatan dibuat, Anda dapat melihat, memodifikasi, dan menonaktifkan aturan peringatan tersebut. Untuk informasi selengkapnya, lihat Kelola aturan pemantauan peringatan.
Operasi terkait
Nonaktifkan pengumpulan log
Jika Anda tidak lagi memerlukan pengumpulan log CoreDNS, jalankan perintah berikut untuk menguninstall CRD pengumpulan log dan menghentikan pengumpulan log.
kubectl -n kube-system delete AliyunLogConfig k8s-coredns-logSetelah Anda menghapus CRD, log CoreDNS tidak lagi dikirim ke SLS.