All Products
Search
Document Center

Simple Log Service:Kumpulkan event Kubernetes

Last Updated:Aug 26, 2026

Dokumen ini menjelaskan cara menggunakan eventer untuk mengumpulkan event dari Kubernetes dan mengirimkannya ke Simple Log Service.

Arsitektur Kubernetes didasarkan pada mesin keadaan. Transisi antar keadaan menghasilkan event yang sesuai: transisi antar keadaan normal menghasilkan event tingkat Normal, sedangkan transisi antara keadaan normal dan tidak normal menghasilkan event tingkat Warning.

Container Service for Kubernetes (ACK) menyediakan solusi pemantauan event siap pakai untuk skenario kontainer. Solusi ini menggunakan NPD yang dikelola oleh ACK dan kube-eventer bawaan untuk menyediakan pemantauan event kontainer.

  • Node Problem Detector (NPD) adalah tool diagnostik untuk node Kubernetes. Tool ini mengonversi anomali node—seperti hang Docker Engine, hang kernel Linux, masalah egress jaringan, atau anomali deskriptor file—menjadi event node. Ketika dikombinasikan dengan kube-eventer, NPD memungkinkan sistem loop tertutup untuk peringatan event node.

  • kube-eventer adalah tool open source yang dikelola oleh ACK untuk pemrosesan offline event Kubernetes. Tool ini mendorong event kluster ke sistem eksternal seperti DingTalk, SLS, dan EventBridge, serta menyediakan kondisi filter untuk berbagai tingkat event guna mengaktifkan pengumpulan real-time, peringatan terarah, dan pengarsipan asinkron.

  • Node Problem Detector (NPD) adalah tool diagnostik untuk node Kubernetes. Tool ini mengonversi anomali node—seperti hang Docker Engine, hang kernel Linux, masalah egress jaringan, atau anomali deskriptor file—menjadi event node. Ketika dikombinasikan dengan kube-eventer, NPD memungkinkan sistem loop tertutup untuk peringatan event node.

  • kube-eventer adalah tool open source yang dikelola oleh ACK untuk pemrosesan offline event Kubernetes. Tool ini mendorong event kluster ke sistem eksternal seperti DingTalk, SLS, dan EventBridge, serta menyediakan kondisi filter untuk berbagai tingkat event guna mengaktifkan pengumpulan real-time, peringatan terarah, dan pengarsipan asinkron.

Prasyarat

Kluster Kubernetes telah dibuat, seperti kluster ACK Alibaba Cloud atau kluster ACK serverless.

Penagihan

Pusat event K8s gratis jika memenuhi kondisi berikut:

  • Periode retensi data untuk Logstore yang terkait dengan pusat event K8s adalah 90 hari (nilai default).

  • Volume data yang ditulis ke pusat event K8s kurang dari 256 MB per hari, yaitu sekitar 250.000 event.

Contoh:

  • Jika Anda menggunakan periode retensi data default 90 hari dan kluster Kubernetes Anda menghasilkan 1.000 event per hari, pusat event K8s gratis.

  • Jika Anda mengatur periode retensi data menjadi 105 hari dan kluster Kubernetes Anda menghasilkan 1.000 event per hari, Anda akan dikenai biaya penyimpanan Logstore setelah 90 hari. Item yang dapat ditagih adalah Penyimpanan Log. Untuk informasi lebih lanjut tentang item Penyimpanan Log, lihat Item yang dapat ditagih dalam mode bayar-per-fitur.

Langkah 1: Deploy kube-eventer dan node-problem-detector

ACK

Untuk kluster ACK, komponen ack-node-problem-detector mengintegrasikan fitur kube-eventer dan node-problem-detector. Anda hanya perlu mendeploy komponen ini. Untuk kluster ACK serverless, Anda perlu mendeploy komponen kube-eventer.

