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

Container Compute Service:Pod の環境変数を使用してアプリケーションログ収集を構成する

最終更新日:Nov 09, 2025

Container Compute Service (ACS) は Simple Log Service (SLS) と統合されています。ACS クラスターを作成する際に、SLS を有効にして、標準出力やコンテナーからのテキストファイルを含むコンテナーログを収集できます。このトピックでは、Pod の環境変数を使用して ACS クラスター内のアプリケーションログを収集する方法について説明します。

ステップ 1: Simple Log Service コンポーネントを有効にする

ACS クラスターを作成する際に、[Use Log Service] を選択して Simple Log Service コンポーネントを自動的に有効にできます。クラスター作成時にこのオプションを選択しなかった場合は、次の手順に従って既存のクラスターでコンポーネントを有効にできます。

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

  2. [クラスター] ページで、対象のクラスターを見つけてその ID をクリックします。左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  3. [ログとモニタリング] タブで [alibaba-log-controller] を見つけ、[インストール] をクリックします。表示される [コンポーネントのインストール] ダイアログボックスで、[OK] をクリックします。

重要

以前のバージョンの alibaba-log-controller コンポーネントがインストールされている場合は、アップグレードできます。アップグレード後、クラスターはコンポーネントのパラメーターをリセットします。alibaba-log-controller の構成と環境変数をカスタマイズした場合、パラメーターは上書きされます。必要に応じて再構成する必要があります。

ステップ 2: アプリケーション作成時に Simple Log Service を構成する

アプリケーションを作成する際に、Simple Log Service を構成してコンテナーログを収集できます。構成は、コンソールまたは YAML ファイルを使用して実行できます。

