全部产品
Search
文档中心

Simple Log Service:Buat dan gunakan pusat insiden

更新时间:Jul 02, 2025

Insiden mencatat perubahan status kluster Kubernetes. Sebagai contoh, sebuah insiden dapat mencatat perubahan status ketika Anda membuat, menjalankan, atau menghapus pod, atau ketika terjadi pengecualian komponen. K8s Event Center mengumpulkan semua insiden dalam kluster Kubernetes secara real-time. Ini memungkinkan Anda melakukan berbagai operasi pada insiden tersebut, seperti menyimpan, menanyalkan, menganalisis, memvisualisasikan data insiden, serta mengonfigurasi peringatan. Topik ini menjelaskan cara membuat dan menggunakan pusat insiden di K8s Event Center.

Kubernetes dirancang berdasarkan mesin keadaan. Insiden dihasilkan karena transisi antar keadaan yang berbeda. Biasanya, insiden Normal dihasilkan ketika mesin keadaan berubah ke keadaan yang diharapkan, sedangkan insiden Peringatan dihasilkan ketika mesin keadaan berubah ke keadaan yang tidak diharapkan.

ACK menyediakan solusi pemantauan insiden siap pakai untuk skenario kontainerisasi. ACK menggunakan NPD dan kube-eventer yang disediakan oleh NPD untuk memantau insiden kontainer.

  • NPD adalah alat untuk mendiagnosis node Kubernetes. NPD mendeteksi pengecualian node, menghasilkan insiden node, dan bekerja sama dengan kube-eventer untuk memunculkan peringatan atas insiden-insiden tersebut serta memungkinkan manajemen peringatan loop tertutup. NPD menghasilkan insiden node ketika pengecualian berikut terdeteksi: Docker engine macet, kernel Linux macet, pengecualian lalu lintas arah keluar, dan pengecualian deskriptor file. Untuk informasi lebih lanjut, lihat NPD.

  • kube-eventer adalah emitor insiden sumber terbuka yang dikelola oleh ACK. kube-eventer mengirim insiden Kubernetes ke sink seperti DingTalk, Layanan Log Sederhana, dan EventBridge. kube-eventer juga menyediakan kondisi filter untuk menyaring insiden tingkat berbeda. Anda dapat menggunakan kube-eventer untuk mengumpulkan insiden secara real-time, memicu peringatan atas insiden tertentu, dan mengarsipkan insiden secara asinkron. Untuk informasi lebih lanjut, lihat kube-eventer.

  • NPD adalah alat untuk mendiagnosis node Kubernetes. Alat ini mendeteksi pengecualian node, menghasilkan insiden node, dan bekerja sama dengan kube-eventer untuk memunculkan peringatan atas insiden-insiden tersebut, sehingga memungkinkan manajemen peringatan loop tertutup. NPD menghasilkan insiden node ketika mendeteksi pengecualian berikut: Docker engine macet, kernel Linux macet, pengecualian lalu lintas arah keluar, dan pengecualian deskriptor file. Untuk informasi lebih lanjut, lihat NPD.

  • kube-eventer adalah emitor insiden sumber terbuka yang dikelola oleh ACK. Alat ini mengirim insiden Kubernetes ke sink seperti DingTalk, Layanan Log Sederhana, dan EventBridge. kube-eventer juga menyediakan kondisi filter untuk menyaring insiden berdasarkan tingkat tertentu. Anda dapat menggunakan kube-eventer untuk mengumpulkan insiden secara real-time, memicu peringatan atas insiden tertentu, serta mengarsipkan insiden secara asinkron. Untuk informasi lebih lanjut, lihat kube-eventer.

Prasyarat

Kluster Kubernetes telah dibuat, seperti kluster Container Service for Kubernetes (ACK) atau kluster ACK Serverless.

Penagihan

Jika kondisi berikut terpenuhi, Anda tidak akan dikenakan biaya saat menggunakan pusat insiden:

  • Periode retensi data dari penyimpanan log yang terkait dengan pusat insiden Anda adalah 90 hari, yang merupakan nilai default.

  • Jumlah data yang ditulis ke pusat insiden Anda setiap hari kurang dari 256 MB, yang setara dengan sekitar 250.000 insiden.

