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

Simple Log Service:自己管理型クラスターから DaemonSet モードで stdout および stderr を収集する(旧バージョン)

最終更新日:Jun 10, 2025

Simple Log Service では、DaemonSet モードまたは Sidecar モードで Logtail をインストールし、Logtail を使用して Kubernetes クラスターから stdout および stderr を収集できます。モードの違いの詳細については、「Kubernetes クラスターからログを収集するために Logtail をインストールする」をご参照ください。このトピックでは、DaemonSet モードで Logtail をインストールし、Logtail を使用して自己管理型 Kubernetes クラスターから stdout および stderr を収集する方法について説明します。

前提条件

  • Simple Log Service がアクティブ化されていること。詳細については、「Simple Log Service をアクティブ化する」をご参照ください。

  • Kubernetes 1.6 以降のクラスターが利用可能なこと。

  • kubectl コマンドラインツールが Kubernetes クラスターにインストールされていること。詳細については、kubectl をご参照ください。

使用上の注意

ソリューションの概要

以下の手順を実行して、DaemonSet モードで Logtail をインストールし、Logtail を使用して自己管理型 Kubernetes クラスターから stdout および stderr を収集できます。

  1. Logtail コンポーネントをインストールする:Kubernetes クラスターに Logtail コンポーネントをインストールします。Logtail コンポーネントには、DaemonSet logtail-ds、ConfigMap alibaba-log-configuration、および Deployment alibaba-log-controller が含まれます。Logtail がインストールされると、Simple Log Service は Logtail 構成を Logtail に配信し、Logtail を使用して Kubernetes クラスターからデータを収集できます。

  2. Logtail 構成を作成する:Logtail 構成が作成されると、Logtail は Logtail 構成に基づいて増分データを収集し、収集したデータを処理して作成されたログストアにアップロードします。CRD - AliyunPipelineConfig または CRD - AliyunLogConfig を使用するか、Simple Log Service コンソールで Logtail 構成を作成できます。CRD - AliyunPipelineConfig をお勧めします。

  3. データをクエリおよび分析する:Logtail 構成が作成されると、Simple Log Service は収集されたデータを格納するログストアを自動的に作成します。ログストア内のデータを表示できます。

ステップ 1:Logtail をインストールする

