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

Simple Log Service:サイドカーモードで Kubernetes コンテナからテキストログを収集する

最終更新日:Mar 08, 2025

ポッド内のすべてのコンテナからログを収集するために別の Logtail プロセスを使用する場合、サイドカーモードで Kubernetes クラスタに Logtail をインストールできます。 このトピックでは、サイドカーモードでのコンテナテキストログの収集の実装、制限、前提条件、および手順について説明します。

実装

サイドカーモード

  • サイドカーモードでは、各ポッドは Logtail コンテナを実行します。 Logtail を使用して、ポッド内のすべてのコンテナからログを収集できます。 各ポッドからのログ収集は分離されています。

  • Logtail がポッド内の他のコンテナからログを収集できるようにするには、Logtail コンテナとアプリケーションコンテナが同じボリュームを共有していることを確認します。 サイドカーモードでコンテナログを収集する方法の詳細については、「ロギングエージェントを使用したサイドカーコンテナ」および「複数コンテナを持つポッド」をご参照ください。 ボリュームの詳細については、「ストレージの基本」をご参照ください。

前提条件

  • Logtail がインストールされているサーバーでは、アウトバウンドトラフィック用にポート 80(HTTP)と 443(HTTPS)が有効になっています。 サーバーが Elastic Computing Service(ECS)インスタンスである場合は、関連するセキュリティグループルールを再構成してポートを有効にすることができます。 セキュリティグループルールを構成する方法の詳細については、「セキュリティグループルールの追加」をご参照ください。

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

使用上の注意

  • ログは、ログを収集するコンテナで継続的に生成されます。 Logtail は増分ログのみを収集します。 Logtail 構成が配信され、サーバーに適用された後、サーバー上のログファイルが更新されない場合、Logtail はそのファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。

  • ログを収集するファイルは、必要な Logtail コンテナにマウントされているボリュームに保存されます。