Contoh:

  • Jika periode retensi data default ditentukan untuk penyimpanan log yang terkait dan 1.000 insiden dihasilkan di kluster Kubernetes Anda setiap hari, Anda dapat menggunakan pusat insiden Anda secara gratis.

  • Jika Anda mengubah periode retensi data menjadi 105 hari dan 1.000 insiden dihasilkan di kluster Kubernetes Anda setiap hari, Anda akan dikenakan biaya untuk data yang disimpan di penyimpanan log terkait setelah data disimpan selama 90 hari. Biaya dihitung berdasarkan item tagihan ruang penyimpanan yang digunakan oleh data log. Untuk informasi lebih lanjut tentang item tagihan, lihat Item Tagihan Bayar-per-Fitur.

Langkah 1: Pasang komponen kube-eventer dan node-problem-detector

Kluster ACK

Jika Anda menggunakan kluster ACK, Anda hanya perlu memasang komponen ack-node-problem-detector karena komponen ini terintegrasi dengan fitur komponen kube-eventer dan node-problem-detector. Untuk informasi lebih lanjut, lihat Pemantauan Insiden. Jika Anda menggunakan kluster ACK Serverless, Anda harus memasang komponen kube-eventer.

NPD bekerja sama dengan plugin pihak ketiga untuk mendeteksi pengecualian node dan menghasilkan insiden kluster. Kluster Kubernetes juga menghasilkan insiden ketika status kluster berubah. Sebagai contoh, ketika pod diusir atau operasi pull image gagal, insiden terkait dihasilkan. Pusat insiden Kubernetes dari Layanan Log Sederhana mengumpulkan, menyimpan, dan memvisualisasikan insiden kluster. Ini memungkinkan Anda menanyalkan dan menganalisis insiden-insiden tersebut, serta mengonfigurasi peringatan. Anda dapat mengarahkan insiden kluster ke pusat insiden Kubernetes dari Layanan Log Sederhana menggunakan metode berikut.

  • Jika Anda telah memilih Install node-problem-detector and Create Event Center saat membuat kluster, lanjutkan ke Langkah 2 untuk melihat pusat insiden Kubernetes. Untuk informasi lebih lanjut tentang cara memasang komponen ack-node-problem-detector saat membuat kluster, lihat Buat Kluster ACK yang Dikelola.

  • Jika Anda tidak memilih Install node-problem-detector and Create Event Center saat membuat kluster, lakukan langkah-langkah berikut untuk memasangnya secara manual.

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

    2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.

    3. Di tab Logs and Monitoring, temukan dan pasang ack-node-problem-detector.

Kluster Kubernetes lainnya

  1. Pasang komponen kube-eventer.

    1. Pasang alat kubectl. Untuk informasi lebih lanjut, lihat Hubungkan ke Kluster ACK Menggunakan kubectl.

    2. Buat file konfigurasi bernama eventer.yaml menggunakan kode sampel 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:
                  # Jika TZ ditetapkan, atur nilai TZ sebagai zona waktu
                  - 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

      Tipe

      Diperlukan

      Deskripsi

      endpoint

      string

      Ya

      Titik akhir Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Titik akhir.

      project

      string

      Ya

      Proyek Layanan Log Sederhana.

      logStore

      string

      Ya

      Penyimpanan log Layanan Log Sederhana.

      internal

      string

      Ya untuk kluster Kubernetes yang dikelola sendiri

      Jika Anda menggunakan kluster Kubernetes yang dikelola sendiri, atur nilainya menjadi false.

      regionId

      string

      Ya untuk kluster Kubernetes yang dikelola sendiri

      ID wilayah tempat proyek Layanan Log Sederhana berada. Untuk informasi lebih lanjut, lihat Titik akhir.

      accessKeyId

      string

      Ya untuk kluster Kubernetes yang dikelola sendiri

      ID AccessKey. Kami merekomendasikan Anda menggunakan ID AccessKey dari pengguna Resource Access Management (RAM). Untuk informasi lebih lanjut, lihat Pasangan AccessKey.

      accessKeySecret

      string

      Ya untuk kluster Kubernetes yang dikelola sendiri

      Rahasia AccessKey. Kami merekomendasikan Anda menggunakan Rahasia AccessKey dari pengguna RAM. Untuk informasi lebih lanjut, lihat Pasangan AccessKey.

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

      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. Pasang komponen node-problem-detector.

    Untuk informasi lebih lanjut, kunjungi GitHub.