重要
  • alibaba-log-controller コンポーネントは、Kubernetes 1.6 以降でのみ使用できます。

  • コマンドを実行するマシンに kubectl コマンドラインツールがインストールされていることを確認してください。

  1. Simple Log Service コンソール にログインします。 プロジェクトを作成します。詳細については、「プロジェクトを作成する」をご参照ください。

    名前が k8s-log- で始まるプロジェクトを作成することをお勧めします。例:k8s-log-${your_k8s_cluster_id}

  2. Kubernetes クラスターにログインし、次のコマンドを実行して Logtail と必要な依存コンポーネントをインストールします。

    1. インストールパッケージをダウンロードして解凍します。

      • 中国本土

        wget https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/0.5.3/alibaba-cloud-log-all.tgz; tar xvf alibaba-cloud-log-all.tgz; chmod 744 ./alibaba-cloud-log-all/k8s-custom-install.sh
      • 中国本土以外

        wget https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/0.5.3/alibaba-cloud-log-all.tgz; tar xvf alibaba-cloud-log-all.tgz; chmod 744 ./alibaba-cloud-log-all/k8s-custom-install.sh
    2. ./alibaba-cloud-log-all/values.yaml 構成ファイルを修正します。

      # ===================== 必須設定 =====================
      # プロジェクトの名前。
      SlsProjectName: 
      # プロジェクトが存在するリージョンの ID。
      Region: 
      # プロジェクトが属する Alibaba Cloud アカウントの ID。ID は二重引用符( "")で囲む必要があります。
      AliUid: "11**99"
      # Alibaba Cloud アカウントまたは Resource Access Management(RAM)ユーザーの AccessKey ID と AccessKey シークレット。RAM ユーザーは、AliyunLogFullAccess 権限を持っている必要があります。
      AccessKeyID: 
      AccessKeySercret: 
      # クラスターのカスタム ID。ID には、文字、数字、およびハイフン(-)のみを含めることができます。
      ClusterID: 
      # ==========================================================
      # 関連コンポーネントのメトリック収集を有効にするかどうかを指定します。有効な値:true および false。デフォルト値:true。
      SlsMonitoring: true
      # ネットワークタイプ。有効な値:インターネットおよびイントラネット。デフォルト値:インターネット。
      Net: Internet
      # クラスターのコンテナーランタイムが containerd かどうかを指定します。有効な値:true および false。デフォルト値:false。
      SLS_CONTAINERD_USED: true

      次の表は、上記のコマンドに含まれるパラメーターについて説明しています。ビジネス要件に基づいてパラメーターを構成できます。

      パラメーター

      説明

      SlsProjectName

      作成されたプロジェクトの名前。

      Region

      プロジェクトが存在するリージョンの ID。たとえば、中国(杭州)リージョンの ID は cn-hangzhou です。詳細については、「サポートされているリージョン」をご参照ください。

      AliUid

      プロジェクトが属する Alibaba Cloud アカウントの ID。ID は二重引用符( "")で囲む必要があります。例:AliUid: "11**99"。詳細については、「Simple Log Service プロジェクトが属する Alibaba Cloud アカウントの ID を取得する」をご参照ください。

      AccessKeyID

      プロジェクトが属する Alibaba Cloud アカウントの AccessKey ID。RAM ユーザーの AccessKey ペアを使用し、RAM ユーザーに AliyunLogFullAccess ポリシーをアタッチすることをお勧めします。詳細については、「RAM ユーザーを作成し、RAM ユーザーに Simple Log Service へのアクセスを承認する」をご参照ください。

      AccessKeySercret

      プロジェクトが属する Alibaba Cloud アカウントの AccessKey シークレット。RAM ユーザーの AccessKey ペアを使用し、RAM ユーザーに AliyunLogFullAccess ポリシーをアタッチすることをお勧めします。詳細については、「RAM ユーザーを作成し、RAM ユーザーに Simple Log Service へのアクセスを承認する」をご参照ください。

      ClusterID

      クラスターのカスタム ID。ID には、文字、数字、およびハイフン(-)のみを含めることができます。このパラメーターは、以下の操作の ${your_k8s_cluster_id} 変数に対応します。

      重要

      異なる Kubernetes クラスターに同じクラスター ID を指定しないでください。

      SlsMonitoring

      関連コンポーネントのメトリック収集を有効にするかどうかを指定します。有効な値:

      • true(デフォルト)

      • false

      Net

      ネットワークタイプ。有効な値:

      • インターネット(デフォルト)

      • イントラネット

      SLS_CONTAINERD_USED

      クラスターのコンテナーランタイムが containerd かどうかを指定します。有効な値:

      • true

      • false(デフォルト)

      重要

      コンテナーランタイムが containerd である自己管理型 Kubernetes クラスターのパラメーター設定を有効にしないと、Logtail がログを収集できない場合があります。

    3. Logtail と必要なコンポーネントをインストールします。

      bash k8s-custom-install.sh; kubectl apply -R -f result

次の表は、Logtail と必要なコンポーネントをインストールした後に自動的に作成される Simple Log Service リソースについて説明しています。

重要
  • 自己管理型 Kubernetes クラスターに Logtail と必要な依存コンポーネントをインストールすると、Logtail に privileged 権限が自動的に付与されます。これにより、他のポッドが削除されたときに発生する可能性のある container text file busy エラーを防ぎます。詳細については、Bug 1468249Bug 1441737、および Issue 34538 をご参照ください。

リソースタイプ

リソース名

機能

マシングループ

k8s-group-<YOUR_CLUSTER_ID>

ログ収集シナリオで使用される logtail-daemonset のマシングループ。

k8s-group-my-cluster-123

k8s-group-<YOUR_CLUSTER_ID>-statefulset

メトリック収集シナリオで使用される logtail-statefulset のマシングループ。

k8s-group-my-cluster-123-statefulset

