Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:Kubernetes olaylarını toplama

Son Güncelleme:Sep 30, 2026

Bu konu, eventer kullanarak Kubernetes'ten olayları nasıl toplayacağınızı ve bunları Simple Log Service'e nasıl göndereceğinizi açıklar.

Kubernetes mimarisi bir durum makinesine dayanır. Durumlar arasındaki geçişler ilgili olayları oluşturur. Normal durumlar arasındaki geçişler Normal düzeyinde olaylar üretirken normal ve anormal durumlar arasındaki geçişler Uyarı düzeyinde olaylar üretir.

Container Service for Kubernetes (ACK), konteyner senaryoları için kullanıma hazır bir olay izleme çözümü sunar. ACK tarafından bakımı yapılan NPD ve dahil edilen kube-eventer aracılığıyla konteyner olay izlemesi sağlar.

image
  • Node Problem Detector (NPD), Kubernetes düğümleri için bir tanılama aracıdır. Docker Engine takılmaları, Linux çekirdeği takılmaları, ağ gidiş sorunları veya dosya tanımlayıcı anomalileri gibi düğüm anormalliklerini düğüm olaylarına dönüştürür. NPD, kube-eventer ile birlikte kullanıldığında düğüm olayı uyarıları için kapalı döngülü bir sistem sağlar.

  • kube-eventer, Kubernetes olaylarının çevrimdışı işlenmesi için ACK tarafından bakımı yapılan açık kaynaklı bir araçtır. Küme olaylarını DingTalk, SLS ve EventBridge gibi harici sistemlere iter. Ayrıca gerçek zamanlı toplama, hedefli uyarı ve eşzamansız arşivleme sağlamak amacıyla farklı olay düzeyleri için filtre koşulları sunar.

  • Node Problem Detector (NPD), Kubernetes düğümleri için bir tanılama aracıdır. Docker Engine takılmaları, Linux çekirdeği takılmaları, ağ gidiş sorunları veya dosya tanımlayıcı anomalileri gibi düğüm anormalliklerini düğüm olaylarına dönüştürür. NPD, kube-eventer ile birlikte kullanıldığında düğüm olayı uyarıları için kapalı döngülü bir sistem sağlar.

  • kube-eventer, Kubernetes olaylarının çevrimdışı işlenmesi için ACK tarafından bakımı yapılan açık kaynaklı bir araçtır. Küme olaylarını DingTalk, SLS ve EventBridge gibi harici sistemlere iter. Ayrıca gerçek zamanlı toplama, hedefli uyarı ve eşzamansız arşivleme sağlamak amacıyla farklı olay düzeyleri için filtre koşulları sunar.

Önkoşullar

Alibaba Cloud ACK kümesi veya ACK sunucusuz kümesi gibi bir Kubernetes kümesi oluşturulmuş olmalıdır.

Ücretlendirme

Aşağıdaki koşullar karşılandığında K8s olay merkezi ücretsizdir:

  • K8s olay merkeziyle ilişkili Logstore'un veri saklama süresi 90 gündür (varsayılan değer).

  • K8s olay merkezine yazılan veri hacmi günlük 256 MB'dan azdır; bu yaklaşık 250.000 olaya karşılık gelir.

Örnekler:

  • Varsayılan 90 günlük veri saklama süresini kullanırsanız ve Kubernetes kümeniz günde 1.000 olay üretirse K8s olay merkezi ücretsizdir.

  • Veri saklama süresini 105 güne ayarlarsanız ve Kubernetes kümeniz günde 1.000 olay üretirse 90 günden sonra Logstore depolama ücreti ödersiniz. Faturalandırılan öğe Log Storage'dır. Log Storage faturalandırılan öğesi hakkında daha fazla bilgi için bkz. Özellik bazında ödeme modunda faturalandırılan öğeler.

Adım 1: kube-eventer ve node-problem-detector dağıtma

ACK

Bir ACK kümesi için ack-node-problem-detector bileşeni, kube-eventer ve node-problem-detector özelliklerini entegre eder. Yalnızca bu bileşeni dağıtmanız gerekir. Bir ACK sunucusuz kümesi için ise kube-eventer bileşenini dağıtmanız gerekir.

NPD, yapılandırmalara ve üçüncü taraf eklentilerine dayalı olarak düğüm sorunlarını veya hatalarını algılar ve ardından ilgili küme olaylarını oluşturur. Kubernetes kümesi ayrıca pod tahliyesi ve görüntü çekme hataları gibi durum geçişlerinden kaynaklanan çeşitli olaylar üretir. Simple Log Service (SLS) Kubernetes Olay Merkezi, tüm Kubernetes olaylarını gerçek zamanlı olarak toplar ve depolama, sorgulama, analiz, görselleştirme ve uyarı yetenekleri sağlar. Aşağıdaki adımlarda küme olaylarının SLS Kubernetes Olay Merkezi'ne nasıl gönderileceği açıklanmaktadır:

  • Küme oluştururken Install Node-problem-detector (NPD) and create an Event Center seçeneğini işaretlediyseniz Kubernetes Olay Merkezini görüntülemek için 2. Adıma ilerleyin.

  • Küme oluştururken Install Node-problem-detector and Create an Event Center seçeneğini işaretlememişseniz bunu manuel olarak yükleyebilirsiniz.

    1. ACK konsol una oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.

    2. Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Operations Management > Components seçeneğine gidin.

    3. Log and Monitoring sekmesinde ack-node-problem-detector bileşenini bulun ve yükleyin.