Langkah 2: Buat pusat insiden

Catatan

Setelah Anda membuat pusat insiden, Layanan Log Sederhana secara otomatis membuat penyimpanan log bernama k8s-event di proyek yang ditentukan. Dashboard terkait juga dibuat untuk pusat insiden.

  1. Masuk ke Konsol Layanan Log Sederhana.

  2. Di bagian Log Application, klik tab Intelligent O&M. Kemudian, 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, Anda dapat memilih proyek yang ada dari daftar drop-down Project untuk mengelola sumber daya pusat insiden Anda. Sumber daya termasuk penyimpanan log dan dashboard terkait.

    • Jika Anda memilih Select Kubernetes Cluster from Container Service for Kubernetes, Anda dapat memilih kluster Kubernetes yang ada dari daftar drop-down K8s Cluster. Jika Anda menggunakan metode ini untuk membuat pusat insiden, Layanan Log Sederhana secara otomatis membuat proyek dengan nama dalam format k8s-log-{cluster-id} untuk mengelola sumber daya pusat insiden Anda. Sumber daya termasuk penyimpanan log dan dashboard terkait.

Langkah 3: Gunakan pusat insiden

Setelah Anda membuat pusat insiden di K8s Event Center dan memasang komponen kube-eventer dan node-problem-detector, Anda dapat menggunakan pusat insiden. Sebagai contoh, Anda dapat menggunakan pusat insiden untuk melihat statistik insiden, menanyalkan detail insiden, melihat siklus hidup pod, melihat insiden node, melihat insiden komponen inti, mengonfigurasi peringatan, melakukan operasi kueri kustom, dan memperbarui versi K8s Event Center.

Di panel navigasi kiri halaman K8s Event Center, temukan pusat insiden yang ingin Anda kelola dan klik ikon k8s事件中心-002. Kemudian, Anda dapat melakukan operasi berikut.

image

Operasi

Deskripsi

Lihat statistik insiden

Tab Event Overview menampilkan statistik insiden inti. Statistik mencakup total jumlah insiden, perbedaan antara jumlah insiden kesalahan dalam hari saat ini dan hari sebelumnya, statistik peringatan, tren insiden kesalahan, dan detail insiden OOM pod.

Catatan

Jika insiden OOM pod dicatat, Anda hanya dapat melihat node tempat insiden terjadi, nama proses, dan ID proses. Pod tempat insiden terjadi tidak dapat diidentifikasi. Namun, Anda dapat menanyalkan insiden restart pod yang terjadi sekitar waktu insiden OOM pod. Dengan cara ini, Anda dapat mengidentifikasi pod.

Tanyakan detail insiden

Tab Event Details menampilkan detail insiden yang dikembalikan menggunakan kondisi filter berbeda, seperti tipe insiden, tujuan insiden, host, namespace, dan nama.

Lihat siklus hidup pod

Tab Pod Lifecycle menampilkan detail insiden yang terjadi dalam siklus hidup pod. Anda dapat menyaring insiden pod penting berdasarkan level insiden.

Lihat insiden node

Tab Node Event menampilkan detail insiden node. Anda dapat melihat siklus hidup node dan insiden yang terjadi di node.

Lihat insiden komponen inti

Tab Event Core menampilkan detail insiden komponen inti. Insiden mencakup NLC.Task.RestartECS.Fail dan NLC.Task.URL.Mode.Unimplemented.

Konfigurasikan peringatan

Di halaman yang muncul setelah Anda klik Alert Configuration, Anda dapat mengonfigurasi peringatan untuk pusat insiden Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan peringatan.

