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

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

最終更新日:Jun 23, 2026

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

ステップ 1:Log Service アドオンの有効化

ACS クラスターの作成時に [ログサービスを有効にする] を選択すると、Log Service アドオンが自動的に有効になります。クラスター作成時にこのオプションを選択しなかった場合は、次の手順に従って既存のクラスターでアドオンを有効にできます。

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

  2. クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、Add-ons をクリックします。

  3. Logs and Monitoring セクションで、alibaba-log-controller を見つけます。Install をクリックします。Install ダイアログボックスで、OK をクリックします。

重要

alibaba-log-controller の構成と環境変数をカスタマイズしている場合、アップグレードによってこれらのパラメーターが上書きされるため、再設定する必要があります。

ステップ 2:アプリケーション作成時のログ収集の設定

アプリケーションを作成する際に、コンソールまたは YAML ファイルを使用してコンテナログを収集するように設定できます。

コンソールウィザード

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

  2. クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、Workloads > Deployments を選択します。

  3. Deployments ページで、Namespace ドロップダウンリストから名前空間を選択します。次に、右上隅にある Create from Image をクリックします。

    説明

    この例ではデプロイメントを使用しますが、StatefulSet などの他のワークロードタイプでも手順は同じです。

  4. Basic Information タブで、Name:Replicas:Type を設定します。Next をクリックして Container ページに移動します。

    説明

    このセクションでは、SLS に関連する設定のみを説明します。他のアプリケーション設定項目については、「ステートレスワークロード (デプロイメント) の作成」をご参照ください。

  5. Log セクションで、ログ関連の情報を設定します。

    1. Collection Configuration を設定します。

      + アイコンをクリックして、新しい収集設定を作成します。各設定は、LogstoreLog Path in Container (Can be set to stdout) で構成されます。

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

        説明

        デフォルトでは、新しく作成された Logstore 内のログは 90 日間保存されます。

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

        説明

        このパラメーターを stdout に設定すると、コンテナの stdout と stderr が収集されます。

        各エントリは、指定された Logstore の収集設定を作成します。 デフォルトでは、ログはシンプルモード (1 行ずつ) で収集されます。

        例:Logstore 名を access に、コンテナ内のログパスを /usr/local/tomcat/logs/catalina.*.log に設定します。別の Logstore 名を catalina に、パスを stdout に設定します。注:ログエージェントアドオンがクラスターにデプロイされていることを確認してください。

    2. Custom Tag を設定します。

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

      [タグ名] フィールドに release を入力します。[タグ値] フィールドに 1.0.0 を入力します。

  6. 設定が完了したら、右上隅の Next をクリックします。

    後続の操作については、「ステートレスワークロード (デプロイメント) の作成」をご参照ください。