Self-managed Kubernetes

  1. kube-eventer bileşenini dağıtın.

    1. kubectl uygulamasını yükleyin. Daha fazla bilgi için bkz. Kümenin kubeconfig dosyasını alma ve kubectl ile kümeye bağlanma.

    2. Aşağıdaki şablona göre eventer.yaml adlı bir yapılandırma dosyası oluşturun.

      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


      Required


      Description


      endpoint


      string


      Yes


      Simple Log Service uç noktası. Daha fazla bilgi için bkz. Uç noktalar.


      project


      string


      Yes


      Simple Log Service projesi.


      logStore


      string


      Yes


      Simple Log Service Logstore'u.


      internal


      string


      Required for self-managed Kubernetes clusters.


      Kendi yönettiğiniz bir Kubernetes kümesi için bu parametreyi false olarak ayarlamanız gerekir.


      regionId


      string


      Required for self-managed Kubernetes clusters.


      Simple Log Service'in bulunduğu bölgenin kimliği. Daha fazla bilgi için bkz. Uç noktalar.


      accessKeyId


      string


      Required for self-managed Kubernetes clusters.


      AccessKey ID'si. Resource Access Management (RAM) kullanıcısının AccessKey çiftini kullanmanızı öneririz. Daha fazla bilgi için bkz. AccessKey çifti.


      accessKeySecret


      string


      Required for self-managed Kubernetes clusters.


      AccessKey gizli anahtarı. Resource Access Management (RAM) kullanıcısının AccessKey çiftini kullanmanızı öneririz. Daha fazla bilgi için bkz. AccessKey çifti.

    3. eventer.yaml yapılandırmasını kümeye uygulamak için aşağıdaki komutu çalıştırın.

      kubectl apply -f eventer.yaml

      Beklenen çıktı:

      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. node-problem-detector bileşenini dağıtın.

Adım 2: K8s olay merkezi örneği oluşturma

Not

Bir K8s olay merkezi örneği oluşturduktan sonra Simple Log Service, hedef projede otomatik olarak k8s-event adlı bir Logstore ve ilgili panolar oluşturur.

  1. Simple Log Service konsoluna oturum açın.

  2. Log Application bölümünde Intelligent O&M sekmesine tıklayın ve ardından K8s Event Center öğesine tıklayın.

  3. Event Center Management sayfasında sağ üst köşedeki Add öğesine tıklayın.

  4. Create Event Center panelinde parametreleri yapılandırın ve Next öğesine tıklayın.

    • Select Existing Project seçeneğini belirlerseniz Project açılır listesinden mevcut bir proje seçerek K8s olay merkezi örneğinin Logstore ve panolar gibi kaynaklarını yönetin.

    • Select Kubernetes Cluster from Container Service for Kubernetes seçeneğini belirlerseniz K8s Cluster açılır listesinden mevcut bir K8s kümesi seçin. Bu yöntemi kullandığınızda Simple Log Service, K8s olay merkezi örneğinin Logstore ve panolar gibi kaynaklarını yönetmek üzere otomatik olarak k8s-log-{cluster-id} adlı bir proje oluşturur.

Adım 3: K8s olay merkezi örneğini kullanma

Bir K8s olay merkezi örneği oluşturup kube-eventer ve node-problem-detector bileşenlerini dağıttıktan sonra olay merkezini kullanmaya başlayabilirsiniz. Olaylara genel bakışı görüntüleyebilir, olay ayrıntılarını sorgulayabilir, pod yaşam döngüsünü inceleyebilir, düğüm olaylarını görüntüleyebilir, çekirdek bileşen olaylarını takip edebilir, uyarıları yapılandırabilir, özel sorgular çalıştırabilir ve sürümü güncelleyebilirsiniz.

K8s Event Center sayfasında hedef K8s olay merkezi örneğini bulun ve aşağıdaki işlemleri gerçekleştirmek için k8s事件中心-002 simgesine tıklayın.

Eylemler

Açıklama

Olaylara genel bakışı görüntüleme

Event Overview sayfası, çekirdek olayların özet istatistiklerini gösterir. İstatistikler arasında toplam olay sayısı, bugün ve dün arasındaki hata olaylarının karşılaştırması, uyarı istatistikleri, hata olayı eğilimleri ve pod OOM ayrıntıları yer alır.

Not

Pod OOM bilgileri belirli podu tanımlamaz. Yalnızca olayın gerçekleştiği düğümü, işlem adını ve işlem kimliğini belirleyebilirsiniz. Belirli podu tespit etmeye yardımcı olmak için pod OOM zamanına yakın gerçekleşen pod yeniden başlatma olaylarını bulmak amacıyla özel bir sorgu çalıştırabilirsiniz.