Lakukan operasi kueri kustom

Di halaman yang muncul setelah Anda klik Custom Query, Anda dapat menjalankan pernyataan kueri kustom.

Semua insiden di pusat insiden disimpan dalam penyimpanan log. Anda dapat menggunakan semua fitur penyimpanan log. Sebagai contoh, Anda dapat menjalankan pernyataan kueri kustom, mengonsumsi data insiden, membuat laporan kustom, atau mengonfigurasi peringatan kustom. Untuk informasi lebih lanjut, lihat Panduan untuk penanyalan dan analisis log.

Jika Anda ingin mengakses proyek yang ditentukan untuk pusat insiden, Anda dapat memperoleh nama proyek menggunakan salah satu metode berikut:

  • Peroleh nama proyek dari URL halaman yang muncul setelah Anda klik Custom Query. URL tersebut dalam format https://sls.console.alibabacloud.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event. Bidang yang mengikuti bidang proyek menunjukkan nama proyek. Contoh: k8s-log-xxxx.

  • Di daftar pusat insiden pada halaman Event Center Management, temukan pusat insiden dan lihat nama proyeknya.

Perbarui versi K8s Event Center

Di halaman yang muncul setelah Anda klik Version Update, Anda dapat memperbarui versi K8s Event Center.

Hapus pusat insiden

Di halaman K8s Event Center > Event Center Management, temukan pusat insiden yang ingin Anda hapus dan klik ikon k8s事件中心 di kolom Actions.

Contoh log

Berikut adalah contoh log sampel yang dikumpulkan:

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":""
}

Bidang

Tipe

Deskripsi

hostname

String

Nama host server tempat insiden terjadi.

level

String

Level log. Nilai valid: Normal dan Warning.

pod_id

String

Pengenal unik pod. Bidang ini tersedia hanya jika tipe insiden terkait dengan pod.

pod_name

String

Nama pod. Bidang ini tersedia hanya jika tipe insiden terkait dengan pod.

event_id

JSON

Detail insiden. Nilai bidang ini adalah string JSON.

FAQ

Mengapa tidak ada data di pusat insiden saya?

Setelah Anda memasang pusat insiden, insiden baru secara otomatis dikumpulkan ke pusat insiden. Anda dapat mengklik Custom Query untuk mencari insiden-insiden tersebut. Kami merekomendasikan Anda mengatur rentang waktu di pojok kanan atas menjadi 1 Hari. Data mungkin tidak ditemukan di pusat insiden karena alasan berikut:

  • Setelah Anda memasang pusat insiden, tidak ada insiden yang dihasilkan di kluster Kubernetes terkait.

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

  • Nilai tidak valid ditentukan untuk parameter yang digunakan untuk memasang komponen kube-eventer dan node-problem-detector.

    • Jika Anda menggunakan kluster ACK, lakukan langkah-langkah berikut:

      1. Masuk ke Konsol ACK.

      2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster tersebut.

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

      4. Di halaman Helm, cari ack-node-problem-detector dan klik Update pada kolom Actions.

      5. Periksa dan modifikasi pengaturan parameter. Untuk informasi lebih lanjut, lihat Langkah 1: Pasang Komponen kube-eventer dan node-problem-detector.

    • Jika Anda menggunakan kluster Kubernetes yang dikelola sendiri, ikuti petunjuk yang diberikan di Kumpulkan Insiden Kubernetes.

Bagaimana cara melihat log kontainer tempat insiden terjadi?

  • Jika Anda menggunakan kluster ACK, lakukan langkah-langkah berikut:

    1. Masuk ke Konsol ACK.

    2. Di halaman Clusters, cari kluster yang ingin Anda kelola, lalu klik nama kluster tersebut.

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

    4. Atur parameter Namespace ke kube-system.

    5. Di halaman Pods, temukan pod yang ingin Anda kelola dan klik Logs di kolom Tindakan.

  • Jika Anda menggunakan kluster Kubernetes yang dikelola sendiri, temukan namespace kube-system dan file yang namanya diawali dengan eventer-sls untuk melihat log pod.