NPD mendeteksi masalah atau titik kegagalan node berdasarkan konfigurasi dan plugin pihak ketiga, lalu menghasilkan event kluster yang sesuai. Kluster Kubernetes juga menghasilkan berbagai event akibat transisi keadaan, seperti eviction Pod dan kegagalan pull image. Kubernetes Event Center dari Simple Log Service (SLS) mengagregasi semua event Kubernetes secara real-time serta menyediakan kemampuan penyimpanan, kueri, analisis, visualisasi, dan peringatan. Langkah-langkah berikut menjelaskan cara mengirim event kluster ke Kubernetes Event Center SLS:

  • Jika Anda memilih Install Node-problem-detector (NPD) and create an Event Center saat membuat kluster, lanjutkan ke Langkah 2 untuk melihat Kubernetes Event Center.

  • Jika Anda tidak memilih Install Node-problem-detector and Create an Event Center saat membuat kluster, Anda dapat menginstalnya secara manual.

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

    2. Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Operations Management > Components.

    3. Di tab Log and Monitoring, temukan dan instal ack-node-problem-detector.

Kluster Kubernetes yang dikelola sendiri

  1. Deploy kube-eventer.

    1. Instal kubectl. Untuk informasi selengkapnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.

    2. Buat file konfigurasi bernama eventer.yaml berdasarkan templat berikut.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          name: kube-eventer
        name: kube-eventer
        namespace: kube-system
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: kube-eventer
        template:
          metadata:
            labels:
              app: kube-eventer
            annotations:
              scheduler.alpha.kubernetes.io/critical-pod: ''
          spec:
            dnsPolicy: ClusterFirstWithHostNet
            serviceAccount: kube-eventer
            containers:
              - image: registry.cn-hangzhou.aliyuncs.com/acs/kube-eventer:v1.2.5-cc7ec54-aliyun
                name: kube-eventer
                command:
                  - "/kube-eventer"
                  - "--source=kubernetes:https://kubernetes.default"
                  ## .send to sls
                  ## --sink=sls:https://{endpoint}?project={project}&logStore=k8s-event&regionId={region-id}&internal=false&accessKeyId={accessKeyId}&accessKeySecret={accessKeySecret}
                  - --sink=sls:https://cn-beijing.log.aliyuncs.com?project=k8s-xxxx&logStore=k8s-event&regionId=cn-beijing&internal=false&accessKeyId=xxx&accessKeySecret=xxx
                env:
                  # If TZ is assigned, set the TZ value as the time zone
                  - name: TZ
                    value: "Asia/Shanghai"
                volumeMounts:
                  - name: localtime
                    mountPath: /etc/localtime
                    readOnly: true
                  - name: zoneinfo
                    mountPath: /usr/share/zoneinfo
                    readOnly: true
                resources:
                  requests:
                    cpu: 10m
                    memory: 50Mi
                  limits:
                    cpu: 500m
                    memory: 250Mi
            volumes:
              - name: localtime
                hostPath:
                  path: /etc/localtime
              - name: zoneinfo
                hostPath:
                  path: /usr/share/zoneinfo
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: kube-eventer
      rules:
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - get
            - list
            - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: kube-eventer
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: kube-eventer
      subjects:
        - kind: ServiceAccount
          name: kube-eventer
          namespace: kube-system
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: kube-eventer
        namespace: kube-system

      Parameter

      Type

      Wajib

      Deskripsi

      endpoint

      string

      Ya

      Titik akhir Simple Log Service. Untuk informasi selengkapnya, lihat Endpoints.

      project

      string

      Ya

      Proyek Simple Log Service.

      logStore

      string

      Ya

      Simple Log Service Logstore.

      internal

      string

      Wajib untuk kluster Kubernetes yang dikelola sendiri.

      Untuk kluster Kubernetes yang dikelola sendiri, Anda harus mengatur parameter ini ke false.

      regionId

      string

      Wajib untuk kluster Kubernetes yang dikelola sendiri.

      ID wilayah tempat Simple Log Service berada. Untuk informasi selengkapnya, lihat Endpoints.

      accessKeyId

      string

      Wajib untuk kluster Kubernetes yang dikelola sendiri.

      ID AccessKey. Kami menyarankan Anda menggunakan pasangan Kunci Akses Pengguna Resource Access Management (RAM). Untuk informasi selengkapnya, lihat Pasangan Kunci Akses.

      accessKeySecret

      string

      Wajib untuk kluster Kubernetes yang dikelola sendiri.

      Rahasia AccessKey. Kami menyarankan Anda menggunakan pasangan Kunci Akses Pengguna Resource Access Management (RAM). Untuk informasi selengkapnya, lihat Pasangan Kunci Akses.

    3. Jalankan perintah berikut untuk menerapkan konfigurasi eventer.yaml ke kluster.

      kubectl apply -f eventer.yaml

      Output yang diharapkan:

      deployment.apps/kube-eventer created
      clusterrole.rbac.authorization.k8s.io/kube-eventer created
      clusterrolebinding.rbac.authorization.k8s.io/kube-eventer created
      serviceaccount/kube-eventer created
  2. Deploy node-problem-detector.

