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

Container Service for Kubernetes:ACK クラスターからコンテナーログを収集する (DaemonSet ベースのログ収集)

最終更新日:Nov 09, 2025

Alibaba Cloud Container Service for Kubernetes (ACK) は Simple Log Service (SLS) と緊密に統合されています。この統合により、コンテナーログの収集と管理を簡素化するログ収集コンポーネントが提供されます。このトピックでは、ログ収集コンポーネントをインストールし、収集構成を作成する方法について説明します。これにより、ログを自動的に収集、クエリ、分析して、O&M 効率を向上させ、管理コストを削減できます。

シナリオ

ログ収集コンポーネントは、次の 2 つの方法でコンテナーログを収集します。

  • DaemonSet: このモードは、ログの分類が明確で、機能が比較的単純なクラスターに適しています。詳細については、このトピックをご参照ください。

  • Sidecar: このモードは、大規模なハイブリッドクラスターに適しています。詳細については、「Sidecar モードで Kubernetes コンテナーからテキストログを収集する」をご参照ください。

2 つのモードの違いの詳細については、「収集モード」をご参照ください。Simple Log Service の課金の詳細については、「課金の概要」をご参照ください。

インデックス

手順

アクションリンク

ステップ 1: ログ収集コンポーネントをインストールする

次のいずれかのログ収集コンポーネントをインストールします。

  • LoongCollector をインストールする (推奨)

    LoongCollector は SLS の新世代収集エージェントであり、Logtail のアップグレードバージョンです。
  • Logtail をインストールする

    Logtail コンポーネントは、Kubernetes ログを収集するために使用されるエージェントです。さまざまなログタイプをサポートし、標準コンテナーおよび Kubernetes クラスターからログデータを収集します。

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

収集要件に基づいて、テキストログまたは標準出力を選択します。

  • テキストログを収集する

    テキストログは、コンテナー内のプログラムによって生成され、指定されたディレクトリに保存されるログファイルです。この方法は、特定のディレクトリ内のログファイルの長期分析やトラブルシューティングなどのシナリオに適しています。
  • 標準出力を収集する

    標準出力 (stdout) は、コンテナー内の実行時にプログラムによって生成されるリアルタイムログを指します。この方法は、プログラムのデバッグや迅速な問題診断などのシナリオに適しています。

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

コンソールでログをクエリおよび分析します。

ステップ 1: ログ収集コンポーネントをインストールする

LoongCollector をインストールする (推奨)

LoongCollector ベースのデータ収集: LoongCollector は、Simple Log Service によって提供される新世代のログ収集エージェントです。LoongCollector は Logtail のアップグレードバージョンです。LoongCollector は、Application Real-Time Monitoring Service (ARMS) の特定の収集エージェントの機能 (Prometheus ベースのデータ収集や Extended Berkeley Packet Filter (eBPF) 技術ベースの非侵入型データ収集など) を統合することが期待されています。

既存の ACK クラスターに loongcollector コンポーネントをインストールする

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

  2. [クラスター] ページで、管理するクラスターをクリックします。左側のナビゲーションウィンドウで、[操作 > アドオン] を選択します。

  3. アドオンページの[ログとモニタリング]タブで、loongcollector コンポーネントを見つけ、[インストール]をクリックします。

    説明

    LoongCollector コンポーネントと logtail-ds コンポーネントは共存できません。logtail-ds コンポーネントがすでにクラスターにインストールされている場合は、「Logtail から LoongCollector へのアップグレード (サーバーシナリオ)」でアップグレードソリューションをご参照ください。

LoongCollector コンポーネントがインストールされると、Simple Log Service は自動的に k8s-log-${your_k8s_cluster_id} という名前のプロジェクトと、そのプロジェクト内のリソースを生成します。Simple Log Service コンソールにログインしてリソースを表示できます。次の表にリソースを示します。

リソースタイプ

リソース名

説明

マシン グループ

k8s-group-${your_k8s_cluster_id}

loongcollector-ds のマシングループで、ログ収集シナリオで使用されます。

k8s-group-my-cluster-123

k8s-group-${your_k8s_cluster_id}-cluster

loongcollector-cluster のマシングループで、メトリック収集シナリオで使用されます。

k8s-group-my-cluster-123-cluster

k8s-group-${your_k8s_cluster_id}-singleton

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

k8s-group-my-cluster-123-singleton

Logstore

config-operation-log

Logstore は、loongcollector-operator ログを収集および保存するために使用されます。

重要

config-operation-log Logstore は削除しないでください。

config-operation-log

Logtail をインストールする

Logtail ベースのデータ収集: Logtail は、Simple Log Service によって提供されるログ収集エージェントです。Logtail を使用して、Alibaba Cloud Elastic Compute Service (ECS) インスタンス、データセンターのサーバー、サードパーティのクラウドサービスプロバイダーのサーバーなど、複数のデータソースからログを収集できます。Logtail は、ログファイルに基づく非侵入型のログ収集をサポートしています。アプリケーションコードを変更する必要はなく、ログ収集はアプリケーションの操作に影響しません。