YAML ファイル

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

  2. クラスターリスト ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > デプロイメント をクリックします。

  3. Deployments ページで、Namespace ドロップダウンリストから名前空間を選択します。次に、右上隅にある Create from YAML をクリックします。

    説明

    この例ではデプロイメントを使用しますが、StatefulSet などの他のワークロードタイプでも手順は同じです。

  4. YAML ファイルを設定します。

    YAML ファイルの構文は Kubernetes の構文と同じです。コンテナの収集設定を指定するには、env を使用して Collection ConfigurationCustom Tag を追加する必要があります。次のコードは、単純な 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. 環境変数を使用して、Collection ConfigurationCustom Tag を作成します。すべての設定関連の環境変数のプレフィックスは 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"]                    

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

        • aliyun_logs_log-stdout:この変数は、コンテナの stdout の収集設定を作成します。収集されたログは、Logstore という名前の log-stdout に送信されます。対応する SLS の収集設定も log-stdout という名前で、log-stdout Logstore を使用します。

        • aliyun_logs_log-varlog:この環境変数は、Logstore という名前の log-varlog を作成し、ログ収集パスを /var/log/*.log に設定する構成を指定します。対応する SLS の収集設定の名前も 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"]            

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

    2. stdout 以外の収集パスを指定する場合は、Pod 仕様に対応する volumeMounts も定義する必要があります。

      この例では、収集設定に /var/log/*.log の収集が含まれています。したがって、/var/log の volumeMounts が適宜追加されます。

  5. YAML ファイルを作成した後、Create をクリックして設定を ACS クラスターに適用します。

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

さまざまな環境変数を使用して、特定のログ収集要件に対応する高度なパラメーターを設定できます。

パラメーター

説明

aliyun_logs_{key}

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

  • aliyun_logs_{key}_logstore 環境変数を設定しない場合、デフォルトで {key} という名前の Logstore が作成されます。

  • 値 stdout はコンテナの標準出力を収集します。その他の値はコンテナ内のログパスを指定します。

  • - name: aliyun_logs_catalina
      value: stdout
  • - name: aliyun_logs_access-log
      value: /var/log/nginx/access.log
  • デフォルトの収集モードはシンプルモードです。ログコンテンツを解析するには、SLS コンソールを使用することをお勧めします

  • {key} は Log Service アドオンによって作成される収集設定の名前であり、Kubernetes クラスター内で一意である必要があります。

aliyun_logs_{key}_tags

オプション。値は {tag-key}={tag-value} 形式である必要があり、ログの識別に役立ちます。

- name: aliyun_logs_catalina_tags
  value: app=catalina

該当なし。

aliyun_logs_{key}_project

オプション。SLS プロジェクト。この環境変数が設定されていない場合、デフォルトでアドオンのインストール時に選択されたプロジェクトになります。

- name: aliyun_logs_catalina_project
  value: my-k8s-project

プロジェクトは、Log Service アドオンが実行されているのと同じリージョンにある必要があります。

aliyun_logs_{key}_logstore

オプション。SLS Logstore。この環境変数が設定されていない場合、Logstore 名はデフォルトで {key} の値になります。

- name: aliyun_logs_catalina_logstore
  value: my-logstore

該当なし。

aliyun_logs_{key}_shard

オプション。Logstore 用に作成するシャード数。有効な値:1~10。この環境変数が設定されていない場合、デフォルト値は 2 です。

説明

このパラメーターは Logstore が作成されるときにのみ適用され、既存の Logstore には影響しません。

- name: aliyun_logs_catalina_shard
  value: 4

該当なし。

aliyun_logs_{key}_ttl

オプション。ログの保存期間 (日数)。有効な値:1~3650。

  • 値 3650 は、ログが永続的に保持されることを指定します。

  • この環境変数が設定されていない場合、デフォルトの保存期間は 90 日です。

説明

このパラメーターは Logstore が作成されるときにのみ適用され、既存の Logstore には影響しません。

- name: aliyun_logs_catalina_ttl
  value: 3650

該当なし。

aliyun_logs_{key}_machinegroup

オプション。アプリケーションのマシングループ。この環境変数が設定されていない場合、デフォルトで Log Service アドオンのインストール時に選択されたマシングループになります。このパラメーターの使用方法の詳細については、「ユースケース 2:異なるアプリケーションからのログを異なるプロジェクトにルーティングする」をご参照ください。

- name: aliyun_logs_catalina_machinegroup
  value: my-machine-group

該当なし。

aliyun_logs_{key}_logstoremode

オプション。SLS Logstore のタイプ。このパラメーターを指定しない場合、デフォルト値は standard です。有効な値:

説明

このパラメーターは Logstore が作成されるときにのみ適用され、既存の Logstore には影響しません。

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

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

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

該当なし。

  • ユースケース 1:単一の Logstore への収集

    複数のアプリケーションから同じ Logstore にデータを収集するには、 aliyun_logs_{key}_logstore パラメーターを設定します。たとえば、次の設定では、2 つのアプリケーションの stdout を収集し、stdout-logstore 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. 各プロジェクトで、k8s-group-{cluster-id} という名前のカスタム識別子を持つマシングループを作成します。ここで、{cluster-id} はクラスター ID です。マシングループ名はカスタマイズできます。

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

      次の例では、アプリケーション 1 の {key}app1-stdout で、アプリケーション 2 の {key}app2-stdout です。両方のアプリケーションが同じ 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:SLS コンソールでのログの表示

この例では、コンソールウィザードで作成されたアプリケーションのログを表示する方法を示します。設定が完了すると、SLS は自動的にアプリケーションログを収集し、SLS コンソールで表示できます。

  1. SLS コンソールにログインします。

  2. プロジェクト一覧 セクションで、ACS クラスターに対応するプロジェクトを選択します。デフォルトでは、プロジェクト名は k8s-log-{ACS-Cluster-ID} です。次に、Logstores タブに移動します。

  3. Logstore のリストで、収集設定で指定した Logstore を見つけます。Logstore 名にカーソルを合わせます。Logstore 名の右側にある button アイコンをクリックし、次に 検索と分析 をクリックします。

    ログクエリページで、アプリケーションの stdout ログとコンテナからのテキストログを表示できます。カスタムタグはログのフィールドとして表示されます。

関連情報