Langkah 2: Buat instans K8s event center

Catatan

Setelah Anda membuat instans K8s event center, Simple Log Service secara otomatis membuat Logstore bernama k8s-event dan dasbor terkait di proyek tujuan.

  1. Masuk ke konsol Simple Log Service.

  2. Di bagian Log Application, klik tab Intelligent O&M, lalu klik K8s Event Center.

  3. Di halaman Event Center Management, klik Add di pojok kanan atas.

  4. Di panel Create Event Center, konfigurasikan parameter dan klik Next.

    • Jika Anda memilih Select Existing Project, pilih proyek yang sudah ada dari daftar drop-down Project untuk mengelola resource instans K8s event center, seperti Logstore dan dasbor.

    • Jika Anda memilih Select Kubernetes Cluster from Container Service for Kubernetes, pilih kluster K8s yang sudah ada dari daftar drop-down K8s Cluster. Jika menggunakan metode ini, Simple Log Service secara otomatis membuat proyek bernama k8s-log-{cluster-id} untuk mengelola resource instans K8s event center, seperti Logstore dan dasbor.

Langkah 3: Gunakan instans K8s event center

Setelah Anda membuat instans K8s event center dan mendeploy kube-eventer serta node-problem-detector, Anda dapat mulai menggunakan pusat event tersebut. Anda dapat melihat ikhtisar event, mengkueri detail event, melihat siklus hidup pod, melihat event node, melihat event komponen inti, mengonfigurasi peringatan, menjalankan kueri kustom, dan memperbarui versi.

Di halaman K8s Event Center, temukan instans K8s event center target dan klik ikon k8s事件中心-002 untuk melakukan operasi berikut.

Aksi

Deskripsi

Lihat ikhtisar event

Halaman Event Overview menampilkan statistik ringkasan event inti. Statistik tersebut mencakup jumlah total event, perbandingan event error antara hari ini dan kemarin, statistik peringatan, tren event error, serta detail OOM pod.

Catatan

Informasi OOM pod tidak mengidentifikasi pod spesifik. Anda hanya dapat menemukan node, nama proses, dan ID proses tempat event tersebut terjadi. Anda dapat menjalankan kueri kustom untuk menemukan event restart pod yang terjadi sekitar waktu OOM pod guna membantu mengidentifikasi pod spesifik tersebut.

Kueri detail event

Halaman Event Detail Query menampilkan detail event yang difilter berdasarkan berbagai dimensi, seperti tipe event, objek event, host, namespace, dan nama.

Lihat siklus hidup pod

Halaman Pod Lifecycle menampilkan garis waktu grafis event dalam siklus hidup pod. Anda juga dapat memfilter event pod penting berdasarkan tingkat event.

Lihat event node

Halaman Node Events menampilkan detail event node, seperti siklus hidup node dan daftar event.

Lihat event komponen inti

Halaman Core Component Events menampilkan detail event komponen inti, seperti kegagalan restart ECS dan mode URL yang tidak diimplementasikan.

Atur peringatan

Di halaman Alert Configuration, Anda dapat mengonfigurasi peringatan untuk K8s event center. Untuk informasi selengkapnya, lihat Atur peringatan.

Jalankan kueri kustom

Di halaman Custom Query, Anda dapat menyesuaikan pernyataan kueri dan pernyataan analitik.

Semua event di K8s event center disimpan dalam Logstore, sehingga Anda dapat menggunakan semua fitur Logstore, seperti kueri kustom, konsumsi event, laporan kustom, dan peringatan kustom. Untuk informasi selengkapnya, lihat Memulai cepat untuk kueri dan analisis.