手順 1:Logtail コンテナをビジネスポッドに挿入する

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

  2. YAML ファイルを作成します。 次のコマンドでは、sidecar.yaml はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。

    vim sidecar.yaml
  3. YAML ファイルに次のスクリプトを入力し、ビジネス要件に基づいてパラメータを構成します。

    警告

    次の YAML テンプレート では、${} 形式のすべてのプレースホルダーを実際の値に置き換えます。 その他のパラメータは変更または削除しないでください。

    YAML テンプレート

    apiVersion: batch/v1
    kind: Job
    metadata:
      # ジョブメタデータ(名前、名前空間など)を追加します。
      name: ${job_name}
      namespace: ${namespace}
    spec:
      template:
        spec:
          restartPolicy: Never
          containers:
            # アプリケーションコンテナの設定を構成します。
            - name: ${main_container_name}
              image: ${main_container_image}
              command: ["/bin/sh", "-c"]
              args:
                - until [[ -f /tasksite/cornerstone ]]; do sleep 1; done;
                  # command 変数をアプリケーションコンテナの実際の起動コマンドに置き換えます。
                  ${container_start_cmd};
                  retcode=$?;
                  touch /tasksite/tombstone;
                  exit $retcode
              volumeMounts:
                # アプリケーションコンテナのログディレクトリを共有ボリュームにマウントします。
                - name: ${shared_volume_name}
                  mountPath: ${dir_containing_your_files}
                # Logtail コンテナと対話するためのマウントポイントを作成します。
                - mountPath: /tasksite
                  name: tasksite
    
            # サイドカーコンテナである Logtail コンテナの設定を構成します。
            - name: logtail
              image: ${logtail_image}
              command: ["/bin/sh", "-c"]
              args:
                - /etc/init.d/ilogtaild start;
                  sleep 10; # Logtail 構成がダウンロードされるまで待機します。
                  touch /tasksite/cornerstone;
                  until [[ -f /tasksite/tombstone ]]; do sleep 1; done;
                  sleep 10; # Logtail がログの送信を完了するまで待機します。
                  /etc/init.d/ilogtaild stop;
              livenessProbe:
                exec:
                  command:
                    - /etc/init.d/ilogtaild
                    - status
                initialDelaySeconds: 30
                periodSeconds: 30
              env:
                # タイムゾーンを指定します。Kubernetes クラスタが存在するリージョンに基づいて、リージョン/都市の形式でタイムゾーンを指定します。 たとえば、クラスタが中国本土にある場合は、タイムゾーンを Asia/Shanghai に設定します。
                # 指定されたタイムゾーンが無効な場合、未処理ログと処理済みログの時間ラベルが一致しない可能性があります。 その結果、ログが誤った時点でアーカイブされる可能性があります。
                - name: TZ
                  value: "${timezone}"
                - name: ALIYUN_LOGTAIL_USER_ID
                  value: "${your_aliyun_user_id}"
                - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
                  value: "${your_machine_group_user_defined_id}"
                - name: ALIYUN_LOGTAIL_CONFIG
                  value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"
                # ポッド環境情報をログラベルとして指定します。
                - name: "ALIYUN_LOG_ENV_TAGS"
                  value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_"
                # ポッドとノードの情報を取得します。
                - name: "_pod_name_"
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: "_pod_ip_"
                  valueFrom:
                    fieldRef:
                      fieldPath: status.podIP
                - name: "_namespace_"
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: "_node_name_"
                  valueFrom:
                    fieldRef:
                      fieldPath: spec.nodeName
                - name: "_node_ip_"
                  valueFrom:
                    fieldRef:
                      fieldPath: status.hostIP
              volumeMounts:
                # Logtail コンテナのログディレクトリを共有ボリュームにマウントします。
                - name: ${shared_volume_name}
                  mountPath: ${dir_containing_your_files}
                # アプリケーションコンテナと対話するためのマウントポイントを作成します。
                - mountPath: /tasksite
                  name: tasksite
                  # ホストと同じタイムゾーンを指定します。
                - name: tz-config
                  mountPath: /etc/localtime
                  readOnly: true
          volumes:
            # ログストレージ用の空の共有ボリュームを定義します。
            - name: ${shared_volume_name}
              emptyDir: {}
            # コンテナが相互に通信するためのボリュームを定義します。
            - name: tasksite
              emptyDir:
                medium: Memory
            - name: tz-config
              hostPath:
                path: /usr/share/zoneinfo/Asia/Shanghai # ホストのタイムゾーンファイルを指定します。
    
    

    主なパラメータ

    変数

    説明

    ${timezone}

    コンテナのタイムゾーン。 詳細については、「タイムゾーン」をご参照ください。

    ${your_aliyun_user_id}

    Alibaba Cloud アカウントの ID。 詳細については、「ユーザー識別子の構成」をご参照ください。

    ${your_machine_group_user_defined_id}

    マシングループのカスタム識別子。 カスタム識別子に基づいてマシングループを作成できます。 例:nginx-log-sidecar

    重要

    カスタム識別子は、プロジェクトが存在するリージョン内で一意である必要があります。

    ${your_region_config}

    プロジェクトのリージョン ID とネットワークタイプ。 リージョンの詳細については、「サポートされているリージョン」をご参照ください。

    • インターネット経由でプロジェクトにログが収集される場合は、region-internet 形式で値を指定します。 たとえば、プロジェクトが [中国 (杭州)] リージョンにある場合は、cn-hangzhou-internet を指定します。

    • Alibaba Cloud の内部ネットワーク経由でプロジェクトにログが収集される場合は、region 形式で値を指定します。 たとえば、プロジェクトが [中国 (杭州)] リージョンにある場合は、cn-hangzhou を指定します。

    ${logtail_image}

    Logtail イメージのアドレス。 例:registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latest

    ${shared_volume_name}

    ボリュームの名前。 ビジネス要件に基づいて名前を指定できます。

    重要

    volumeMounts ノードの name パラメータの値と、volumes ノードの name パラメータの値は同じである必要があります。 これにより、同じボリュームが Logtail コンテナとアプリケーションコンテナにマウントされます。

    ${dir_containing_your_files}

    マウントパス。 収集するコンテナテキストログのディレクトリを指定します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: '1'
      labels:
        app: deployment-file
        cluster_label: CLUSTER-LABEL-A
      name: deployment-file
      namespace: default
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: deployment-file
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: deployment-file
            cluster_label: CLUSTER-LABEL-A
        spec:
          containers:
            - name: timestamp-test
              image: 'mirrors-ssl.aliyuncs.com/busybox:latest'
              args:
                - >-
                  while true; mkdir -p /root/log; do date '+%Y-%m-%d %H:%M:%S'
                  >>/root/log/timestamp.log; echo 1 >>/root/log/timestamp.log; echo
                  2 >>/root/log/timestamp.log; echo 3 >>/root/log/timestamp.log;
                  echo 4 >>/root/log/timestamp.log; echo 5
                  >>/root/log/timestamp.log; echo 6 >>/root/log/timestamp.log;
                  echo 7 >>/root/log/timestamp.log; echo 8
                  >>/root/log/timestamp.log; echo 9 >>/root/log/timestamp.log;
                  sleep 10; done
              command:
                - /bin/sh
                - '-c'
                - '--'
              env:
                - name: cluster_id
                  value: CLUSTER-A
              imagePullPolicy: IfNotPresent
              resources: {}
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              volumeMounts:
                # アプリケーションコンテナのログディレクトリを共有ボリュームにマウントします。
                - name: test-logs
                  mountPath: /root/log
                 # Logtail コンテナと対話するためのマウントポイントを作成します。
                - mountPath: /tasksite
                  name: tasksite
                - name: tz-config
                  mountPath: /etc/localtime
                  readOnly: true
            # サイドカーコンテナである Logtail コンテナの設定を構成します。
            - name: logtail
              image: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:v1.8.7.0-aliyun
              command: ["/bin/sh", "-c"]
              args:
                - /etc/init.d/ilogtaild start;
                  sleep 10;
                  touch /tasksite/cornerstone;
                  until [[ -f /tasksite/tombstone ]]; do sleep 1; done;
                  sleep 10;
                  /etc/init.d/ilogtaild stop;
              livenessProbe:
                exec:
                  command:
                    - /etc/init.d/ilogtaild
                    - status
                initialDelaySeconds: 30
                periodSeconds: 30
              resources:
                limits:
                  cpu: 500m
                  memory: 512Mi
                requests:
                  cpu: 10m
                  memory: 30Mi
              env:
                # タイムゾーンを指定します。Kubernetes クラスタが存在するリージョンに基づいて、リージョン/都市の形式でタイムゾーンを指定します。 たとえば、クラスタが中国本土にある場合は、タイムゾーンを Asia/Shanghai に設定します。
                # 指定されたタイムゾーンが無効な場合、未処理ログと処理済みログの時間ラベルが一致しない可能性があります。 その結果、ログが誤った時点でアーカイブされる可能性があります。
                - name: TZ
                  value: "Asia/Shanghai"
                # 環境変数を実際の値に置き換えます。
                - name: ALIYUN_LOGTAIL_USER_ID
                  value: "1290918****39680"
                - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
                  value: "nginx-log-sidecar"
                - name: ALIYUN_LOGTAIL_CONFIG
                  value: "/etc/ilogtail/conf/cn-beijing-internet/ilogtail_config.json"
                # ポッド環境情報をログラベルとして指定します。
                - name: "ALIYUN_LOG_ENV_TAGS"
                  value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_"
                # ポッドとノードの情報を取得します。
                - name: "_pod_name_"
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: "_pod_ip_"
                  valueFrom:
                    fieldRef:
                      fieldPath: status.podIP
                - name: "_namespace_"
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: "_node_name_"
                  valueFrom:
                    fieldRef:
                      fieldPath: spec.nodeName
                - name: "_node_ip_"
                  valueFrom:
                    fieldRef:
                      fieldPath: status.hostIP
              volumeMounts:
                # Logtail コンテナのログディレクトリを共有ボリュームにマウントします。
                - name: test-logs
                  mountPath: /root/log
          volumes:
            # ログストレージ用の空の共有ボリュームを定義します。
            - name: test-logs
              emptyDir: {}
              # コンテナが相互に通信するためのボリュームを定義します。
            - name: tasksite
              emptyDir:
                medium: Memory
            - name: tz-config
              hostPath:
                path: /usr/share/zoneinfo/Asia/Shanghai # サーバーのタイムゾーンファイルを指定します。
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
  4. 次のコマンドを実行して、sidecar.yaml ファイルの構成を適用します。

    次のコマンドでは、sidecar.yaml はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。

    kubectl apply -f sidecar.yaml

