すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Pod の環境変数を使用したアプリケーションログの収集

最終更新日:Jan 07, 2026

Alibaba Cloud Simple Log Service (SLS) は、ログデータのためのワンストップサービスです。開発不要で、データ収集、消費、配信、クエリ、分析を迅速に実行できます。ACK サーバーレスクラスターは、マネージド型の Simple Log Service 機能を提供します。ACK サーバーレスクラスターで SLS 環境変数を使用して、アプリケーションコンテナーからの標準出力とログファイルを収集し、SLS に配信できます。

重要
  • ログの収集には、Simple Log Service の CustomResourceDefinitions (CRD) を使用することを推奨します。詳細については、「CRD を使用したアプリケーションログの収集」をご参照ください。

  • SLS の CRD と環境変数を同時に使用しないでください。ログ収集が失敗する可能性があります。

ステップ 1:アプリケーションの作成と Simple Log Service の設定

イメージまたは YAML テンプレートからアプリケーションを作成し、同時にコンテナーログを収集するように Simple Log Service を設定できます。SLS の詳細については、「Simple Log Service とは」をご参照ください。

イメージからの作成

  1. ACK コンソールにログインし、左側のナビゲーションウィンドウで[クラスター] をクリックします。

  2. [ステートレス] ページの上部で、[名前空間] ドロップダウンリストから対象の名前空間を選択し、[イメージから作成] をクリックします。

    1. [アプリケーション基本情報] タブで、[アプリケーション名][レプリカ]、および [タイプ] を設定します。次に、[次へ] をクリックします。

    2. [コンテナ設定] タブの [Log Service] セクションで、パラメーターを設定します。

      説明

      このトピックでは、Simple Log Service に関連するパラメーターのみを説明します。他のアプリケーションパラメーターの詳細については、「ステートレスワークロード (Deployment) の作成」をご参照ください。

      次の図は設定例です。采集配置

      設定項目

      説明

      収集設定

      収集設定が変更された場合、重複収集を防ぐために、過去の収集設定を手動で削除する必要があります。

      [収集設定] をクリックします。[Logstore][コンテナ内のログパス] を設定します。

      • Logstore:Logstore の名前。名前には小文字、数字、ハイフン (-) のみを含めることができます。

        このパラメーターを使用して、収集したログを保存する Logstore を指定します。指定した Logstore が存在しない場合、ACK サーバーレスはクラスターに関連付けられている Simple Log Service プロジェクトに Logstore を自動的に作成します。

      • コンテナー内のログパス:ログを収集するパス。たとえば、/usr/local/tomcat/logs/catalina.*.log を使用して Tomcat のテキストログを収集します。

        説明

        このパラメーターを stdout に設定すると、標準出力と標準エラーが収集されます。

      各収集設定は、対応する Logstore の構成として自動的に作成されます。デフォルトでは、ログはシンプルモード (行単位) で収集されます。より高度な収集メソッドについては、Simple Log Service コンソールにログインし、対応するプロジェクトと Logstore で構成を変更します。プロジェクト名は、デフォルトで `k8s-log` プレフィックスを使用します。

      カスタムタグ

      [カスタムタグ] をクリックします。[タグ名][タグ値] を設定します。

      各カスタムタグは、収集されたログデータに追加されるキーと値のペアです。カスタムタグを使用して、バージョン番号などでログデータをマークできます。

    3. 構成を完了したら、[次へ] をクリックします。次のステップの詳細については、ステートレスワークロード (Deployment) の作成をご参照ください。

