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

Container Service for Kubernetes:サイドカーを使用してログを収集する

最終更新日:Nov 09, 2025

Alibaba Cloud Simple Log Service (SLS) は、サイドカーを使用した Elastic Container Instance (ECI) ログの収集をサポートしています。このトピックでは、サイドカーコンテナーをデプロイし、Logtail 構成を作成してコンテナーログを収集する方法について説明します。

前提条件

  • Serverless Kubernetes クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。

  • Simple Log Service が有効化されていること。

    Simple Log Service コンソールにログインしたときにサービスが有効化されていない場合は、画面の指示に従って有効化してください。

背景情報

Alibaba Cloud SLS は、サイドカーを使用した ECI ログの収集をサポートしています。これは、各 ECI インスタンスで、サイドカーコンテナーがログエージェントとしてアプリケーションコンテナーと並行して実行され、アプリケーションコンテナーによって生成されたログを収集することを意味します。

重要

サイドカーモードは Logtail に基づいています。Logtail は、アプリケーションコンテナーとログフォルダーを共有する必要があります。アプリケーションコンテナーは、共有フォルダーにログを書き込みます。その後、Logtail は共有フォルダー内のログファイルの変更を監視し、ログを収集します。

収集されたログは、次の 2 種類に分類できます。

  • 標準出力

    標準出力の収集は、ECI の stdlog ボリュームに依存します。Pod を作成するときに、このボリュームをサイドカーコンテナーにマウントします。これにより、サイドカーは標準出力ログにファイルとしてアクセスできます。これらのログは、ECI のベースコンポーネントによって収集されます。

  • テキストファイル

    テキストファイルは、Pod 内の共有ボリュームを使用して収集できます。同じボリュームを Pod 内の複数のコンテナーにマウントできます。これにより、サイドカーはアプリケーションコンテナーがボリュームに書き込むテキストファイルを直接収集できます。

ステップ 1: サイドカーコンテナーのデプロイ

  1. サイドカーコンテナーを含むデプロイメントを作成します。

    以下は YAML ファイルのサンプルです。プレースホルダー変数を実際の値に置き換えてください。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-log-sidecar-demo
      name: nginx-log-sidecar-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx-log-sidecar-demo
      template:
        metadata:
          labels:
            app: nginx-log-sidecar-demo
        spec:
          containers:
            - name: nginx-log-demo
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/docker-log-test:latest
              command:
                - /bin/mock_log
              args:
                - '--log-type=nginx'
                - '--stdout=false'
                - '--stderr=true'
                - '--path=/var/log/nginx/access.log'
                - '--total-count=100000000'
                - '--logs-per-sec=100'
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
            - name: logtail
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/logtail:latest
              env:
                - name: ALIYUN_LOGTAIL_USER_ID
                  value: "${Aliuid}"
                - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
                  value: nginx-log-sidecar
                - name: ALIYUN_LOGTAIL_CONFIG
                  value: /etc/ilogtail/conf/${RegionId}/ilogtail_config.json
                - name: aliyun_logs_machinegroup
                  value: k8s-group-app-alpine
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
                - mountPath: /stdlog
                  name: stdlog
          volumes:
            - emptyDir: {}        # テキストファイルログを emptyDir ボリュームに保存
              name: nginx-log
            - name: stdlog        # 標準出力ログを stdlog ボリュームに保存
              flexVolume:
                driver: alicloud/pod-stdlog
  2. Pod 情報を取得します。

    kubectl get pods -l app=nginx-log-sidecar-demo

    期待される出力は次のとおりです。

    NAME                                      READY   STATUS    RESTARTS   AGE
    nginx-log-sidecar-demo-84587d9796-krn5z   2/2     Running   0          32m
    nginx-log-sidecar-demo-84587d9796-vhnld   2/2     Running   0          32m
  3. ログを表示します。

ステップ 2: ログを収集するための Logtail の構成

サイドカーコンテナーをデプロイした後、Simple Log Service コンソールで Logtail 構成を作成してログを収集します。

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

  2. コンソールの右側で、[クイック統合] カードをクリックします。[データ] ページで、[RegEx - テキストログ] をクリックします。

  3. プロジェクトと Logstore を選択し、[次へ] をクリックします。

    プロジェクトまたは Logstore がない場合は、[今すぐ作成] をクリックして作成します。

    説明

    システムは、Kubernetes クラスターごとに k8s-log-{K8s-Cluster-ID} という名前のプロジェクトを自動的に作成します。

  4. マシングループを構成し、[次へ] をクリックします。

    • [シナリオ]: [K8s シナリオ] を選択します。

    • [デプロイモード]: [サイドカー] を選択します。

    • [マシングループの選択]: [ソースマシングループ] エリアで、ターゲットマシングループを選択し、[適用済みマシングループ] エリアに移動します。マシングループが利用できない場合は、[マシングループの作成] をクリックします。

  5. Logtail を構成し、[次へ] をクリックします。

    Logtail は、単純な単一行、正規表現、区切り文字、JSON などのモードでテキストログを収集することをサポートしています。詳細については、「ホストからログを収集する」をご参照ください。

    以下は構成例です。

    • 標準出力の例

      標準出力を収集する場合、ログパスはコンテナー内の stdlog ボリュームのマウントパスです。次の表に、パラメーター設定の例を示します。

      構成エリア

      パラメーター

      グローバル設定

      構成名

      stdout

      入力設定

      Logtail デプロイモード

      テキストログ収集

      ファイルパス

      /stdlog/**/*.log

      処理設定

      処理モード

      なし

      説明

      処理プラグインを追加するには、「収集中のデータ処理 (処理プラグイン)」をご参照ください。

    • テキストファイルの例

      テキストファイルを収集する場合、ログパスはコンテナー内の共有ボリュームのマウントパスです。次の表に、パラメーター設定の例を示します。

      構成エリア

      パラメーター

      グローバル設定

      構成名

      file

      入力設定

      Logtail デプロイモード

      テキストログ収集

      ファイルパス

      /var/log/nginx/**/*.log

      処理設定

      処理モード

      なし

      説明

      処理プラグインを追加するには、「収集中のデータ処理 (処理プラグイン)」をご参照ください。

  6. クエリと分析の設定を構成します。

    デフォルトでは、インデックスが構成されています。必要に応じてインデックスを再構成することもできます。詳細については、「インデックスを設定する」をご参照ください。

  7. 収集された ECI ログを表示します。

    上記の手順を完了すると、SLS は ECI ログの収集を開始します。次の図は、SLS Logstore 内の標準出力ログの例を示しています。

    Sidecar6