k8s-group-<YOUR_CLUSTER_ID>-singleton

単一インスタンスの LoongCollector 構成を作成するために使用される単一インスタンスのマシングループ。

k8s-group-my-cluster-123-singleton

ログストア

config-operation-log

このログストアは、Logtail コンポーネントの alibaba-log-controller コンポーネントのログを格納するために使用されます。このログストアのコレクション構成を作成しないことをお勧めします。このログストアは削除できます。ログストアが削除されると、システムは alibaba-log-controller の操作ログを収集しなくなります。このログストアは、他のログストアと同じ方法で課金されます。詳細については、「従量課金制における課金対象項目」をご参照ください。

なし

ステップ 2:Logtail 構成を作成する

次の表は、Logtail 構成を作成するために使用できる方法について説明しています。1 つの方法のみを使用して Logtail 構成を管理することをお勧めします。

構成方法

構成の説明

シナリオ

CRD - AliyunPipelineConfig(推奨)

Kubernetes CRD である AliyunPipelineConfig CRD を使用して、Logtail 構成を管理できます。

この方法は、複雑な収集と処理、および自己管理型 Kubernetes クラスターの Logtail 構成と Logtail コンテナー間のバージョンの整合性が必要なシナリオに適しています。

説明

Logtail コンポーネントのバージョンは 0.5.1 以降である必要があります。Logtail の更新の詳細については、「Logtail を更新する」をご参照ください。

Simple Log Service コンソール

迅速なデプロイと構成に基づいて、GUI で Logtail 構成を管理できます。

この方法は、Logtail 構成を管理するために簡単な設定が必要なシナリオに適しています。この方法を使用して Logtail 構成を管理する場合、特定の高度な機能とカスタム設定は使用できません。

CRD - AliyunLogConfig

古いバージョンの CRD である AliyunLogConfig CRD を使用して、Logtail 構成を管理できます。

この方法は、古いバージョンの CRD を使用して Logtail 構成を管理できる既知のシナリオに適しています。

拡張性と安定性を向上させるために、AliyunLogConfig CRD を AliyunPipelineConfig CRD に徐々に置き換える必要があります。CRD - AliyunPipelineConfig メソッドと CRD - AliyunLogConfig メソッドの違いの詳細については、「CRD」をご参照ください。

CRD - AliyunPipelineConfig(推奨)

Logtail 構成を作成するには、AliyunPipelineConfig CRD からカスタムリソース(CR)を作成するだけです。CR が作成されると、Logtail 構成が有効になります。

重要