既存の ACK クラスターに Logtail コンポーネントをインストールする

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

  2. クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。

  3. [ログとモニタリング] タブで、logtail-ds コンポーネントを見つけて [インストール] をクリックします。

ACK クラスターを作成するときに Logtail コンポーネントをインストールする

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

  2. [クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。ウィザードの [コンポーネント構成] ステップで、[Log Service を有効にする] を選択します。

    このトピックでは、Simple Log Service に関連する設定のみを説明します。その他の設定の詳細については、「ACK マネージドクラスターの作成」をご参照ください。

    [Log Service を有効にする] を選択すると、Simple Log Service プロジェクトを作成するように求められます。次のいずれかの方法を使用してプロジェクトを作成できます。

    • [プロジェクトの選択]

      既存のプロジェクトを選択して、収集されたコンテナーログを管理できます。

      安装logtail组件

    • [プロジェクトの作成]

      Simple Log Service は、収集されたコンテナーログを管理するためのプロジェクトを自動的に作成します。ClusterID は、作成された Kubernetes クラスターの一意の識別子を示します。

      安装logtail组件

重要

ウィザードの [コンポーネント構成] ステップで、コントロールプレーンコンポーネントログパラメーターの [有効] がデフォルトで選択されています。[有効] を選択すると、システムは自動的に収集設定を構成し、クラスターのコントロールプレーンコンポーネントからログを収集し、収集されたログに対して従量課金の課金方法に基づいて課金されます。ビジネス要件に基づいて [有効] を選択するかどうかを決定できます。詳細については、「ACK マネージドクラスターのコントロールプレーンコンポーネントのログを収集する」をご参照ください。image

Logtail コンポーネントがインストールされると、Simple Log Service は自動的に k8s-log-<YOUR_CLUSTER_ID> という名前のプロジェクトと、そのプロジェクト内のリソースを生成します。Simple Log Service コンソールにログインしてリソースを表示できます。

リソースタイプ

リソース名

説明

マシングループ

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

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

k8s-group-my-cluster-123-singleton

Logstore

config-operation-log

Logstore は、alibaba-log-controller コンポーネントのログを保存するために使用されます。Logstore の Logtail 構成を作成しないことをお勧めします。Logstore は削除できます。Logstore が削除されると、システムは alibaba-log-controller コンポーネントの操作ログを収集しなくなります。Logstore は、通常の Logstore と同じ方法で課金されます。詳細については、「データ取り込み量に応じた課金モードの課金項目」をご参照ください。

なし

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

テキストログを収集する

次の 4 つの方法のいずれかを使用して収集構成を作成できます。ログ収集構成の管理には 1 つの方法のみを使用することをお勧めします。

構成方法

構成の説明

シナリオ

CRD - AliyunPipelineConfig (推奨)

Kubernetes CRD である AliyunPipelineConfig Custom Resource Definition (CRD) を使用して、LoongCollector 構成を管理できます。

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

CRD - AliyunLogConfig

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

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

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

Simple Log Service コンソール

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

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

環境変数

環境変数を使用して、LoongCollector 構成を効率的に管理するために使用されるパラメーターを構成できます。

環境変数は、簡単な設定を構成するためにのみ使用できます。複雑な処理ロジックはサポートされていません。単一行のテキストログのみがサポートされています。環境変数を使用して、次の要件を満たすことができる LoongCollector 構成を作成できます。

  • 複数のアプリケーションから同じ Logstore にデータを収集する。

  • 複数のアプリケーションから異なるプロジェクトにデータを収集する。

説明

(推奨) CRD-AliyunPipelineConfig メソッドを使用する場合、logtail-ds コンポーネントのバージョンは 1.8.10 以降である必要があります。アップグレード方法の詳細については、「Logtail を最新バージョンにアップグレードする」をご参照ください。LoongCollector コンポーネントにはバージョン制限はありません。

CRD - AliyunPipelineConfig (推奨)

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

重要

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

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

  2. クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > [カスタムリソース] を選択します。

  3. [カスタムリソース] ページで、[CRD] タブをクリックし、[YAML から作成] をクリックします。

  4. 必要に応じて次の YAML の例のパラメーターを変更し、テンプレートにコピーして貼り付け、[作成] をクリックします。

    YAML ファイルは、app: ^(.*test.*)$ のラベルが付いた Pod の /data/logs/app_1 ディレクトリにある test.LOG ファイルから、k8s-log-<YOUR_CLUSTER_ID> プロジェクトで自動的に作成された k8s-file Logstore にログを収集するために使用されます。必要に応じて、YAML ファイルの次のパラメーターを変更します。

    • project: 例: k8s-log-<YOUR_CLUSTER_ID>

      Simple Log Service コンソールにログインします。LoongCollector のインストール後に生成されたプロジェクトの名前を確認します。

    • IncludeK8sLabel: Pod をフィルタリングするために使用されるラベル。例: app: ^(.*test.*)$。この例では、ラベルキーが app でラベル値に test が含まれる Pod が収集されます。

      説明

      クラスター内の名前に test を含むすべての Pod を収集する場合は、IncludeK8sLabel パラメーターを K8sContainerRegex パラメーターに置き換え、ワイルドカードを使用して K8sContainerRegex パラメーターの値を指定できます。例: K8sContainerRegex: ^(. test.) $

    • FilePaths: 例: /data/logs/app_1/**/test.LOG。詳細については、「コンテナーのファイルパスマッピング」をご参照ください。

    • EndpointRegion (リージョン ID): Endpoint パラメーターの例: cn-hangzhou.log.aliyuncs.comRegion パラメーターの例: cn-hangzhou

    config パラメーターの値には、入力、出力、処理プラグインの種類、コンテナーのフィルタリング方法が含まれます。詳細については、「PipelineConfig」をご参照ください。YAML ファイルの完全なパラメーターの詳細については、「CR パラメーター」をご参照ください。

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    kind: ClusterAliyunPipelineConfig
    metadata:
      # リソースの名前を指定します。名前は現在の Kubernetes クラスター内で一意である必要があります。名前は作成された LoongCollector 構成の名前と同じです。リソース名がすでに存在する場合、名前は有効になりません。
      name: example-k8s-file
    spec:
      # プロジェクトの名前を指定します。
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      logstores:
        # k8s-file という名前の Logstore を作成します。
        - name: k8s-file
      # LoongCollector 構成を作成します。
      config:
        # サンプルログを入力します。このパラメーターは空のままにすることができます。
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        # 入力プラグインを指定します。
        inputs:
          # input_file プラグインを使用して、コンテナーから複数行のテキストログを収集します。
          - Type: input_file
            # コンテナー内のファイルパスを指定します。
            FilePaths:
              - /data/logs/app_1/**/test.LOG
            # コンテナー検出機能を有効にします。
            EnableContainerDiscovery: true
            # コンテナーをフィルターする条件を追加します。複数の条件は論理 AND を使用して評価されます。
            CollectingContainersMeta: true
            ContainerFilters:
              # 必要なコンテナーが属する Pod の名前空間を指定します。正規表現のマッチングがサポートされています。
              K8sNamespaceRegex: default
              # 必要なコンテナーの名前を指定します。正規表現のマッチングがサポートされています。
              IncludeK8sLabel:
                app: ^(.*app.*)$
            # 複数行のログ収集を有効にします。単一行のログを収集する場合は、このパラメーターを削除してください。
            Multiline:
              # 正規表現に基づいてログの最初の行の先頭に一致するカスタムモードを指定します。
              Mode: custom
              # ログの最初の行の先頭に一致させるために使用される正規表現を指定します。
              StartPattern: '\d+-\d+-\d+\s\d+:\d+:\d+'
        # 処理プラグインを指定します。
        processors:
          # processor_parse_regex_native プラグインを使用して、指定された正規表現に基づいてログを解析します。
          - Type: processor_parse_regex_native
            # 元のフィールドの名前を指定します。
            SourceKey: content
            # 解析に使用される正規表現を指定します。キャプチャグループを使用してフィールドを抽出します。
            Regex: (\d+-\d+-\d+\s\S+)(.*)
            # 抽出するフィールドを指定します。
            Keys: ["time", "detail"]
        # 出力プラグインを指定します。
        flushers:
          # flusher_sls プラグインを使用して、特定の Logstore にログを配信します。
          - Type: flusher_sls
            # Logstore が存在することを確認してください。
            Logstore: k8s-file
            # エンドポイントが有効であることを確認してください。
            Endpoint: cn-beijing.log.aliyuncs.com
            Region: cn-beijing
            TelemetryType: logs

CRD - AliyunLogConfig

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

重要

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

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

  2. クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > [カスタムリソース] を選択します。

  3. [カスタムリソース] ページで、[CRD] タブをクリックし、[YAML から作成] をクリックします。

  4. 必要に応じて次の YAML の例のパラメーターを変更し、テンプレートにコピーして貼り付け、[作成] をクリックします。

    YAML ファイルは、example-k8s-file という名前の LoongCollector 構成を作成するために使用されます。この構成は、クラスター内の名前が app で始まるすべてのコンテナーの /data/logs/app_1 パスから test.LOG の内容を簡易モードで収集します。収集されたデータは、k8s-log-<YOUR_CLUSTER_ID> プロジェクトで自動的に作成された k8s-file Logstore に送信されます。

    必要に応じて、例のログファイルパスを変更します。詳細については、「コンテナーのファイルパスマッピング」をご参照ください。

    • logPath: ログファイルパス。例: /data/logs/app_1

    • filePattern: ログを収集するファイルの名前。例: test.LOG

    Config パラメーターは、入力、出力、処理プラグインの種類、コンテナーのフィルタリング方法など、LoongCollector の詳細を指定します。詳細については、「AliyunLogConfigDetail」をご参照ください。YAML ファイルの完全なパラメーターの詳細については、「CR パラメーター」をご参照ください。

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # リソースの名前を指定します。名前は現在の Kubernetes クラスター内で一意である必要があります。
      name: example-k8s-file
      # リソースが属する名前空間を指定します。
      namespace: kube-system
    spec:
      # プロジェクトの名前を指定します。このパラメーターを空のままにすると、k8s-log-<your_cluster_id> という名前のプロジェクトが使用されます。
      # project: k8s-log-test
      # Logstore の名前を指定します。指定された Logstore が存在しない場合、Simple Log Service は自動的に Logstore を作成します。
      logstore: k8s-file
      # LoongCollector 構成を作成します。
      logtailConfig:
        # データソースのタイプを指定します。テキストログを収集する場合は、値を file に設定します。
        inputType: file
        # LoongCollector 構成の名前を指定します。名前は metadata.name で指定されたリソース名と同じである必要があります。
        configName: example-k8s-file
        inputDetail:
          # LoongCollector が簡易モードでテキストログを収集できるようにする設定を指定します。
          logType: common_reg_log
          # ログファイルのパスを指定します。
          logPath: /data/logs/app_1
          # ログファイル名を指定します。ログファイル名を指定するときに、アスタリスク (*) や疑問符 (?) などのワイルドカード文字を使用できます。例: log_*.log。
          filePattern: test.LOG
          # コンテナーからテキストログを収集する場合は、値を true に設定します。
          dockerFile: true
          # 複数行のログ収集を有効にします。単一行のログを収集する場合は、このパラメーターを削除してください。
          # ログの最初の行の先頭に一致する正規表現を指定します。
          logBeginRegex: \d+-\d+-\d+.*
          # コンテナーをフィルターする条件を指定します。
          advanced:
            k8s:
              K8sPodRegex: '^(app.*)$'

Simple Log Service コンソール

説明

この方法は、Kubernetes クラスターにログインせずに LoongCollector 構成を管理するために簡単な設定が必要なシナリオに適しています。この方法を使用して LoongCollector 構成をバッチ作成することはできません。

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

  2. [プロジェクト] セクションで、LoongCollector コンポーネントをインストールするために使用するプロジェクトをクリックします。例: k8s-log-<YOUR_CLUSTER_ID>。表示されるページで、目的の Logstore の > アイコンをクリックし、[Logtail 構成] をクリックします。[Logtail 構成] ページで、[Logtail 構成の追加] をクリックします。[クイックデータインポート] ダイアログボックスで、[Kubernetes - ファイル] カードを見つけて [今すぐ統合] をクリックします。image

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

  4. LoongCollector 構成を作成します。[データインポート] ウィザードの [Logtail 構成] ステップで、必要なパラメーターを構成し、[次へ] をクリックします。LoongCollector 構成の作成には約 1 分かかります。次のリストに、主なパラメーター設定を示します。詳細については、「Logtail 構成の作成」をご参照ください。

    • [グローバル構成]

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

      image

    • [入力構成]

      • [Logtail デプロイモード]: LoongCollector のデプロイモード。[Daemonset] を選択します。

      • [ファイルパスタイプ]: ログを収集するために使用するファイルパスのタイプ。有効な値: [コンテナー内のパス] と [ホストパス]。hostPath ボリュームがコンテナーにマウントされており、コンテナーホスト上のマップされたファイルパスに基づいてファイルからログを収集する場合は、このパラメーターを [ホストパス] に設定します。その他のシナリオでは、このパラメーターを [コンテナー内のパス] に設定します。

      • [ファイルパス]: 収集するログを保存するディレクトリ。ファイルパスはスラッシュ (/) で始まる必要があります。この例では、[ファイルパス] パラメーターを /data/wwwlogs/main/**/*.Log に設定します。これは、/data/wwwlogs/main ディレクトリの .Log で終わるファイルからログが収集されることを示します。[最大ディレクトリ監視深度] パラメーターを構成して、監視するサブディレクトリの最大レベル数を指定できます。サブディレクトリは、指定したログファイルディレクトリにあります。このパラメーターは、[ファイルパス] パラメーターの値で ** ワイルドカード文字が一致できるサブディレクトリのレベルを指定します。値 0 は、指定されたログファイルディレクトリのみが監視されることを指定します。image

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

環境変数

説明

この方法は、単一行のテキストログのみをサポートします。複数行のテキストログや他の形式のログを収集する場合は、上記の方法を使用してください。

  1. アプリケーションを作成し、Simple Log Service を構成します。

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

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

    3. [デプロイメント] ページで、[イメージから作成] をクリックします。

    4. [アプリケーションの基本情報] タブで、[アプリケーション名] を設定し、[次へ] をクリックし、[コンテナー構成] ページでイメージ名を設定します。

      次のセクションでは、Simple Log Service に関連する設定のみを説明します。その他の設定の詳細については、「ステートレスワークロード (Deployment) の作成」をご参照ください。

    5. [ログ] セクションで、ログ関連の情報を構成します。

      1. Logtail 構成を作成します。

        [収集構成] をクリックして Logtail 構成を作成します。各 Logtail 構成は、[Logstore][コンテナー内のログパス] パラメーターで構成されます。

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

          説明

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

        • コンテナー内のログパス: ログを収集するパス。/usr/local/tomcat/logs/catalina.*.log の値は、Logtail が Tomcat アプリケーションからテキストログを収集することを示します。image

          デフォルトでは、各 Logstore は、簡易モードで行ごとにログを収集するために使用できる Logtail 構成に対応しています。

      2. カスタムタグを作成します。

        [カスタムタグ] をクリックしてカスタムタグを作成します。各カスタムタグはキーと値のペアであり、収集されたログに追加されます。カスタムタグを使用してコンテナーログを識別できます。たとえば、[タグ値] パラメーターにバージョン番号を指定します。image

    YAML テンプレートを使用して Simple Log Service を構成する
    1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

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

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

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

      YAML テンプレートの構文は Kubernetes の構文と同じです。ただし、コンテナーの収集構成を指定するには、env を使用して [収集構成][カスタムタグ] をコンテナーに追加する必要があります。また、収集構成に基づいて、対応する volumeMountsvolumes を作成する必要があります。次のコードは例です。

      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-varlog
            value: /var/log/*.log
          - name: aliyun_logs_mytag1_tags
            value: tag1=v1
          # ボリュームマウントを構成する
          volumeMounts:
          - name: volumn-sls-mydemo
            mountPath: /var/log
          # Pod が繰り返し再起動される場合は、Pod の起動パラメーターに sleep コマンドを追加できます。
          command: ["sh", "-c"]  # シェルでコマンドを実行します。
          args: ["sleep 3600"]   # Pod を 3,600 秒 (1 時間) スリープさせます。
        volumes:
        - name: volumn-sls-mydemo
          emptyDir: {}
      1. 環境変数を使用して [収集構成][カスタムタグ] を作成します。構成に関連するすべての環境変数は、プレフィックスとして aliyun_logs_ を使用します。

        • 次の形式で収集構成を作成します。

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

          この例では、aliyun_logs_{key} 形式で収集構成が作成されます。{key} の値は log-varlog です。

          • aliyun_logs_log-varlog: この環境変数は、コンテナーから `/var/log/*.log` ファイルの内容を収集し、その内容を Logstore という名前の log-varlog に保存する構成を作成します。対応する Simple Log Service 収集構成の名前も log-varlog です。目的は、コンテナーから `/var/log/*.log` ファイルの内容を log-varlog Logstore に収集することです。

        • [カスタムタグ] を次の形式で作成します。

          - name: aliyun_logs_mytag1_tags
            value: tag1=v1                       

          タグが追加されると、タグはコンテナーから収集されたログデータに自動的に追加されます。mytag1アンダースコア (_) を含まない名前 です。

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

        この例では、収集構成に /var/log/*.log の収集が追加されています。したがって、/var/log に対応する volumeMounts が追加されます。

    5. YAML テンプレートを完成させたら、[作成] をクリックします。Kubernetes クラスターが構成を実行します。

  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} は LoongCollector 構成の名前を指定します。構成名は 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 プロジェクトを指定します。デフォルトのプロジェクトは、LoongCollector のインストール後に生成されるプロジェクトです。

    - name: aliyun_logs_catalina_project
    
      value: my-k8s-project

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

    aliyun_logs_{key}_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

    オプション。変数は、アプリケーションがデプロイされているマシングループを指定します。デフォルトのマシングループは、LoongCollector がデプロイされているマシングループです。この変数の使用方法の詳細については、「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 のインデックストラフィック料金は、標準 Logstore の約半分です。クエリ Logstore は SQL 分析をサポートしていません。クエリ Logstore は、データ量が大きい、ログの保持期間が長い、またはログ分析が不要なシナリオに適しています。ログが数週間または数か月間保存される場合、ログの保持期間は長いと見なされます。

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

    N/A。

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

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

      {key} アプリケーション 1 の は 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

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

標準出力を収集する

次の 4 つの方法のいずれかを使用して収集構成を作成できます。ログ収集構成の管理には 1 つの方法のみを使用することをお勧めします。

構成方法

構成の説明

シナリオ

CRD - AliyunPipelineConfig (推奨)

Kubernetes CRD である AliyunPipelineConfig Custom Resource Definition (CRD) を使用して、LoongCollector 構成を管理できます。

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

CRD - AliyunLogConfig

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

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

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

Simple Log Service コンソール

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

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

環境変数

環境変数を使用して、LoongCollector 構成を効率的に管理するために使用されるパラメーターを構成できます。

環境変数は、簡単な設定を構成するためにのみ使用できます。複雑な処理ロジックはサポートされていません。単一行のテキストログのみがサポートされています。環境変数を使用して、次の要件を満たすことができる LoongCollector 構成を作成できます。

  • 複数のアプリケーションから同じ Logstore にデータを収集する。

  • 複数のアプリケーションから異なるプロジェクトにデータを収集する。

説明

(推奨) CRD-AliyunPipelineConfig メソッドを使用する場合、logtail-ds コンポーネントのバージョンは 1.8.10 以降である必要があります。アップグレード方法の詳細については、「Logtail を最新バージョンにアップグレードする」をご参照ください。LoongCollector コンポーネントにはバージョン制限はありません。

Crd-AliyunPipelineConfig (推奨)

Logtail 構成を作成するには、AliyunPipelineConfig カスタムリソースを作成するだけで、自動的に有効になります。

重要

カスタムリソースを介して作成された構成の場合、変更は対応するカスタムリソースを更新することによって行う必要があります。Simple Log Service コンソールで行われた変更は、カスタムリソースに同期されません。

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

  2. クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > [カスタムリソース] を選択します。

  3. [カスタムリソース] ページで、[CRD] タブをクリックし、[YAML から作成] をクリックします。

  4. 必要に応じて次の YAML の例のパラメーターを変更し、テンプレートにコピーして貼り付け、[作成] をクリックします。

    説明

    Logtail 構成ジェネレーターを使用して、ターゲットシナリオの YAML スクリプトを作成できます。このツールは、構成を迅速に完了し、手動操作を削減するのに役立ちます。

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

    • project: Simple Log Service コンソールにログインし、インストールした Logtail によって作成されたプロジェクト名を特定します。通常は k8s-log-<YOUR_CLUSTER_ID> の形式です。

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

    • EndpointRegion: たとえば、ap-southeast-1.log.aliyuncs.comap-southeast-1 です。

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

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # ClusterAliyunPipelineConfig を作成します。
    kind: ClusterAliyunPipelineConfig
    metadata:
      # リソースの名前を指定します。名前は現在の Kubernetes クラスター内で一意である必要があります。この名前は、作成される Logtail 構成の名前でもあります。
      name: example-k8s-stdout
    spec:
      # ターゲットプロジェクトを指定します。
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      # ログを保存するための Logstore を作成します。
      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」関係にあります。
            # 収集対象のコンテナーを含む Pod が属する名前空間を指定します。正規表現のマッチングをサポートします。
            K8sNamespaceRegex: "^(default)$"
            # コンテナーメタデータのプレビューを有効にします。
            CollectContainersFlag: true
            # Pod ラベル条件を満たすコンテナーを収集します。複数のエントリは「or」関係にあります。
            IncludeK8sLabel:
              app: ^(.*test.*)$
            # 複数行のチャンク構成を構成します。単一行のログ収集には無効な構成です。
            # 行の先頭の正規表現を構成します。
            BeginLineRegex: \d+-\d+-\d+.*
        # 出力プラグインを定義します
        flushers:
          # flusher_sls プラグインを使用して、指定された Logstore にログを送信します。
          - Type: flusher_sls
            # Logstore が存在することを確認してください。
            Logstore: k8s-stdout
            # エンドポイントが有効であることを確認してください。
            Endpoint: ap-southeast-1.log.aliyuncs.com
            Region: ap-southeast-1
            TelemetryType: logs

CRD-AliyunLogConfig

Logtail 構成を作成するには、AliyunLogConfig カスタムリソースを作成するだけで、自動的に有効になります。

重要

カスタムリソースを介して作成された構成の場合、変更は対応するカスタムリソースを更新することによって行う必要があります。Simple Log Service コンソールで行われた変更は、カスタムリソースに同期されません。

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

  2. クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > [カスタムリソース] を選択します。

  3. [カスタムリソース] ページで、[CRD] タブをクリックし、[YAML から作成] をクリックします。

  4. 必要に応じて次の YAML の例のパラメーターを変更し、テンプレートにコピーして貼り付け、[作成] をクリックします。

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

    YAML ファイルの logtailConfig 項目の詳細 (サポートされている入力、出力、処理プラグインの種類、コンテナーのフィルタリング方法など) については、「AliyunLogConfigDetail」をご参照ください。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
      # Logstore の名前を指定します。指定された Logstore が存在しない場合、Simple Log Service は自動的に Logstore を作成します。
      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
                  # 収集対象のコンテナーを含む Pod が属する名前空間を指定します。正規表現のマッチングをサポートします。
                  K8sNamespaceRegex: "^(default)$"
                  # 収集対象のコンテナーの名前を指定します。正規表現のマッチングをサポートします。
                  K8sContainerRegex: "^(app.*)$"
                  # 複数行のチャンク構成を構成します。
                  # 行の先頭の正規表現を構成します。
                  BeginLineRegex: \d+-\d+-\d+.*
                  

Simple Log Service コンソール

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

  2. リストからプロジェクト (例: k8s-log-<YOUR_CLUSTER_ID>) を選択します。プロジェクトページで、ターゲット Logstore の [Logtail 構成] をクリックし、[Logtail 構成の追加] をクリックし、[K8s - Stdout および Stderr - 旧バージョン] の下にある [今すぐ統合] をクリックします。image

  3. ACK クラスターにはすでに Logtail がインストールされているため、[既存のマシングループを使用] を選択します。image

  4. [マシングループ構成] ページで、Kubernetes クラスターシナリオの ACK Daemonset メソッドの下にある k8s-group-${your_k8s_cluster_id} マシングループを選択し、適用されたマシングループに追加してから、[次へ] をクリックします。image

  5. Logtail 構成を作成し、以下で説明するように必要な構成を入力して、[次へ] をクリックします。構成が有効になるまで約 1 分かかります。

    このセクションでは、必要な構成のみを扱います。完全なリストについては、「グローバル構成」をご参照ください。

    • [グローバル構成]

      [グローバル構成] で構成名を入力します。

      image

  6. インデックスを作成してデータをプレビューします。デフォルトでは、Simple Log Service はフルテキストインデックスを有効にし、クエリのためにログ内のすべてのフィールドをインデックス化します。収集されたログに基づいて手動でフィールドインデックスを作成することも、[インデックスの自動生成] をクリックすることもできます。これにより、特定のフィールドでの用語クエリ用のフィールドインデックスが生成され、インデックスコストが削減され、クエリ効率が向上します。image

環境変数

  1. アプリケーション作成時に Simple Log Service を構成します。

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

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

    3. [デプロイメント] ページで、名前空間を選択し、[イメージから作成] をクリックします。

    4. [基本情報] ページで、アプリケーション名を設定し、[次へ] をクリックして [コンテナー] ページに入ります。

      このセクションでは、Simple Log Service に関連する構成を紹介します。その他のアプリケーション構成の詳細については、「ステートレスワークロード (Deployment) の作成」をご参照ください。

    5. [ログ] セクションで、ログ関連の情報を構成します。

      1. [収集構成] を設定します。

        [収集構成] をクリックして、新しい収集構成を作成します。各構成は 2 つの項目で構成されます。

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

          説明

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

        • [コンテナー内のログパス (stdout に設定可能)]: stdout を指定して、コンテナーから標準出力とエラー出力を収集します。

          Collection Configuration

          各収集構成は自動的に Logstore 構成として作成され、ログはデフォルトで簡易モード (行ごと) で収集されます。

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

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

        Custom tag

    6. すべての設定を構成したら、[次へ] をクリックします。後続の手順については、「ステートレスワークロード (Deployment) の作成」をご参照ください。

    YAML テンプレート
    1. Container Service 管理コンソールまたはにログインし、左側のナビゲーションウィンドウから [クラスター] を選択します。

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

    3. [デプロイメント] ページで、名前空間を選択し、[YAML から作成] をクリックします。

    4. YAML ファイルを構成します。

      YAML テンプレートの構文は Kubernetes と一致しています。コンテナーの収集構成を指定するには、env を使用して [収集構成][カスタムタグ] をコンテナーに追加し、収集構成に基づいて対応する volumeMountsvolumes を作成します。以下は簡単な Pod の例です。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        annotations:
          deployment.kubernetes.io/revision: '1'
        labels:
          app: deployment-stdout
          cluster_label: CLUSTER-LABEL-A
        name: deployment-stdout
        namespace: default
      spec:
        progressDeadlineSeconds: 600
        replicas: 1
        revisionHistoryLimit: 10
        selector:
          matchLabels:
            app: deployment-stdout
        strategy:
          rollingUpdate:
            maxSurge: 25%
            maxUnavailable: 25%
          type: RollingUpdate
        template:
          metadata:
            labels:
              app: deployment-stdout
              cluster_label: CLUSTER-LABEL-A
          spec:
            containers:
              - args:
                  - >-
                    while true; do date '+%Y-%m-%d %H:%M:%S'; echo 1; echo 2; echo 3;
                    echo 4; echo 5; echo 6; echo 7; echo 8; echo 9; 
                    sleep 10; done
                command:
                  - /bin/sh
                  - '-c'
                  - '--'
                env:
                  - name: cluster_id
                    value: CLUSTER-A
                  - name: aliyun_logs_log-stdout
                    value: stdout
                image: 'mirrors-ssl.aliyuncs.com/busybox:latest'
                imagePullPolicy: IfNotPresent
                name: timestamp-test
                resources: {}
                terminationMessagePath: /dev/termination-log
                terminationMessagePolicy: File
            dnsPolicy: ClusterFirst
            restartPolicy: Always
            schedulerName: default-scheduler
            securityContext: {}
            terminationGracePeriodSeconds: 30
      1. 環境変数を使用して [収集構成][カスタムタグ] を作成します。関連するすべての環境変数は、プレフィックス aliyun_logs_ で始まります。

        • 収集構成を作成するためのルールは次のとおりです。

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

          この例では、aliyun_logs_{key} の形式で収集構成を作成します。ここで、{key}log-varlog です。

          • aliyun_logs_log-varlog: この変数は、log-varlog という名前の logstore の作成を示します。ログ収集パスは /var/log/*.log に設定され、対応する Simple Log Service 収集構成名も log-varlog です。目標は、コンテナーの /var/log/*.log ファイルの内容を log-varlog Logstore に収集することです。

        • [カスタムタグの作成] のルールは次のとおりです。

          - name: aliyun_logs_mytag1_tags
            value: tag1=v1                       

          タグが構成されると、対応するフィールドがコンテナーから収集されたログデータに自動的に追加されます。mytag1 は、「_」を含まない任意の名前でなければなりません。

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

        この例では、収集構成に /var/log/*.log の収集が追加されているため、/var/log に対応する volumeMounts が追加されます。

    5. YAML を完成させたら、[作成] をクリックして、構成を Kubernetes クラスターに送信して実行します。

  2. 環境変数の高度なパラメーターを構成します。

    環境変数は、ログ収集のためのさまざまな構成パラメーターをサポートしています。必要に応じて高度なパラメーターを設定します。

    重要

    環境変数によるログ収集の構成は、エッジコンピューティングシナリオには適していません。

    フィールド

    説明

    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

    aliyun_logs_{key}_tags

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

    - name: aliyun_logs_catalina_tags
    
      value: app=catalina

    なし。

    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 を指定します。この環境変数が存在しない場合、Logstore は {key} と同じになります。

    - name: aliyun_logs_catalina_logstore
    
      value: my-logstore

    なし。

    aliyun_logs_{key}_shard

    オプション。値は Logstore 作成時のシャード数を指定します。有効な値: 1 から 10。この環境変数が存在しない場合、値は 2 です。

    説明

    Logstore がすでに存在する場合、このパラメーターは効果がありません。

    - name: aliyun_logs_catalina_shard
    
      value: '4'

    なし。

    aliyun_logs_{key}_ttl

    オプション。値はログの保持期間を指定します。有効な値: 1 から 3650。

    • 値が 3650 の場合、ログの保持期間は永続に設定されます。

    • この環境変数が存在しない場合、デフォルトのログ保持期間は 90 日です。

    説明

    Logstore がすでに存在する場合、このパラメーターは効果がありません。

    - name: aliyun_logs_catalina_ttl
    
      value: '3650'

    なし。

    aliyun_logs_{key}_machinegroup

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

    - name: aliyun_logs_catalina_machinegroup
    
      value: my-machine-group

    なし。

    aliyun_logs_{key}_logstoremode

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

    説明

    Logstore がすでに存在する場合、このパラメーターは効果がありません。

    • standard: Simple Log Service のワンストップデータ分析機能をサポートします。リアルタイムモニタリング、インタラクティブ分析、完全な可観測性システムの構築に適しています。

    • query: 高性能クエリをサポートします。インデックストラフィックコストは standard の約半分ですが、SQL 分析はサポートしていません。大量のデータ、長い保存期間 (週単位または月単位)、ログ分析なしのシナリオに適しています。

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

    このパラメーターには、logtail-ds イメージバージョンが >=1.3.1 である必要があります。

    • カスタマイズ要件 1: 複数のアプリケーションから同じ Logstore にデータを収集する

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

      この例では、アプリケーション 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} という名前のカスタム ID を持つマシングループを作成します。ここで、{cluster-id} はクラスター ID です。マシングループ名はカスタマイズ可能です。

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

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

        アプリケーション 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 の環境変数は次のとおりです。

        # アプリケーション 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. Simple Log Service コンソールにログインします。

  2. [プロジェクト] セクションで、詳細ページに移動するプロジェクトをクリックします。

    image

  3. 左側のナビゲーションウィンドウで、目的の Logstore の 图标 アイコンをクリックします。ドロップダウンリストで、[検索と分析] を選択して、Kubernetes クラスターから収集されたログを表示します。

    image

デフォルトのログフィールド

テキストログ

標準出力

次の表に、Kubernetes クラスター内の各ログについてデフォルトでアップロードされるフィールドを示します。

フィールド

説明

_time_

ログが収集された時刻。

_source_

ログソースのタイプ。有効な値: stdout および stderr。

_image_name_

イメージの名前。

_container_name_

コンテナーの名前。

_pod_name_

Pod の名前。

_namespace_

Pod の名前空間。

_pod_uid_

Pod の一意の識別子。

参考