Untuk mengakses proyek yang terkait dengan instans K8s event center, Anda dapat menemukan nama proyek dengan salah satu cara berikut:

  • Temukan nama proyek di URL halaman Custom Query. URL-nya memiliki format https://sls.console.alibabacloud.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event. Bidang setelah project/ adalah nama proyek, misalnya k8s-log-xxxx.

  • Di tab Event Center Management, temukan instans K8s event center target dalam daftar instans dan lihat nama proyek yang sesuai.

Perbarui versi

Di halaman Version Update, Anda dapat meningkatkan K8s event center.

Contoh log

Kode berikut menunjukkan contoh log.

hostname:  cn-hangzhou.i-***********"
level:  Normal
pod_id:  2a360760-****
pod_name:  logtail-ds-blkkr
event_id:  {  
   "metadata":{  
      "name":"logtail-ds-blkkr.157b7cc90de7e192",
      "namespace":"kube-system",
      "selfLink":"/api/v1/namespaces/kube-system/events/logtail-ds-blkkr.157b7cc90de7e192",
      "uid":"2aaf75ab-****",
      "resourceVersion":"6129169",
      "creationTimestamp":"2019-01-20T07:08:19Z"
   },
   "involvedObject":{  
      "kind":"Pod",
      "namespace":"kube-system",
      "name":"logtail-ds-blkkr",
      "uid":"2a360760-****",
      "apiVersion":"v1",
      "resourceVersion":"6129161",
      "fieldPath":"spec.containers{logtail}"
   },
   "reason":"Started",
   "message":"Started container",
   "source":{  
      "component":"kubelet",
      "host":"cn-hangzhou.i-***********"
   },
   "firstTimestamp":"2019-01-20T07:08:19Z",
   "lastTimestamp":"2019-01-20T07:08:19Z",
   "count":1,
   "type":"Normal",
   "eventTime":null,
   "reportingComponent":"",
   "reportingInstance":""
}

field log

Tipe

Deskripsi

hostname

string

Hostname host tempat event terjadi.

level

string

Tingkat log. Nilai yang valid: Normal dan Warning.

pod_id

string

ID unik pod. Field ini hanya disertakan jika event terkait dengan pod.

pod_name

string

Nama pod. Field ini hanya disertakan jika event terkait dengan pod.

event_id

json

Detail event. Nilai field ini adalah string JSON.

FAQ

Instans K8s event center tidak memiliki data

Setelah Anda mendeploy instans K8s event center, event baru akan dikumpulkan secara otomatis. Anda dapat mencarinya di halaman Custom Query. Kami menyarankan Anda mengatur rentang waktu di pojok kanan atas menjadi 1 Hari. Jika tidak ditemukan data, biasanya ada dua penyebab:

  • Tidak ada event baru yang dihasilkan di kluster Kubernetes sejak Anda mendeploy K8s event center.

    Anda dapat menjalankan perintah kubectl get events --all-namespaces untuk memeriksa apakah ada event baru yang dihasilkan di kluster.

  • Parameter dikonfigurasi secara salah dalam deployment kube-eventer dan node-problem-detector.

    • Jika Anda menggunakan kluster Container Service for Kubernetes (ACK), lakukan langkah-langkah berikut:

      1. Masuk ke Konsol ACK.

      2. Di halaman Clusters, klik nama kluster target.

      3. Di panel navigasi kiri, pilih Apply > Helm.

      4. Di halaman Helm, temukan ack-node-problem-detector dan klik Update.

      5. Periksa dan modifikasi pengaturan parameter.

    • Jika Anda menggunakan kluster Kubernetes yang dikelola sendiri, lihat Kumpulkan event Kubernetes untuk pengaturan parameternya.

Bagaimana cara melihat log kontainer untuk suatu event?

  • Jika Anda menggunakan kluster Container Service for Kubernetes (ACK), lakukan langkah-langkah berikut:

    1. Masuk ke Konsol ACK.

    2. Di halaman Clusters, klik nama kluster target.

    3. Di panel navigasi kiri, pilih Workloads > Pods.

    4. Atur Namespace ke kube-system.

    5. Di daftar Pods, temukan pod target dan klik Log.

  • Jika Anda menggunakan kluster Kubernetes yang dikelola sendiri, periksa log Pod dengan awalan nama file eventer-sls di namespace kube-system.