Pemantauan event melengkapi pemantauan sumber daya dengan memberikan responsivitas real-time, akurasi, dan cakupan skenario yang lebih luas—misalnya, ketika sebuah Pod di-evict, gagal menarik image, atau node melaporkan pengecualian perangkat keras. Secara default, Kubernetes hanya menyimpan event tersebut selama satu jam. Untuk mendeteksi anomali sebelum data kedaluwarsa, ACK menyediakan pemantauan event end-to-end yang mengumpulkan, menyimpan, memberi peringatan, dan mengarsipkan event kluster.
Secara default, ACK mengalirkan (sink) event kluster ke Simple Log Service dan menyimpannya secara gratis selama 90 hari. Lihat Buat dan gunakan event center.
Cara kerja
ACK menggunakan dua alat open-source:
node-problem-detector (NPD) — Mendiagnosis node Kubernetes. NPD mendeteksi pengecualian node seperti hang pada engine Docker, hang pada kernel Linux, pengecualian lalu lintas outbound, dan pengecualian file descriptor, menghasilkan event node, serta bekerja sama dengan kube-eventer untuk menutup loop manajemen peringatan. Lihat NPD.
kube-eventer — Emitter event open-source yang dikelola oleh ACK. kube-eventer meneruskan event Kubernetes ke sink seperti DingTalk, Simple Log Service, dan EventBridge, memfilter event berdasarkan tingkat keparahan, serta memungkinkan pengumpulan real-time, pemberian peringatan, dan pengarsipan asinkron. Lihat kube-eventer.
Kubernetes menghasilkan dua jenis event:
Type | Kapan dihasilkan | Contoh |
Normal | Transisi state machine ke kondisi yang diharapkan | Pod dijadwalkan, kontainer dimulai |
Warning | Transisi state machine ke kondisi yang tidak diharapkan | Pod di-evict, gagal menarik image, |
Kasus penggunaan
Pilih skenario berdasarkan kebutuhan pemantauan Anda:
Skenario | Kapan digunakan |
Skenario 1: Gunakan NPD dengan event center Simple Log Service | Mulai dengan cepat. Alirkan semua event kluster ke Simple Log Service untuk visualisasi, kueri, dan peringatan dalam satu tempat. |
Deteksi pengecualian tingkat node seperti tekanan disk, masalah jaringan, dan kegagalan daemon Docker, serta picu manajemen peringatan closed-loop. | |
Arahkan event Warning ke grup DingTalk untuk notifikasi ChatOps real-time. | |
Pertahankan event Kubernetes dalam Logstore khusus untuk penyimpanan jangka panjang, pengindeksan, dan analisis offline. | |
Bangun arsitektur berbasis event untuk memicu remediasi otomatis atau alur kerja downstream dari event kluster. |
Skenario 1: Gunakan NPD dengan event center Simple Log Service
NPD bekerja dengan plug-in pihak ketiga untuk mendeteksi pengecualian node dan menghasilkan event kluster. Event center Simple Log Service mengumpulkan, menyimpan, dan memvisualisasikan event tersebut dengan fitur kueri dan peringatan bawaan.
Langkah 1: Instal komponen ack-node-problem-detector
Jika Anda memilih Install node-problem-detector and Create Event Center saat membuat kluster, lewati ke Langkah 2: Lihat event center. Untuk menginstal saat pembuatan kluster, lihat Buat kluster ACK yang dikelola.
Jika tidak, instal komponen secara manual:
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, pilih Clusters.
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, klik Add-ons.
Di tab Observability, temukan dan instal ack-node-problem-detector.
Langkah 2: Lihat event center
Masuk ke Konsol ACK. Di panel navigasi kiri, pilih Clusters.
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Operations > Event Center.
Di halaman Event Center, klik tab Event Overview (Event Center) untuk melihat semua event Kubernetes, detailnya, dan siklus hidup Pod. Lihat Kumpulkan event Kubernetes.
Skenario 2: Jalankan diagnosis node NPD
NPD dengan kube-eventer menyediakan manajemen peringatan closed-loop untuk event node. Saat NPD mendeteksi pengecualian, kube-eventer meneruskan event tersebut ke sink yang dikonfigurasi dan memunculkan peringatan.
Prasyarat
Sebelum memulai:
ack-node-problem-detector telah diinstal. Jika belum, lihat Langkah 1: Instal komponen ack-node-problem-detector. Jika sudah diinstal, instal ulang terlebih dahulu — lihat Instal ulang komponen ack-node-problem-detector.
Verifikasi DaemonSet sedang berjalan
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Workloads > DaemonSets.
Di tab DaemonSets, pilih namespace kube-system dan verifikasi bahwa ack-node-problem-detector-daemonset sedang berjalan. Saat NPD dan kube-eventer berjalan, sistem mengalirkan event dan memunculkan peringatan sesuai konfigurasi kube-eventer.
Plug-in diagnosis node
Mulai dari NPD 1.2.29, plug-in deteksi anomali GPU diterapkan sebagai DaemonSet terpisah bernama ack-accel-health-monitor.
Plug-in | Yang diperiksa | Ambang batas default | Diaktifkan secara default |
| Apakah jam sistem disinkronkan melalui Network Time Protocol (NTP) | — | Ya |
| Apakah penggunaan tabel connection tracking (conntrack) melebihi ambang batas | 90% | Ya |
| Apakah penggunaan inode pada sistem disk melebihi ambang batas (dapat disesuaikan) | 80% | Ya |
| Apakah rasio proses PID melebihi ambang batas maksimum kernel | 85% | Ya |
| Apakah daemon Docker sedang berjalan | — | Ya |
| Apakah penggunaan file descriptor melebihi ambang batas (dapat disesuaikan). Catatan Plug-in ini mengonsumsi sumber daya signifikan. Aktifkan hanya jika diperlukan. | 80% | Tidak |
| Apakah node memiliki peran RAM dan ID AccessKey/rahasia yang diperlukan | — | Tidak |
| Apakah GPU NVIDIA dapat menghasilkan pesan | — | Tidak |
| Apakah plug-in Container Storage Interface (CSI) sedang berjalan | — | Tidak |
| Apakah ada proses dalam status sleep yang tidak dapat diinterupsi (D) | — | Tidak |
| Apakah node dapat mengakses Internet | — | Tidak |
| Apakah daemon | — | Tidak |
Skenario 3: Kirim peringatan ke DingTalk
Chatbot DingTalk yang menerima peringatan event Kubernetes merupakan pola ChatOps yang umum. Ketika event tingkat Warning terjadi, kube-eventer mendorong pesan ke grup DingTalk melalui webhook.
Prasyarat
Sebelum memulai:
ack-node-problem-detector telah diinstal. Jika belum, lihat Langkah 1: Instal komponen ack-node-problem-detector. Jika sudah diinstal, instal ulang terlebih dahulu — lihat Instal ulang komponen ack-node-problem-detector.
Langkah 1: Tambahkan chatbot DingTalk
Klik
di pojok kanan atas kotak obrolan untuk membuka Group Settings.Klik Bot > Add Robot. Pilih Custom sebagai jenis chatbot.
Di halaman Robot details, klik Add untuk membuka halaman Add Robot. Atur parameter berikut, terima Ketentuan Layanan DingTalk Custom Robot Service, lalu klik Finished:
Parameter
Deskripsi
Edit profile picture
Avatar chatbot. Opsional.
Chatbot name
Nama tampilan chatbot.
Add to Group
Grup DingTalk tempat menambahkan chatbot.
Security settings
Tiga opsi: Custom Keywords, tanda tangan tambahan, dan alamat IP (atau Blok CIDR). Hanya Custom Keywords yang menyaring peringatan event kluster. Pilih Custom Keywords dan masukkan
Warning. Tambahkan hingga 10 kata kunci untuk mempersempit filter.Klik Copy untuk menyalin URL webhook.
Di halaman ChatBot, klik
di samping chatbot untuk mengubah avatar dan nama, mengaktifkan atau menonaktifkan dorongan pesan, mengatur ulang URL webhook, atau menghapus chatbot.
Langkah 2: Konfigurasikan kube-eventer untuk mengirim event ke DingTalk
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Applications > Helm.
Di halaman Helm, temukan ack-node-problem-detector dan klik Update di kolom Actions.
Atur parameter berikut, lalu klik OK:
Di bagian
npd, aturenabledmenjadifalse.Atur
eventer.sinks.dingtalk.enabledmenjaditrue.Masukkan token dari URL webhook yang disalin.
Hasil
kube-eventer berlaku 30 detik setelah deployment. Event tingkat Warning akan memicu peringatan di grup DingTalk.