CR を作成して Logtail 構成を作成し、Logtail 構成を変更する場合、CR のみ変更できます。Simple Log Service コンソールで Logtail 構成を変更した場合、新しい設定は CR に同期されません。

  1. Kubernetes クラスターにログインします。

  2. example-k8s-file.yaml という名前のファイルを作成します。

    Logtail 構成ジェネレーター を使用してシナリオの YAML スクリプトを生成するか、提供されている例に基づいて手動で記述します。

    以下の YAML ファイルの例では、デフォルトの名前空間内で app: ^(.*test.*)$ というラベルが付いたポッドから標準出力を複数行テキストモードを使用してキャプチャし、k8s-log-test という名前のプロジェクト内に自動的に作成される k8s-file というログストアに転送します。必要に応じて YAML のパラメーターを調整します。

    1. projectSimple Log Service コンソール にログインし、インストールした Logtail によって作成されたプロジェクト名(通常は k8s-log-<YOUR_CLUSTER_ID> の形式、例: k8s-log-test)を確認します。

    2. IncludeK8sLabel:ターゲットポッドのラベルをフィルタリングするために使用されます。たとえば、app: ^(.*test.*)$ は、ラベルキーが app であり、値に test が含まれるポッドを収集することを示します。

      説明

      クラスター内の test を含む名前のすべてのポッドを収集するには、IncludeK8sLabel の代わりに K8sContainerRegex を使用し、ワイルドカード文字を使用して値を設定します(例: K8sContainerRegex: ^(.test.)$)。

    3. Endpoint および Region:例: ap-southeast-1.log.aliyuncs.com および ap-southeast-1

    YAML ファイルの config (サポートされている入力、出力、処理プラグインタイプ、コンテナフィルタリングメソッドなど)の詳細については、「PipelineConfig」をご参照ください。 YAML パラメーターの完全なリストについては、「CR パラメーター」をご参照ください。

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # ClusterAliyunPipelineConfig を作成します。
    kind: ClusterAliyunPipelineConfig
    metadata:
      # リソースの名前を指定します。名前は、現在の Kubernetes クラスター内で一意である必要があります。この名前は、作成される Logtail 構成の名前でもあります。
      name: example-k8s-file
    spec:
      # ターゲットプロジェクトを指定します。
      project:
        name: k8s-log-test
      # ログを格納するためのログストアを作成します。
      logstores:
        - name: k8s-stdout
      # Logtail 構成を定義します。
      config:
        # サンプルログ (オプション)
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        # 入力プラグインを定義します。
        inputs:
              # service_docker_stdout プラグインを使用して、コンテナー内のテキストログを収集します。
          - Type: service_docker_stdout
            Stdout: true
            Stderr: true
            # コンテナー情報のフィルター条件を構成します。複数のオプションは AND 条件です。
            # 収集対象のコンテナーを含むポッドが属する名前空間を指定します。正規表現マッチングをサポートします。
            K8sNamespaceRegex: "^(default)$"
            # コンテナーメタデータのプレビューを有効にします。
            CollectContainersFlag: true
            # Pod ラベル条件を満たすコンテナーを収集します。複数のエントリは OR 条件です。
            IncludeK8sLabel:
              app: ^(.*test.*)$
            # 複数行チャンク構成を設定します。単一行ログ収集の場合は無効な構成です。
            # 行頭の正規表現を構成します。
            BeginLineRegex: \d+-\d+-\d+.*
        # 出力プラグインを定義します。
        flushers:
          # flusher_sls プラグインを使用して、ログを指定されたログストアに送信します。
          - Type: flusher_sls
            # ログストアが存在することを確認します。
            Logstore: k8s-stdout
            # エンドポイントが有効であることを確認します。
            Endpoint: ap-southeast-1.log.aliyuncs.com
            Region: ap-southeast-1
            TelemetryType: logs
  3. kubectl apply -f example.yaml コマンドを実行します。example.yaml は、作成した YAML ファイルの名前に置き換えます。その後、Logtail によってコンテナーの stdout および stderr が Simple Log Service に収集されます。

CRD - AliyunLogConfig

Logtail 構成を作成するには、AliyunLogConfig CRD から CR を作成するだけです。CR が作成されると、Logtail 構成が有効になります。

重要

CR を作成して Logtail 構成を作成し、Logtail 構成を変更する場合、CR のみを変更できます。Simple Log Service コンソールで Logtail 構成を変更した場合、新しい設定は CR に同期されません。

  1. Kubernetes クラスタにログオンします。

  2. example-k8s-file.yaml という名前のファイルを作成します。

    この YAML スクリプトは、simple-stdout-example という Logtail 構成を確立します。複数行モードを使用して、app で始まる名前を持つクラスタ内のすべてのコンテナから標準出力を収集します。収集されたデータは、k8s-log-<your_cluster_id> という名前のプロジェクト内の k8s-stdout というログストアに送信されます。

    サポートされている入力、出力、処理プラグインタイプ、コンテナフィルタリング方法など、YAML ファイルの logtailConfig 項目の詳細については、「AliyunLogConfig の詳細」をご参照ください。YAML パラメーターの完全なリストについては、「CR パラメーター」をご参照ください。

    # 標準出力構成
    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # リソースの名前を指定します。名前は、現在の Kubernetes クラスタ内で一意である必要があります。
      name: simple-stdout-example
    spec:
      # ターゲットプロジェクト名を指定します(オプション、デフォルトは k8s-log-<your_cluster_id> です)
      # project: k8s-log-test
      # ログストアの名前を指定します。指定されたログストアが存在しない場合、Simple Log Service は自動的にログストアを作成します。
      logstore: k8s-stdout
      # Logtail コレクション構成を指定します。
      logtailConfig:
        # データソースのタイプを指定します。標準出力を収集するには、値を plugin に設定します。
        inputType: plugin
        # Logtail コレクション構成の名前を指定します。名前は、metadata.name で指定されたリソース名と同じである必要があります。
        configName: simple-stdout-example
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  # stdout と stderr のコレクションを指定します。
                  Stdout: true
                  Stderr: true
                  # 収集対象のコンテナを含むポッドが属する名前空間を指定します。正規表現マッチングをサポートします。
                  K8sNamespaceRegex: "^(default)$"
                  # 収集対象のコンテナの名前を指定します。正規表現マッチングをサポートします。
                  K8sContainerRegex: "^(app.*)$"
                  # 複数行チャンク構成を構成します。
                  # 行の先頭の正規表現を構成します。
                  BeginLineRegex: \d+-\d+-\d+.*
                  
  3. kubectl apply -f example.yaml コマンドを実行します。example.yaml を、作成した YAML ファイルの名前に置き換えます。その後、Logtail はコンテナの stdout と stderr を Simple Log Service に収集し始めます。

