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-controlleradalah0.2.0.0-76648ee-aliyunatau yang lebih baru.Jika versi
alibaba-log-controllersudah 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
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
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Di namespace kube-system, temukan ConfigMap
corednslalu klik Edit.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
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Pada tab , 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.
Konfigurasi ini hanya berlaku untuk format log CoreDNS default. Jika Anda menggunakan format kustom, ubah bidang
Regexdalam definisi CRD.Untuk format log kustom, lihat plugin log CoreDNS.
Lihat Gunakan CRD untuk mengumpulkan log kontainer dalam mode DaemonSet.
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
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Pada tab , klik Logstores untuk mengkueri dan menganalisis log DNS.
Masukkan pernyataan kueri dan pilih Last 1 Week untuk rentang waktu.
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.

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

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
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Pada tab , 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.
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.
Pada tab Basic Information, klik tautan di samping Log Service Project untuk membuka konsol SLS.
Di panel navigasi kiri halaman Logstores, klik . Di daftar dashboard, temukan dan klik Kubernetes CoreDNS Logs Analysis.
Pada halaman Kubernetes CoreDNS Logs Analysis, arahkan kursor ke pojok kanan atas grafik target lalu pilih .
Lihat Buat aturan 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-logSetelah dihapus, log CoreDNS tidak lagi dikirim ke SLS.
\
> Dashboard