Skenario 4: Arsipkan event ke Simple Log Service
Alirkan event Kubernetes ke Simple Log Service untuk penyimpanan persisten, pengindeksan, dan audit. Untuk retensi jangka panjang atau pengarsipan offline, konfigurasikan Logstore dan pengiriman data opsional ke MaxCompute atau Object Storage Service (OSS). Lihat Buat dan gunakan event center.
Prasyarat
Sebelum memulai:
ack-node-problem-detector telah diinstal dengan proyek dan Logstore yang ditentukan. Jika sudah diinstal, instal ulang terlebih dahulu — lihat Instal ulang komponen ack-node-problem-detector.
Langkah 1: Buat proyek dan Logstore Simple Log Service
Masuk ke Konsol Simple Log Service.
Di bagian Projects, klik Create Project. Di panel Create Project, atur parameter dan klik Create.
Buat proyek Simple Log Service di wilayah yang sama dengan kluster Anda. Transmisi dalam satu wilayah menggunakan jaringan internal, yang mengurangi latensi dan menghilangkan biaya bandwidth cross-region. Contoh ini membuat proyek bernama
k8s-log4jdi China (Hangzhou).Di bagian Projects, klik k8s-log4j untuk membuka halaman detail proyek.
Di panel Logstores, klik + untuk membuka panel Create Logstore.
Atur parameter dan klik OK. Contoh ini membuat Logstore bernama
k8s-logstore.Di panel Create Logstore, item konfigurasi utama meliputi:
Logstore Type: Standard
Data Retention Period: 30 hari (jumlah tetap hari)
Number of Shards: 2
Automatic Shard Split: diaktifkan, dengan maksimal 64 split
Record Public IP: diaktifkan
WebTracking: dinonaktifkan secara default
Setelah Logstore dibuat, klik Data Import Wizard untuk membuka kotak dialog Import Data.
Pilih Log4j 1/2 dan lengkapi konfigurasi. Contoh ini menggunakan pengaturan default.
Di area Log Description halaman konfigurasi sumber data, Log4j dijelaskan terdiri dari tiga komponen: level prioritas (ERROR, WARN, INFO, DEBUG), tujuan output, dan format output. Alibaba Cloud Log Log4j Appender dapat mengeluarkan log ke Simple Log Service (SLS) (untuk alamat unduhan dan petunjuk penggunaan, lihat GitHub). Di area Usage Notes, klik tautan View Help untuk mendapatkan panduan ingestasi terperinci, lalu klik Next.
Langkah 2: Konfigurasikan kube-eventer untuk mengalirkan event ke Simple Log Service
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Applications > Helm.
Di halaman Helm, temukan ack-node-problem-detector dan klik Update di kolom Actions.
Atur parameter berikut, lalu klik OK:
Di bagian
npd, aturenabledmenjadifalse.Atur
eventer.sinks.sls.enabledmenjaditrue.
Langkah 3: Verifikasi pengumpulan event dan atur pengindeksan
Picu event kluster — misalnya, hapus Pod atau buat aplikasi.
Masuk ke konsol Simple Log Service untuk melihat event yang dikumpulkan. Lihat Konsumsi data log menggunakan SDK Simple Log Service.
Di kotak dialog Consumption Preview, pilih nama indeks (misalnya,
k8s-event), atur Shard dan rentang waktu, lalu klik Preview. Jika data log berhasil diunggah, tabel akan menampilkan catatan log berformat JSON dari event Kubernetes, termasuk bidang sepertilevel,eventId,namespace,reason, danmessage.Atur pengindeksan untuk kueri dan analisis. Lihat Buat indeks.
Di bagian Projects, klik nama proyek.
Klik
di samping nama Logstore dan pilih Search & Analysis.Di pojok kanan atas, klik Enable Index.
Di panel Search & Analysis, atur parameter dan klik OK. > Note: Konfigurasi indeks berlaku dalam waktu 1 menit dan hanya berlaku untuk data yang diingest setelah indeks diaktifkan atau dimodifikasi.
(Opsional) Untuk mengarsipkan event guna analisis offline, kirim data dari Logstore ke MaxCompute atau Object Storage Service (OSS). Lihat Buat pekerjaan pengiriman data versi baru untuk mengirim data ke MaxCompute dan Buat pekerjaan pengiriman data OSS (versi baru).
Skenario 5: Arahkan event ke EventBridge
EventBridge adalah layanan event arsitektur tanpa server yang menghubungkan layanan Alibaba Cloud, aplikasi kustom, dan aplikasi software as a service (SaaS) secara terstandarisasi dan terpusat. Mengarahkan event ACK ke EventBridge memungkinkan Anda membangun arsitektur berbasis event yang longgar terikat—misalnya, untuk memicu remediasi otomatis saat event tertentu terjadi. Lihat Apa itu EventBridge?
Prasyarat
Sebelum memulai:
EventBridge telah diaktifkan. Lihat Aktifkan EventBridge dan berikan izin kepada Pengguna RAM.
ack-node-problem-detector telah diinstal. Jika belum, lihat Langkah 1: Instal komponen ack-node-problem-detector. Jika sudah diinstal, instal ulang terlebih dahulu — lihat Instal ulang komponen ack-node-problem-detector.
Aktifkan EventBridge sebagai sink event
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Applications > Helm.
Di halaman Helm, temukan ack-node-problem-detector dan klik Update di kolom Actions.
Atur
eventer.sinks.eventbridge.enabledmenjaditrue, lalu klik OK.eventer: accessKeyId: "" accessKeySecret: "" enabled: true env: - TZ: Asia/Shanghai image: pullPolicy: Always repository: registry-cn-hangzhou-vpc.ack.aliyuncs.com/acs/kube-eventer tag: v1.2.11-0620284-aliyun othersinks: null resources: limits: cpu: "1.0" memory: 1024Mi requests: cpu: 100m memory: 200Mi sinks: dingtalk: enabled: false label: "" level: Warning monitorkinds: Node,Pod monitornamespaces: "" token: "" eventbridge: enabled: false
Lihat event Kubernetes di EventBridge
Masuk ke Konsol EventBridge.
Di panel navigasi kiri, klik Event Buses.
Di halaman Event Buses, klik event bus target.
Di panel navigasi kiri, klik Event Tracking.
Pilih metode kueri, atur kondisi, lalu klik Query.
Temukan event dan klik Details di kolom Actions. Lihat Kueri event berdasarkan ID event.
Instal ulang komponen ack-node-problem-detector
Instal ulang komponen saat Anda mengubah target sink (misalnya, dari Simple Log Service ke DingTalk) atau memperbarui konfigurasi komponen.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, pilih Clusters.
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Workloads > Jobs.
Di halaman Jobs, klik More di samping
kube-eventer-init-v1.7-xxxxdan klik Delete.Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Applications > Helm.
Di halaman Helm, hapus komponen ack-node-problem-detector.
Di halaman Clusters, temukan kluster dan klik namanya. Di panel navigasi kiri, pilih Operations > Add-ons.
Di tab Observability, temukan dan instal ulang ack-node-problem-detector.