Olay ayrıntılarını sorgulama

Event Detail Query sayfası, olay türü, olay nesnesi, ana bilgisayar, ad alanı ve ad gibi çeşitli boyutlara göre filtrelenen olayların ayrıntılarını gösterir.

Pod yaşam döngüsünü görüntüleme

Pod Lifecycle sayfası, bir podun yaşam döngüsündeki olayların grafiksel zaman çizelgesini gösterir. Ayrıca önemli pod olaylarını olay düzeyine göre filtreleyebilirsiniz.

Düğüm olaylarını görüntüleme

Node Events sayfası, düğüm yaşam döngüsü ve olay listesi gibi düğüm olayı ayrıntılarını gösterir.

Çekirdek bileşen olaylarını görüntüleme

Core Component Events sayfası, ECS yeniden başlatma hataları ve uygulanmamış URL modları gibi çekirdek bileşen olaylarının ayrıntılarını gösterir.

Uyarı ayarlama

Alert Configuration sayfasında K8s olay merkezi için uyarılar yapılandırabilirsiniz. Daha fazla bilgi için bkz. Uyarı ayarlama.

Özel sorgular çalıştırma

Custom Query sayfasında sorgu deyimlerini ve analitik deyimlerini özelleştirebilirsiniz.

K8s olay merkezindeki tüm olaylar bir Logstore'da depolandığından özel sorgular, olay tüketimi, özel raporlar ve özel uyarılar gibi tüm Logstore özelliklerini kullanabilirsiniz. Daha fazla bilgi için bkz. Sorgulama ve analize hızlı başlangıç.

K8s olay merkezi örneğiyle ilişkili projeye erişmek için proje adını aşağıdaki yollardan biriyle bulabilirsiniz:

  • Proje adını Custom Query sayfasının URL'sinde bulun. URL formatı https://sls.console.alibabacloud.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event şeklindedir. project/ sonraki alan proje adıdır; örneğin k8s-log-xxxx.

  • Event Center Management sekmesinde örnek listesinde hedef K8s olay merkezi örneğini bulun ve karşılık gelen proje adını görüntüleyin.

Sürümü güncelleme

Version Update sayfasında K8s olay merkezini yükseltebilirsiniz.

Örnek günlük

Aşağıdaki kod bir örnek günlük göstermektedir.

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


log field


Type


Description


hostname


string


Olayın gerçekleştiği ana bilgisayarın ana bilgisayar adı.


level


string


Günlük düzeyi. Geçerli değerler: Normal ve Warning.


pod_id


string


Podun benzersiz kimliği. Bu alan yalnızca olay bir podla ilişkiliyse dahil edilir.


pod_name


string


Podun adı. Bu alan yalnızca olay bir podla ilişkiliyse dahil edilir.


event_id


json


Olayın ayrıntıları. Bu alanın değeri bir JSON dizesidir.

SSS

Bir K8s olay merkezi örneğinde veri yok

Bir K8s olay merkezi örneği dağıttıktan sonra yeni olaylar otomatik olarak toplanır. Bunları Custom Query sayfasında arayabilirsiniz. Sağ üst köşedeki zaman aralığını 1 Gün olarak ayarlamanızı öneririz. Veri bulunamazsa genellikle iki neden vardır:

  • K8s olay merkezini dağıttığınızdan beri Kubernetes kümesinde yeni olay üretilmemiştir.

    Kümede yeni olayların oluşup oluşmadığını kontrol etmek için kubectl get events --all-namespaces komutunu çalıştırabilirsiniz.

  • kube-eventer ve node-problem-detector dağıtımınızda parametreler yanlış yapılandırılmıştır.

    • Bir Container Service for Kubernetes (ACK) kümesi kullanıyorsanız şu adımları uygulayın:

      1. ACK konsoluna oturum açın.

      2. Clusters sayfasında hedef kümenin adına tıklayın.

      3. Sol taraftaki gezinme bölmesinde Apply > Helm seçeneğine gidin.

      4. Helm sayfasında ack-node-problem-detector öğesini bulun ve Update öğesine tıklayın.

      5. Parametre ayarlarını kontrol edin ve değiştirin.

    • Kendi yönettiğiniz bir Kubernetes kümesi kullanıyorsanız parametre ayarları için bkz. Kubernetes olaylarını toplama.

Bir olay için konteyner günlüklerini nasıl görüntülerim?

  • Bir Container Service for Kubernetes (ACK) kümesi kullanıyorsanız şu adımları uygulayın:

    1. ACK konsoluna oturum açın.

    2. Clusters sayfasında hedef kümenin adına tıklayın.

    3. Sol taraftaki gezinme bölmesinde Workloads > Pods seçeneğine gidin.

    4. Namespace değerini kube-system olarak ayarlayın.

    5. Pods listesinde hedef podu bulun ve Log öğesine tıklayın.

  • Kendi yönettiğiniz bir Kubernetes kümesi kullanıyorsanız kube-system ad alanında dosya adı ön eki eventer-sls olan Pod'ların günlüklerini kontrol edin.