Tüm Ürünler
Search
Belge Merkezi

Container Compute Service:Configure application log collection using pod environment variables

Son Güncelleme:Oct 08, 2026

Container Compute Service (ACS) Alibaba Cloud Simple Log Service (SLS) ile entegredir. ACS kümesi oluştururken günlük hizmetini etkinleştirerek konteyner standart çıktısı (stdout) ve konteynerlerdeki metin dosyaları dahil olmak üzere kümedeki konteyner günlüklerini hızlıca toplayabilirsiniz. Bu konu, bir ACS kümesinde pod ortam değişkenlerini kullanarak uygulama günlüklerinin nasıl toplanacağını açıklar.

1. Adım: Günlük Hizmeti eklentisini etkinleştirme

Bir ACS kümesi oluştururken Enable Log Service seçeneğini işaretleyerek Günlük Hizmeti eklentisini otomatik olarak etkinleştirebilirsiniz. Küme oluşturma sırasında bu seçeneği işaretlemediyseniz mevcut bir küme için eklentiyi etkinleştirmek üzere aşağıdaki adımları izleyin.

  1. ACS konsolu adresine gidin. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Add-ons seçeneğine tıklayın.

  3. Logs and Monitoring bölümünde alibaba-log-controller öğesini bulun. Install seçeneğine tıklayın. Açılan Install iletişim kutusunda OK düğmesine tıklayın.

Önemli

alibaba-log-controller için özel yapılandırma ve ortam değişkenleri tanımladıysanız yükseltme işlemi bu parametrelerin üzerine yazar ve bunları yeniden yapılandırmanız gerekir.

2. Adım: Uygulama oluşturma sırasında günlük toplamayı yapılandırma

Bir uygulama oluştururken konsol sihirbazını veya YAML dosyasını kullanarak konteyner günlüklerini toplayacak şekilde yapılandırma yapabilirsiniz.

Konsol sihirbazı

  1. ACS konsolu adresine gidin. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Deployments yolunu izleyin.

  3. Deployments sayfasında Namespace açılır listesinden bir ad alanı seçin. Ardından sağ üst köşede Create from Image seçeneğine tıklayın.

    Not

    Bu örnekte bir Deployment kullanılmaktadır ancak süreç StatefulSets gibi diğer iş yükü türleri için de aynıdır.

  4. Basic Information sekmesinde Application Name, Replicas: ve Type değerlerini belirtin. Next düğmesine tıklayarak Container sayfasına gidin.

    Not

    Bu bölümde yalnızca Simple Log Service ile ilgili yapılandırmalar açıklanmaktadır. Diğer uygulama yapılandırma öğeleri hakkında bilgi için bkz. Durumsuz iş yükü oluşturma (Deployment).

  5. Log bölümünde günlüklerle ilgili bilgileri yapılandırın.

    1. Collection Configuration değerini belirtin.

      Yeni bir toplama yapılandırması oluşturmak için + simgesine tıklayın. Her yapılandırma bir Logstore ve bir Log Path in Container (Can be set to stdout) değerinden oluşur.

      • Logstore: Toplanan günlüklerin depolanacağı Logstore için bir ad belirtin. Logstore yoksa ACS bunu kümeyle ilişkili Simple Log Service Projesinde otomatik olarak oluşturur.

        Not

        Varsayılan olarak yeni oluşturulan bir Logstore'daki günlükler 90 gün boyunca saklanır.

      • Log Path in Container: Günlüklerin toplanacağı yolu belirtin. Örneğin Tomcat'ten metin günlüklerini toplamak için /usr/local/tomcat/logs/catalina.*.log kullanın.

        Not

        Bu parametreyi stdout olarak ayarlarsanız konteynerin stdout ve stderr çıktıları toplanır.

        Her giriş belirtilen Logstore için bir toplama yapılandırması oluşturur. Varsayılan olarak günlükler basit modda (satır satır) toplanır.

        Örnek: Logstore adını access olarak ve konteynerdeki günlük yolunu /usr/local/tomcat/logs/catalina.*.log olarak ayarlayın. Başka bir Logstore adını catalina ve yolu stdout olarak ayarlayın. Not: Günlük aracı eklentisinin kümeye dağıtıldığından emin olun.

    2. Custom Tag değerini ayarlayın.

      Yeni bir özel etiket oluşturmak için + simgesine tıklayın. Her özel etiket toplanan günlüklere eklenen bir anahtar-değer çiftidir. Bu etiketleri konteyner günlüklerinize sürüm numarası gibi meta veriler eklemek için kullanın.

      Tag Name alanına release girin. Tag Value alanına 1.0.0 girin.

  6. Yapılandırmayı tamamladıktan sonra sağ üst köşedeki Next düğmesine tıklayın.

    Sonraki işlemler hakkında bilgi için bkz. Durumsuz iş yükü oluşturma (Deployment).