Simple Log Service コンソール

  1. ログサービス コンソール にログオンします。

  2. [プロジェクト] セクションで、Logtail コンポーネントのインストールに使用するプロジェクトをクリックします。例: k8s-log-<your_cluster_id>。表示されたページで、管理するログストアをクリックし、[Logtail 設定] をクリックします。[Logtail 設定] ページで、[Logtail 設定の追加] をクリックします。[クイックデータインポート] ダイアログボックスで、[K8S - Stdout And Stderr - Old Version] カードを見つけて [今すぐ統合] をクリックします。image

  3. 左側のナビゲーションペインで、[既存のマシン グループを使用]image をクリックします。

  4. データインポートウィザードの [マシン グループ設定] ステップで、シナリオ パラメーターを Kubernetes クラスターに設定し、デプロイメント方法パラメーターを ACK DaemonSet に設定し、k8s-group-${your_k8s_cluster_id} マシン グループを選択して > [アイコン] をクリックし、[ソース マシン グループ] セクションから [適用済みサーバー グループ] セクションにマシン グループを移動し、[次へ] をクリックします。

    image

  5. ローカル Git を使用して、WordPress のデプロイをカスタマイズすることもできます。

    グローバル構成セクションでパラメーターを構成する必要があります。詳細については、「Logtail 構成を作成する」をご参照ください。

    • [グローバル構成]

      [グローバル構成] セクションで、構成名パラメーターを構成します。

      image

  6. インデックスを作成し、データをプレビューします。デフォルトでは、Simple Log Service で全文インデックスが有効になっています。この場合、全文インデックスが作成されます。インデックスに基づいてログ内のすべてのフィールドを検索できます。また、収集したログに基づいて、フィールドのインデックスを手動で作成することもできます。あるいは、自動インデックス生成をクリックすることもできます。すると、Simple Log Service がフィールドのインデックスを生成します。フィールドインデックスに基づいて、データを正確に検索できます。これにより、インデックス作成のコストが削減され、検索効率が向上します。詳細については、「インデックスを作成する」を参照してください。image

ステップ 3: ログのクエリと分析

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

  2. [プロジェクト] リストで、対象のプロジェクトをクリックして詳細ページに移動します。

    image

  3. 対象のログストアを選択し、icon をクリックし、[検索と分析] を選択して、Kubernetes クラスタログの出力を表示します。

    image

コンテナ標準出力のデフォルトフィールド

各コンテナ標準出力には、次のデフォルトフィールドがあります。

フィールド名

説明

_time_

ログ収集時間。

_source_

ログソースタイプ。stdout または stderr。

_image_name_

イメージ名

_container_name_

コンテナ名

_pod_name_

ポッド名

_namespace_

ポッドが配置されている名前空間

_pod_uid_

ポッドの一意の識別子

参照資料