ACS コンソールのウィザードを使用してアプリケーションを作成し、Simple Log Service を構成する

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

  2. [クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、[名前空間] ドロップダウンリストから名前空間を選択します。次に、ページの右上隅にある [イメージから作成] をクリックします。

    説明

    この例では、ステートレスアプリケーションを使用します。構成方法は、ステートフルワークロードなど、他のタイプのワークロードでも同じです。

  4. [基本情報] ウィザードページで、[名前][レプリカ][タイプ] を指定します。次に、[次へ] をクリックして [コンテナー] ウィザードページに移動します。

    説明

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

  5. [ログ] セクションで、ログ収集パラメーターを構成します。

    1. [コレクション構成] を構成します。

      プラス記号 ([+]) をクリックして構成エントリを追加します。各構成エントリは、[Logstore][コンテナー内のログパス (stdout に設定可能)] で構成されます。

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

        説明

        Logstore のデフォルトのログ保持期間は 180 日です。

      • コンテナー内のログパス (stdout に設定可能): ログデータを収集するパス。/usr/local/tomcat/logs/catalina.*.log の値は、Tomcat アプリケーションのログファイルが収集されることを示します。

        説明

        値を stdout に設定すると、stdout と stderr が収集されます。

        各コレクション構成は、対応する Logstore に対して自動的に作成されます。デフォルトでは、ログは 1 行ずつ収集されます。

        采集配置

    2. [カスタムタグ] を設定します。

      [+] アイコンをクリックしてカスタムタグを追加します。各カスタムタグは、収集されたログに追加されるキーと値のペアです。カスタムタグを使用して、コンテナーのログデータにバージョン番号などのマークを付けることができます。

      自定义tag

  6. 他のパラメーターを設定した後、[次へ] をクリックして詳細設定を行います。

    後続のステップの詳細については、「Deployment を使用してステートレスアプリケーションを作成する」をご参照ください。

YAML ファイルを使用して作成

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

  2. クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > 展開 を選択します。

  3. [デプロイメント] ページで、[名前空間] ドロップダウンリストから名前空間を選択します。次に、ページの右上隅にある [YAML から作成] をクリックします。

    説明

    この例では、ステートレスアプリケーションを使用します。構成方法は、ステートフルワークロードなど、他のタイプのワークロードでも同じです。

  4. YAML テンプレートを構成します。

    YAML ファイルの構文は Kubernetes の構文と同じです。ただし、コンテナーのコレクション構成を指定するには、env を使用して、コンテナーに [コレクション構成][カスタムタグ] を追加する必要があります。次のコードは、単純な Pod の例です。

    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
        - name: aliyun_logs_mytag1_tags
          value: tag1=v1
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    必要に応じて、次の順序で設定を構成します。

    説明

    高度なログ収集要件がある場合は、「ステップ 3: ログ収集の高度なパラメーター」をご参照ください。

    1. 環境変数を使用して [コレクション構成][カスタムタグ] を作成します。構成に関連するすべての環境変数は、プレフィックスとして aliyun_logs_ を使用します。

      • 次のフォーマットでログ収集構成を追加します。

        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"]                    

        この例では、2 つのコレクション構成が aliyun_logs_{key} フォーマットで作成されます。{key} の値は log-stdoutlog-varlog です。

        • aliyun_logs_log-stdout: この環境変数は、Logstore という名前の log-stdout の構成を作成し、ログ収集パスを stdout に設定します。対応する Simple Log Service のコレクション構成も log-stdout という名前になります。この構成は、コンテナーの標準出力を収集し、log-stdout Logstore に保存します。

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

      • 次のフォーマットで [カスタムタグ] を追加します。

        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"]            

        タグを構成すると、対応するフィールドがコンテナーから収集されたログに自動的に追加されます。この例では、mytag1アンダースコア (_) を含まない任意の名前 にすることができます。

    2. コレクション構成で `stdout` 以外の収集パスを指定する場合は、このセクションで対応する volumeMounts を作成する必要があります。

      この例では、/var/log/*.log からログを収集するためのコレクション構成が追加されています。したがって、/var/log の volumeMounts も追加されます。

  5. YAML テンプレートを変更した後、[作成] をクリックして構成を ACS クラスターに送信します。

ステップ 3: ログ収集の高度なパラメーター

コンテナーの環境変数を使用して、さまざまな収集パラメーターを構成できます。特別なログ収集要件を満たすために、高度なパラメーターを設定できます。

環境変数名

説明

注意

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 コンソールを使用することをお勧めします。

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

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

プロジェクトは Simple Log Service コンポーネントと同じリージョンにある必要があります。

aliyun_logs_{key}_logstore

任意。この変数は Simple Log Service の Logstore を指定します。デフォルトでは、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

任意。この変数は、アプリケーションがデプロイされているノードグループを指定します。デフォルトのノードグループは、alibaba-log-controller コンポーネントがデプロイされているグループです。変数の使用方法の詳細については、「特殊なシナリオ 2: 異なるアプリケーションから異なるプロジェクトにデータを収集する」をご参照ください。

- name: aliyun_logs_catalina_machinegroup

  value: my-machine-group

N/A

aliyun_logs_{key}_logstoremode

任意。この変数は Logstore のタイプを指定します。デフォルト値: standard。有効な値:

説明

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

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

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

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

N/A

  • 特殊なシナリオ 1: 複数のアプリケーションから同じ Logstore にデータを収集する

    複数のアプリケーションからデータを収集し、同じ Logstore にデータを保存するには、 aliyun_logs_{key}_logstore パラメーターを設定します。たとえば、次の構成では、2 つのアプリケーションから `stdout` を収集し、stdout-logstore に保存します。

    この例では、アプリケーション 1 の {key}app1-stdout で、アプリケーション 2 の {key}app2-stdout です。

    アプリケーション 1 に次の環境変数を構成します。

    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:    # 環境変数を構成します
        - 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"]

    アプリケーション 2 に次の環境変数を構成します。

    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:	# 環境変数を構成します
        - 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"]
  • 特殊なシナリオ 2: 異なるアプリケーションから異なるプロジェクトにデータを収集する

    異なるアプリケーションからデータを収集し、異なるプロジェクトにデータを保存するには、次の手順を実行します。

    1. 各プロジェクトで、マシングループを作成します。[カスタム ID] を選択し、ID を k8s-group-{cluster-id} に設定します。ここで、{cluster-id} はクラスター ID です。カスタムのマシングループ名を設定することもできます。

    2. 各アプリケーションの環境変数で、プロジェクト、Logstore、およびマシングループの情報を構成します。マシングループ名は、前のステップで作成したマシングループの名前である必要があります。

      次の例では、アプリケーション 1 の {key}app1-stdout で、アプリケーション 2 の {key}app2-stdout です。2 つのアプリケーションが同じ Kubernetes クラスターにある場合は、同じマシングループを使用できます。

      アプリケーション 1 に次の環境変数を構成します。

      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:	# 環境変数を構成します
          - 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"]

      アプリケーション 2 に次の環境変数を構成します。

      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:	# アプリケーション 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: Simple Log Service コンソールを使用してログを表示する

この例では、コンソールウィザードを使用して作成されたアプリケーションのログを表示する方法について説明します。構成が完了すると、アプリケーションログが収集され、Simple Log Service に保存されます。その後、Simple Log Service コンソールでコンテナーログを表示できます。

  1. Simple Log Service コンソールにログインします。

  2. [プロジェクト] セクションで、ACS クラスターに対応するプロジェクト (デフォルト: k8s-log-{ACS クラスター ID}) を選択し、クリックして [Logstore] タブに移動します。

  3. Logstore リストで、ログ収集を構成するときに指定した Logstore を見つけます。ポインターを Logstore 名の上に移動し、button アイコンをクリックします。次に、[検索と分析] をクリックします。

    この例では、ログクエリページでアプリケーションのコンテナー内の標準出力ログとテキストログを表示でき、ログフィールドに追加されたカスタムタグを見つけることができます。

詳細情報