YAML dosyası

  1. ACS konsolu adresine gidin. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Workloads > Deployments yolunu izleyin.

  3. Deployments sayfasında Namespace açılır listesinden bir ad alanı seçin. Ardından sağ üst köşede Create from YAML seçeneğine tıklayın.

    Not

    Bu örnekte bir Deployment kullanılmaktadır ancak süreç StatefulSets gibi diğer iş yükü türleri için de aynıdır.

  4. YAML dosyasını yapılandırın.

    YAML dosyasının sözdizimi Kubernetes sözdizimiyle aynıdır. Konteyner için bir toplama yapılandırması belirtmek üzere env kullanarak bir Collection Configuration ve bir Custom Tag eklemeniz gerekir. Aşağıdaki kod basit bir pod örneği sunar:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:   # Configure environment variables
        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log
        - name: aliyun_logs_mytag1_tags
          value: tag1=v1
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    Gereksinimlerinize göre aşağıdaki sırayla ayarları yapılandırın.

    Not

    Gelişmiş günlük toplama gereksinimleri hakkında daha fazla bilgi için bkz. 3. Adım: Gelişmiş günlük toplama parametreleri.

    1. Ortam değişkenlerini kullanarak bir Collection Configuration ve bir Custom Tag oluşturun. Yapılandırma ile ilgili tüm ortam değişkenleri aliyun_logs_ ön ekiyle başlar.

      • Toplama yapılandırması oluşturun.

        apiVersion: v1
        kind: Pod
        metadata:
          name: my-demo
        spec:
          containers:
          - name: my-demo-app
            image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
            env:
            - name: aliyun_logs_log-stdout
              value: stdout
            - name: aliyun_logs_log-varlog
              value: /var/log/*.log    
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]                    

        Örnekte aliyun_logs_{key} formatı kullanılarak iki toplama yapılandırması oluşturulmuştur. İlgili {key} değerleri log-stdout ve log-varlog şeklindedir.

        • aliyun_logs_log-stdout: Bu değişken konteynerin stdout çıktısı için bir toplama yapılandırması oluşturur. Toplanan günlükler Logstore adlı log-stdout öğesine gönderilir. İlgili Simple Log Service toplama yapılandırmasının adı da log-stdout olup log-stdout Logstore kullanır.

        • aliyun_logs_log-varlog: Bu ortam değişkeni Logstore adlı log-varlog öğesini oluşturan ve günlük toplama yolunu /var/log/*.log olarak ayarlayan bir yapılandırma belirtir. İlgili Simple Log Service toplama yapılandırmasının adı da log-varlog şeklindedir. Bu yapılandırmanın amacı bir konteynerden /var/log/*.log dosyalarının içeriğini toplamak ve bunu log-varlog Logstore öğesine göndermektir.

      • Özel etiket oluşturun.

        apiVersion: v1
        kind: Pod
        metadata:
          name: my-demo
        spec:
          containers:
          - name: my-demo-app
            image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
            env:
            - name: aliyun_logs_mytag1_tags
              value: tag1=v1           
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]            

        Simple Log Service bu etiketi konteynerden toplanan tüm günlüklere otomatik olarak bir alan olarak ekler. Bu örnekte değişken adının mytag1 kısmı alt çizgi (_) içermeyen herhangi bir ad olabilir.

    2. stdout dışında bir toplama yolu belirtirseniz pod belirtiminde karşılık gelen bir volumeMounts da tanımlamanız gerekir.

      Örnekte toplama yapılandırması /var/log/*.log dosyalarının toplanmasını içerir. Bu nedenle buna uygun olarak /var/log için bir volumeMounts eklenmiştir.

  5. YAML dosyasını yazdıktan sonra yapılandırmayı ACS kümesine uygulamak için Create düğmesine tıklayın.

3. Adım: Gelişmiş günlük toplama parametreleri

Belirli günlük toplama gereksinimleri için gelişmiş parametreleri yapılandırmak üzere çeşitli ortam değişkenlerini kullanabilirsiniz.

Parametre

Açıklama

Örnek

Notlar

aliyun_logs_{key}

  • Zorunludur. {key} yalnızca küçük harf, rakam ve tire (-) içerebilir.

  • aliyun_logs_{key}_logstore ortam değişkenini ayarlamazsanız varsayılan olarak {key} adında bir Logstore oluşturulur.

  • stdout değeri konteynerin standart çıktısını toplar. Diğer değerler konteyner içindeki günlük yolunu belirtir.

  • - name: aliyun_logs_catalina
      value: stdout
  • - name: aliyun_logs_access-log
          value: /var/log/nginx/access.log
  • Varsayılan toplama modu basit moddur. Günlük içeriğini ayrıştırmak için SLS konsolunu kullanmanızı öneririz.

  • {key} Günlük Hizmeti eklentisi tarafından oluşturulan toplama yapılandırmasının adıdır ve Kubernetes kümesi içinde benzersiz olmalıdır.

aliyun_logs_{key}_tags

İsteğe bağlıdır. Değer {tag-key}={tag-value} formatında olmalıdır ve günlüklerin tanımlanmasına yardımcı olur.

- name: aliyun_logs_catalina_tags
  value: app=catalina

Uygulanamaz.

aliyun_logs_{key}_project

İsteğe bağlıdır. SLS Projesi. Bu ortam değişkeni ayarlanmazsa varsayılan olarak eklenti kurulumu sırasında seçilen Projeye atanır.

- name: aliyun_logs_catalina_project
  value: my-k8s-project

Proje Günlük Hizmeti eklentisinin çalıştığı bölgeyle aynı bölgede olmalıdır.

aliyun_logs_{key}_logstore

İsteğe bağlıdır. SLS Logstore. Bu ortam değişkeni ayarlanmazsa Logstore adı varsayılan olarak {key} değerine atanır.

- name: aliyun_logs_catalina_logstore
  value: my-logstore

Uygulanamaz.

aliyun_logs_{key}_shard

İsteğe bağlıdır. Logstore için oluşturulacak parça sayısı. Geçerli değerler: 1 ila 10. Bu ortam değişkeni ayarlanmazsa varsayılan değer 2'dir.

Not

Bu parametre yalnızca bir Logstore oluşturulduğunda geçerlidir; mevcut Logstore'ları etkilemez.

- name: aliyun_logs_catalina_shard
  value: 4

Uygulanamaz.

aliyun_logs_{key}_ttl

İsteğe bağlıdır. Günlüklerin gün cinsinden saklama süresi. Geçerli değerler: 1 ila 3650.

  • 3650 değeri günlüklerin kalıcı olarak saklandığını belirtir.

  • Bu ortam değişkeni ayarlanmazsa varsayılan saklama süresi 90 gündür.

Not

Bu parametre yalnızca bir Logstore oluşturulduğunda geçerlidir; mevcut Logstore'ları etkilemez.

- name: aliyun_logs_catalina_ttl
  value: 3650

Uygulanamaz.

aliyun_logs_{key}_machinegroup

İsteğe bağlıdır. Uygulama için makine grubu. Bu ortam değişkeni ayarlanmazsa varsayılan olarak Günlük Hizmeti eklentisi kurulumu sırasında seçilen makine grubuna atanır. Bu parametrenin nasıl kullanılacağı hakkında daha fazla bilgi için bkz. Özel kullanım durumu 2: Farklı uygulamalardan gelen günlükleri farklı Projelere yönlendirme.

- name: aliyun_logs_catalina_machinegroup
  value: my-machine-group

Uygulanamaz.

aliyun_logs_{key}_logstoremode

İsteğe bağlıdır. SLS Logstore türü. Bu parametre belirtilmezse varsayılan değer standard olur. Geçerli değerler:

Not

Bu parametre yalnızca bir Logstore oluşturulduğunda geçerlidir; mevcut Logstore'ları etkilemez.

  • standard: SLS'nin kapsamlı veri analizi özelliklerini destekler. Bu tür gerçek zamanlı izleme, etkileşimli analiz ve eksiksiz bir gözlemlenebilirlik sistemi oluşturma gibi senaryolar için uygundur.

  • query: Yüksek performanslı sorguları destekler. Dizin trafiği ücretleri standard türünün yaklaşık yarısı kadardır ancak SQL analizini desteklemez. Bu tür büyük veri hacimleri, uzun saklama süreleri (haftalar veya aylar) ve SQL tabanlı analiz gerektirmeyen senaryolar için uygundur.

  • - name: aliyun_logs_catalina_logstoremode
      value: standard 
  • - name: aliyun_logs_catalina_logstoremode
          value: query 

Uygulanamaz.

  • Kullanım durumu 1: Tek bir Logstore'a toplama

    Birden fazla uygulamadan gelen verileri aynı Logstore'a toplamak için aliyun_logs_{key}_logstore parametresini ayarlayabilirsiniz. Örneğin aşağıdaki yapılandırma iki uygulamanın stdout çıktısını toplar ve stdout-logstore Logstore'una gönderir.

    Örnekte Uygulama 1 için {key} değeri app1-stdout ve Uygulama 2 için {key} değeri app2-stdout şeklindedir.

    Uygulama 1 için ortam değişkenleri:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo-1
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:    # Configure environment variables
        - name: aliyun_logs_app1-stdout
          value: stdout
        - name: aliyun_logs_app1-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    Uygulama 2 için ortam değişkenleri:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo-2
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:	# Configure environment variables
        - name: aliyun_logs_app2-stdout
          value: stdout
        - name: aliyun_logs_app2-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]
  • Kullanım durumu 2: Günlükleri farklı Projelere yönlendirme

    Farklı uygulamalardan gelen günlükleri toplamak ve bunları farklı Projelere yönlendirmek için şu adımları izleyin:

    1. Her Projede k8s-group-{cluster-id} adlı özel tanımlayıcıya sahip bir makine grubu oluşturun; burada {cluster-id} küme kimliğidir. Makine grubu adı özelleştirilebilir.

    2. Her uygulama için ortam değişkenlerinde Proje, Logstore ve makine grubu bilgilerini yapılandırın. Makine grubu adı önceki adımda oluşturduğunuz ad olmalıdır.

      Aşağıdaki örnekte Uygulama 1 için {key} değeri app1-stdout ve Uygulama 2 için {key} değeri app2-stdout şeklindedir. Her iki uygulama da aynı Kubernetes kümesindeyse aynı makine grubunu kullanabilirler.

      Uygulama 1 için ortam değişkenleri:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo-1
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# Configure environment variables
          - name: aliyun_logs_app1-stdout
            value: stdout
          - name: aliyun_logs_app1-stdout_project
            value: app1-project
          - name: aliyun_logs_app1-stdout_logstore
            value: app1-logstore
          - name: aliyun_logs_app1-stdout_machinegroup
            value: app1-machine-group
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

      Uygulama 2 için ortam değişkenleri:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo-2
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# Configure environment variables for Application 2
          - name: aliyun_logs_app2-stdout
            value: stdout
          - name: aliyun_logs_app2-stdout_project
            value: app2-project
          - name: aliyun_logs_app2-stdout_logstore
            value: app2-logstore
          - name: aliyun_logs_app2-stdout_machinegroup
            value: app1-machine-group
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

4. Adım: Günlükleri SLS konsolunda görüntüleme

Bu örnek konsol sihirbazıyla oluşturulan bir uygulamanın günlüklerinin nasıl görüntüleneceğini gösterir. Yapılandırma tamamlandığında Simple Log Service uygulama günlüklerini otomatik olarak toplar ve bu günlükleri SLS konsolunda görüntüleyebilirsiniz.

  1. SLS konsolu adresine gidin.

  2. Projects bölümünde ACS kümesine karşılık gelen Projeyi seçin. Varsayılan olarak Projenin adı k8s-log-{ACS-Cluster-ID} şeklindedir. Ardından Logstores sekmesine gidin.

  3. Logstore listesinde toplama yapılandırmasında belirttiğiniz Logstore'u bulun. Logstore adının üzerine gelin. Logstore adının sağ tarafındaki button simgesine ve ardından Search & Analysis seçeneğine tıklayın.

    Günlük sorgulama sayfasında uygulama stdout günlüklerini ve konteynerden gelen metin günlüklerini görüntüleyebilirsiniz. Özel etiket günlüklerde bir alan olarak görünür.

Daha fazla bilgi