YAML ファイルからの作成

  1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [ステートレス] ページの上部で、[名前空間] ドロップダウンリストからターゲット名前空間を選択し、[YAMLから作成] をクリックします。

  3. [作成] ページで、サンプルテンプレートを選択します。[テンプレート] エディターで、YAML ファイルを設定します。次に、[作成] をクリックします。

    テンプレートは Kubernetes の構文を使用します。コンテナーの収集設定を指定するには、env を使用して収集設定とカスタムタグを追加します。次に、収集設定に基づいて対応する volumeMountsvolumes を作成します。次のコードは、Pod の YAML ファイルのサンプルです:

    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'
        args:
        - -c
        - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /var/log/test.log; sleep 1;done
        command:
        - /bin/sh
        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
        ######### Configure Volume Mounts ###########
        volumeMounts:
        - name: volumn-sls-mydemo
          mountPath: /var/log
      volumes:
      - name: volumn-sls-mydemo
        emptyDir: {}

    必要に応じて、次の設定を Pod の YAML ファイルのサンプルに追加します:

    説明

    より高度なログ収集オプションについては、「ステップ 2:環境変数の高度なパラメーターの設定」をご参照ください。

    1. 環境変数を使用して収集設定とカスタムタグを作成します。設定に関連するすべての環境変数は、プレフィックスとして aliyun_logs_ を使用する必要があります。

      1. 収集設定ルールを作成します:

        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log

        この例では、aliyun_logs_{key} 形式で 2 つの収集設定を作成します。対応する {key} の値は log-stdoutlog-varlog です。

        • aliyun_logs_log-stdout:この env 変数は、log-stdout という名前の Logstore を作成し、ログ収集パスを stdout に設定する構成を指定します。対応する Simple Log Service の収集設定も log-stdout という名前で、コンテナーからの標準出力を収集し、log-stdout Logstore に送信します。

        • aliyun_logs_log-varlog:この env は、log-varlog という名前の Logstore を作成し、/var/log/*.log パスからログを収集する構成を指定します。対応する Simple Log Service の収集設定の名前も log-varlog です。この構成は、コンテナーの /var/log/*.log パス内のファイルからログを収集し、log-varlog Logstore に保存します。

      2. カスタムタグルールを作成します:

        - name: aliyun_logs_mytag1_tags
          value: tag1=v1

        タグを設定すると、対応するフィールドがコンテナーから収集されたログに自動的に追加されます。タグ名 (例:mytag1) には、小文字、数字、ハイフン (-) のみを含めることができます。

    2. 収集設定で stdout 以外のパスを指定した場合、対応する volumeMounts を作成する必要があります。この例では、設定が /var/log/*.log からログを収集するため、/var/log の volumeMounts が追加されます。

ステップ 2:環境変数の高度なパラメーターの設定

環境変数ベースの LoongCollector 設定は、さまざまなパラメーターをサポートしています。環境変数を使用して高度な設定を行い、ログ収集の要件を満たすことができます。

重要

エッジコンピューティングのシナリオでは、環境変数を使用してログ収集を設定することはできません。

変数

説明

使用上の注意

aliyun_logs_{key}

  • この変数は必須です。{key} には小文字、数字、ハイフン (-) のみを含めることができます。

  • 指定された aliyun_logs_{key}_logstore が存在しない場合、{key} という名前の Logstore が作成されます。

  • コンテナーの stdout を収集するには、値を stdout に設定します。また、コンテナー内のパスに値を設定して、ログファイルを収集することもできます。

  • - name: aliyun_logs_catalina
    
      value: stdout
  • - name: aliyun_logs_access-log
    
      value: /var/log/nginx/access.log
  • デフォルトでは、ログはシンプルモードで収集されます。収集したログを解析したい場合は、Simple Log Service コンソールまたは CRD を使用して関連設定を行うことを推奨します。

  • {key} は Logtail 構成の名前を指定します。構成名は Kubernetes クラスター内で一意である必要があります。

aliyun_logs_{key}_tags

オプション。この変数は、ログデータにタグを追加するために使用されます。値は {tag-key}={tag-value} の形式である必要があります。

- name: aliyun_logs_catalina_tags

  value: app=catalina

N/A。

aliyun_logs_{key}_project

オプション。この変数は Simple Log Service プロジェクトを指定します。デフォルトのプロジェクトは、クラスター作成時に指定したものです。

- name: aliyun_logs_catalina_project

  value: my-k8s-project

プロジェクトは Logtail と同じリージョンにデプロイする必要があります。

aliyun_logs_{key}_logstore

オプション。この変数は Simple Log Service の Logstore を指定します。デフォルト値:{key}。

- name: aliyun_logs_catalina_logstore

  value: my-logstore

N/A。

aliyun_logs_{key}_shard

オプション。この変数は Logstore のシャード数を指定します。有効値:1~10。デフォルト値:2。

説明

指定した Logstore が既に存在する場合、この変数は効果がありません。

- name: aliyun_logs_catalina_shard

  value: '4'

N/A。

aliyun_logs_{key}_ttl

オプション。この変数はログの保持期間を指定します。有効値:1~3650。

  • ログデータを永続的に保持するには、値を 3650 に設定します。

  • デフォルトの保持期間は 90 日です。

説明

指定した Logstore が既に存在する場合、この変数は効果がありません。

- name: aliyun_logs_catalina_ttl

  value: '3650'

N/A。

aliyun_logs_{key}_machinegroup

オプション。この変数は、アプリケーションがデプロイされているノードグループを指定します。デフォルトのマシングループは、Logtail がデプロイされているグループです。この変数の使用方法の詳細については、「ACK クラスターからのコンテナーログの収集」をご参照ください。

- name: aliyun_logs_catalina_machinegroup

  value: my-machine-group

N/A。

aliyun_logs_{key}_logstoremode

オプション。この変数は Logstore のタイプを指定します。デフォルト値:standard。有効値:standard と query。

説明

指定した Logstore が既に存在する場合、この変数は効果がありません。

  • standard:標準 Logstore。このタイプの Logstore はログ分析機能をサポートし、リアルタイムモニタリングやインタラクティブ分析などのシナリオに適しています。このタイプの Logstore を使用して、包括的な可観測性システムを構築できます。

  • query:クエリ Logstore。このタイプの Logstore は、パフォーマンス専有型のクエリをサポートします。クエリ Logstore のインデックスのトラフィック料金は、standard Logstore の約半分です。クエリ Logstore は SQL 分析をサポートしていません。クエリ Logstore は、データ量が大きい、ログの保持期間が長い、またはログ分析が不要なシナリオに適しています。ログが数週間または数ヶ月間保存される場合、ログの保持期間は長いと見なされます。

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

この変数を使用するには、logtail-ds イメージのバージョンが 1.3.1 以降であることを確認してください。

  • カスタム要件 1:複数のアプリケーションから同じ Logstore へのデータ収集

    このシナリオでは、 aliyun_logs_{key}_logstore パラメーターを設定します。次の例は、2 つのアプリケーションから stdout を stdout-logstore に収集する方法を示しています。

    アプリケーション 1 の {key}app1-stdout に設定され、アプリケーション 2 の {key}app2-stdout に設定されます。

    アプリケーション 1 に次の環境変数を設定します:

    # 環境変数を設定
        - name: aliyun_logs_app1-stdout
          value: stdout
        - name: aliyun_logs_app1-stdout_logstore
          value: stdout-logstore

    アプリケーション 2 に次の環境変数を設定します:

    # 環境変数を設定
        - name: aliyun_logs_app2-stdout
          value: stdout
        - name: aliyun_logs_app2-stdout_logstore
          value: stdout-logstore
  • カスタム要件 2:複数のアプリケーションから異なるプロジェクトへのデータ収集

    このシナリオでは、次の手順を実行します:

    1. 各プロジェクトにマシングループを作成し、マシングループのカスタム識別子を次の形式で設定します:k8s-group-{cluster-id}。ここで、{cluster-id} はクラスターの ID です。カスタムのマシングループ名を指定できます。

    2. 各アプリケーションの環境変数で、プロジェクト、Logstore、およびマシングループを指定します。マシングループの名前は、前のステップで作成したものと同じです。

      次の例では、アプリケーション 1 の {key}app1-stdout に設定され、アプリケーション 2 の {key}app2-stdout に設定されます。2 つのアプリケーションが同じ ACK クラスターにデプロイされている場合、アプリケーションに同じマシングループを使用できます。

      アプリケーション 1 に次の環境変数を設定します:

      # 環境変数を設定
          - 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

      アプリケーション 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

ステップ 3:ログの表示

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [ログセンター] ページで、[アプリケーションログ] タブをクリックします。目的の Logstore を選択すると、アプリケーションコンテナーからのログを表示できます。