手順 2:カスタム識別子ベースのマシングループを作成する

重要

手順 1 で作成した YAML ファイルの ALIYUN_LOGTAIL_USER_DEFINED_ID パラメータの値は、カスタム識別子です。

  1. Simple Log Service コンソール にログオンします。 [プロジェクト] セクションで、管理するプロジェクトをクリックします。

  2. 左側のナビゲーションウィンドウで、[リソース] > [マシングループ] を選択します。 [マシングループ] リストで、机器组 > [マシングループの作成] を選択します。image

  3. [マシングループの作成] パネルで、パラメータを構成し、[OK] をクリックします。 次の表にパラメータを示します。

    パラメータ

    説明

    名前

    マシングループ の名前。 名前には以下の要件を満たす必要があります。

    • 名前に含めることができるのは、小文字、数字、ハイフン(-)、アンダースコア(_)のみです。

    • 名前は小文字または数字で始まり、小文字または数字で終わる必要があります。

    • 名前は 2 ~ 128 文字である必要があります。

    重要

    マシングループを作成した後、マシングループの名前を変更することはできません。 注意して進めてください。

    マシングループ識別子

    マシングループの識別子タイプ。 [カスタム識別子] を選択します。

    マシングループトピック

    オプション。 マシングループのトピック。 トピック は、異なるサーバーによって生成されたログを識別するために使用されます。 詳細については、「ログトピック」をご参照ください。

    カスタム識別子

    カスタム識別子。 手順 1 で構成したカスタム識別子を入力します。

手順 3:Logtail 構成を作成する

  1. 必要なプロジェクトで、管理するログストアを見つけ、image > [データ収集] > image を選択します。

  2. [クイックデータインポート] ダイアログボックスで、[kubernetes - ファイル] カードをクリックします。

    image

  3. プロジェクトとログストアを選択します。 次に、[次へ] をクリックします。 この例では、Logtail コンポーネントのインストールに使用するプロジェクトと作成するログストアを選択します。

  4. データのインポートウィザードの [マシングループの構成] ステップで、次の操作を実行します。 マシングループの詳細については、「マシングループの概要」をご参照ください。

    1. ビジネス要件に基づいて、次のいずれかの設定を使用します。

      • [kubernetes クラスタ] > [ACK Daemonset]

      • [kubernetes クラスタ] > [daemonset モードのセルフマネージドクラスタ]

    2. 必要なマシングループが [適用済みサーバーグループ] セクションに追加されていることを確認します。 次に、[次へ] をクリックします。 手順 2 で作成したマシングループを選択します。

  5. Logtail 構成を作成し、[次へ] をクリックします。 その後、Simple Log Service はログの収集を開始します。

    説明

    Logtail 構成の作成には約 3 分かかります。

    グローバル構成

    パラメータ

    説明

    構成名

    Logtail 構成の名前。 名前はプロジェクト内で一意である必要があります。 Logtail 構成を作成した後、Logtail 構成の名前を変更することはできません。

    ログトピックタイプ

    ログトピックを生成する方法。 詳細については、「ログトピック」をご参照ください。

    • [マシングループトピック]:マシングループのトピックがログトピックとして使用されます。 異なるマシングループからのログを区別する場合は、このオプションを選択します。

    • [ファイルパス抽出][カスタム正規表現] を指定する必要があります。 正規表現に一致するログパスの一部がログトピックとして使用されます。 異なるソースからのログを区別する場合は、このオプションを選択します。

    • [カスタム]:カスタムログトピックを指定する必要があります。

    詳細パラメータ

    オプション。 グローバル構成に関連する詳細パラメータ。 詳細については、「CreateLogtailPipelineConfig」をご参照ください。

    入力構成

    パラメータ

    説明

    Logtail デプロイモード

    Logtail のデプロイモード。 この例では、[サイドカー] を選択します。

    ファイルパスタイプ

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

    ファイルパス

    • 必要なコンテナが Linux ホストで実行されている場合は、スラッシュ(/)で始まるパスを指定します。 例:/apsara/nuwa/**/app.Log

    • 必要なコンテナが Windows ホストで実行されている場合は、ドライブ文字で始まるパスを指定します。 例:C:\Program Files\Intel\**\*.Log

    正確なディレクトリと正確な名前を指定できます。 また、ワイルドカードを使用してディレクトリと名前を指定することもできます。 詳細については、「ワイルドカードマッチング」をご参照ください。 このパラメータを構成するときは、ワイルドカードとしてアスタリスク(*)または疑問符(?)のみを使用できます。

    Simple Log Service は、指定されたディレクトリのすべてのレベルをスキャンして、指定された条件に一致するログファイルを検索します。 例:

    • /apsara/nuwa/**/*.log を指定すると、Simple Log Service は、/apsara/nuwa ディレクトリとそのディレクトリの再帰的なサブディレクトリにある、.log で終わる名前のログファイルからログを収集します。

    • /var/logs/app_*/**/*.log を指定すると、Simple Log Service は、次の条件を満たすログファイルからログを収集します。ファイル名は .log で終わります。 ファイルは、/var/logs ディレクトリの下のサブディレクトリ、またはそのサブディレクトリの再帰的なサブディレクトリに保存されます。 サブディレクトリの名前は app_* パターンに一致します。

    • /var/log/nginx/**/access* を指定すると、Simple Log Service は、/var/log/nginx ディレクトリとそのディレクトリの再帰的なサブディレクトリにある、access で始まる名前のログファイルからログを収集します。

    ディレクトリ監視の最大深度

    監視するサブディレクトリの最大レベル数を指定します。 サブディレクトリは、指定したログファイルディレクトリにあります。 このパラメータは、[ファイルパス] の値に含まれるワイルドカード ** に一致させることができるサブディレクトリのレベルを指定します。 値 0 は、指定したログファイルディレクトリのみが監視されることを指定します。

    警告

    最小要件に基づいてこのパラメータを構成することをお勧めします。 大きな値を指定すると、Logtail がより多くの監視リソースを消費し、収集のレイテンシが発生する可能性があります。

    ファイルエンコーディング

    ログファイルのエンコード形式。

    初回収集サイズ

    Logtail がログファイルを初めて収集するときにログファイルから収集できるデータサイズを指定します。 初回収集サイズのデフォルト値は 1024 です。 単位:KB。

    • ファイルサイズが 1,024 KB 未満の場合、Logtail はファイルの先頭からデータを収集します。

    • ファイルサイズが 1,024 KB を超える場合、Logtail はファイルの最後の 1,024 KB のデータを収集します。

    ビジネス要件に基づいて [初回収集サイズ] を指定できます。 有効値:0 ~ 10485760。 単位:KB。

    収集ブラックリスト

    [収集ブラックリスト] をオンにする場合は、Simple Log Service がログを収集するときにスキップするディレクトリまたはファイルを指定するブラックリストを構成する必要があります。 正確なディレクトリとファイル名を指定できます。 また、ワイルドカードを使用してディレクトリとファイル名を指定することもできます。 このパラメータを構成するときは、ワイルドカードとしてアスタリスク(*)または疑問符(?)のみを使用できます。

    重要
    • ワイルドカードを使用して [ファイルパス] を構成し、指定したディレクトリ内の一部のディレクトリをスキップする場合は、[収集ブラックリスト] を構成し、[ディレクトリ名] フィールドに完全なディレクトリを入力する必要があります。

      たとえば、[ファイルパス]/home/admin/app*/log/*.log に設定し、/home/admin/app1* ディレクトリ内のすべてのサブディレクトリをスキップする場合は、[ディレクトリブラックリスト] を選択し、[ディレクトリ名] フィールドに /home/admin/app1*/** と入力する必要があります。 /home/admin/app1* と入力した場合、ブラックリストは有効になりません。

    • ブラックリストを使用している場合、計算オーバーヘッドが発生します。 ブラックリストには最大 10 個のエントリを追加することをお勧めします。

    • スラッシュ(/)で終わるディレクトリパスを指定することはできません。 たとえば、パスを /home/admin/dir1/ に設定した場合、ディレクトリブラックリストは有効になりません。

    次のタイプのブラックリストがサポートされています。ファイルパスブラックリスト、ファイルブラックリスト、ディレクトリブラックリスト。

    ファイルパスブラックリスト

    • [ファイルパスブラックリスト] を選択し、[ファイルパス名] フィールドに /home/admin/private*.log と入力すると、/home/admin/ ディレクトリにある、private で始まり .log で終わる名前のすべてのファイルがスキップされます。

    • [ファイルパスブラックリスト] を選択し、[ファイルパス名] フィールドに /home/admin/private*/*_inner.log と入力すると、/home/admin/ ディレクトリにある、private で始まる名前のサブディレクトリにある、_inner.log で終わる名前のすべてのファイルがスキップされます。 たとえば、/home/admin/private/app_inner.log ファイルはスキップされますが、/home/admin/private/app.log ファイルはスキップされません。

    ファイルブラックリスト

    [ファイルブラックリスト] を選択し、[ファイル名] フィールドに app_inner.log と入力すると、app_inner.log という名前のすべてのファイルがスキップされます。

    ディレクトリブラックリスト

    • [ディレクトリブラックリスト] を選択し、[ディレクトリ名] フィールドに /home/admin/dir1 と入力すると、/home/admin/dir1 ディレクトリ内のすべてのファイルがスキップされます。

    • [ディレクトリブラックリスト] を選択し、[ディレクトリ名] フィールドに /home/admin/dir* と入力すると、/home/admin/ ディレクトリにある、dir で始まる名前のすべてのサブディレクトリ内のファイルがスキップされます。

    • [ディレクトリブラックリスト] を選択し、[ディレクトリ名] フィールドに /home/admin/*/dir と入力すると、/home/admin/ ディレクトリの各第 2 レベルサブディレクトリにある dir サブディレクトリ内のすべてのファイルがスキップされます。 たとえば、/home/admin/a/dir ディレクトリ内のファイルはスキップされますが、/home/admin/a/b/dir ディレクトリ内のファイルはスキップされません。

    複数回のファイル収集を許可する

    デフォルトでは、1 つの Logtail 構成のみを使用してログファイルからログを収集できます。 複数の Logtail 構成を使用してログファイルからログを収集するには、[複数回のファイル収集を許可する] をオンにします。

    詳細パラメータ

    Logtail 構成の特定のパラメータを手動で構成するかどうかを指定します。 詳細については、「CreateLogtailPipelineConfig」をご参照ください。

    プロセッサ構成

    パラメータ

    説明

    ログサンプル

    実際のシナリオから収集されたサンプルログを追加します。 サンプルログを使用すると、ログ処理に関連するパラメータを簡単に構成できます。 複数のサンプルログを追加できます。 ログの合計の長さが 1,500 文字を超えないようにしてください。

    [2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
        at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
        at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
        at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

    複数行モード

    • 複数行ログのタイプを指定します。 複数行ログは、複数の連続した行にまたがっています。 このパラメータを構成して、ログファイル内の各複数行ログを識別できます。

      • [カスタム]:複数行ログは、[最初の行に一致する正規表現] の値に基づいて識別されます。

      • [複数行 JSON]:各 JSON オブジェクトは複数行に展開されます。 例:

        {
          "name": "John Doe",
          "age": 30,
          "address": {
            "city": "New York",
            "country": "USA"
          }
        }
    • 分割に失敗した場合の処理方法を構成します。

      Exception in thread "main" java.lang.NullPointerException
          at com.example.MyClass.methodA(MyClass.java:12)
          at com.example.MyClass.methodB(MyClass.java:34)
          at com.example.MyClass.main(MyClass.java:½0)

      上記のサンプルログの場合、Simple Log Service は、ログの分割に失敗したときにログを破棄するか、各単一行をログとして保持できます。

      • [破棄]:ログは破棄されます。

      • [単一行を保持]:ログの各行がログとして保持されます。 合計 4 つのログが保持されます。

    処理方法

    [プロセッサ] を選択します。 データ処理用に [ネイティブプラグイン][拡張プラグイン] を追加できます。 データ処理用の Logtail プラグインの詳細については、「Logtail プラグインの概要」をご参照ください。

    重要

    データ処理用の Logtail プラグインの制限が適用されます。 詳細については、Simple Log Service コンソールの画面上の指示をご参照ください。

    • Logtail V2.0

      • データ処理用のネイティブプラグインを任意に組み合わせることができます。

      • ネイティブプラグインと拡張プラグインを組み合わせることができます。 拡張プラグインはネイティブプラグインの後に追加してください。

    • V2.0 より前の Logtail

      • ネイティブプラグインと拡張プラグインを同時に追加することはできません。

      • ネイティブプラグインを使用してテキストログのみを収集できます。 ネイティブプラグインを追加する場合は、次の点に注意してください。

        • データ処理用の Logtail プラグインのいずれかを最初のプラグインとして追加する必要があります。データ解析(正規表現モード)、データ解析(区切り文字モード)、データ解析(JSON モード)、データ解析(NGINX モード)、データ解析(Apache モード)、データ解析(IIS モード)。

        • 最初のプラグインを追加した後、時間解析プラグイン、データフィルタリングプラグイン、および複数のデータマスキングプラグインを追加できます。

      • [解析に失敗した場合に元のフィールドを保持する] パラメータと [解析に成功した場合に元のフィールドを保持する] パラメータを構成する場合、使用できるパラメータの組み合わせは次のとおりです。 その他のパラメータの組み合わせでは、Simple Log Service は構成の効果を保証しません。

        • 解析されたログをアップロードします。

          image

        • 解析が成功した場合は解析後に取得されたログをアップロードし、解析に失敗した場合は未処理ログをアップロードします。

          image

        • 解析後に取得されたログをアップロードし、解析に成功した場合はログに未処理ログフィールドを追加し、解析に失敗した場合は未処理ログをアップロードします。

          たとえば、未処理ログが "content": "{"request_method":"GET", "request_time":"200"}" で、未処理ログが正常に解析された場合、システムは解析後に取得されたログに未処理ログフィールドを追加します。 未処理ログフィールドは、[元のフィールドの新しい名前] パラメータで指定されます。 パラメータを構成しない場合は、元のフィールド名が使用されます。 フィールド値は {"request_method":"GET", "request_time":"200"} です。

          image

  6. [インデックスの作成][データのプレビュー]。 次に、[次へ] をクリックします。 デフォルトでは、Simple Log Service でフルテキストインデックスが有効になっています。 また、収集されたログに基づいて、手動モードまたは自動モードでフィールドインデックスを構成することもできます。 自動モードでフィールドインデックスを構成するには、[自動インデックス生成] をクリックします。 これにより、Simple Log Service は自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    ログ内のすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することをお勧めします。 特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することをお勧めします。 これにより、インデックストラフィックを削減できます。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のクエリ文には SELECT 文を含める必要があります。

  7. [ログのクエリ] をクリックします。 その後、作成されたログストアのクエリと分析ページに移動します。

手順 4:ログのクエリと分析

データのインポートウィザードの [終了] ステップで、[ログのクエリ] をクリックします。 その後、作成されたログストアのクエリと分析ページに移動します。 インデックスが作成されていないため、次のエラーメッセージが表示される場合があります。 エラーメッセージページを閉じて 1 分間待機すると、収集されたログを表示できます。

image

検索ボックスにクエリ文を入力し、クエリ時間範囲を指定して、[検索と分析] をクリックします。 その後、指定された条件を満たすログを取得できます。 クエリと分析の構文の詳細については、「インデックスモードでのログのクエリと分析」をご参照ください。

image

参考資料

Logtail 構成の表示

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

  2. [プロジェクト] セクションで、対象のプロジェクトをクリックします。

  3. [ログストレージ] > [ログストア] を選択します。 対象の Logtail 構成の [>] アイコンをクリックします。 [データのインポート] > [logtail 構成] を選択します。

  4. 対象の Logtail 構成をクリックして、構成の詳細を表示します。

トラブルシューティング