Simple Log Service は、Kubernetes ログを収集するために Logtail をデプロイする 2 つの方法 (DaemonSet と Sidecar) を提供しています。それぞれの違いについては、「Kubernetes クラスタからログを収集するために Logtail をインストールする」をご参照ください。このトピックでは、サイドカーモードを使用して Logtail をデプロイし、Kubernetes クラスタからテキストログを収集する方法について説明します。
前提条件
手順
このトピックでは、ACK マネージドクラスター を例として使用して、サイドカーモードでテキストログを収集する手順について説明します。
アプリケーション ポッドに Logtail コンテナを挿入する: 各ポッドは Logtail コンテナを実行して、現在のポッド内のすべてのコンテナからログを収集します。各ポッドからのログ収集は分離されています。
カスタム識別子を持つマシン グループを作成する: ポッドごとにマシン グループを作成します。Simple Log Service は、Logtail を使用してログを収集する必要があるすべてのコンテナを、マシン グループを使用して管理します。
Logtail 構成を作成する: Logtail 構成が作成されると、Logtail は Logtail 構成に基づいて増分ログを収集し、収集されたログを処理して作成されたログストアにアップロードします。
ログをクエリおよび分析する: ログストア内のログデータを表示します。
ステップ 1: アプリケーション ポッドに Logtail コンテナを挿入する
ログイン方法は自己管理型クラスタと ACK クラスタで異なりますが、その他の手順はすべて同じです。
Container Service for Kubernetes コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックし、 対象のクラスタの [アクション] 列にある [詳細] をクリックし、[ACK クラスタの管理] をクリックします。

既存のアプリケーション コンテナ YAML に以下を追加します。
既存のアプリケーション コンテナがない場合、または手順をテストする場合は、このトピックで YAML の例も提供しています。例の ALIYUN_LOGTAIL_USER_ID を Alibaba Cloud アカウント ID に変更し、ALIYUN_LOGTAIL_CONFIG のリージョン
${region_id}が Simple Log Service プロジェクトのリージョンと同じであることを確認します。値については、「サポートされているリージョン」をご参照の上、置き換えてください。kubectl apply -fを実行して構成を適用します。kubectl describe podを実行して以下の情報を取得します。これは、Logtail コンテナが正常に挿入されたことを示しています。
ステップ 2: カスタム識別子を持つマシン グループを作成する
YAML の ${your_machine_group_user_defined_id} はカスタム識別子です。この例では、値は nginx-log-sidecar です。
Simple Log Service コンソール にログインします。[プロジェクト] セクションで、目的のプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 を選択します。[マシン グループ] リストで、 を選択します。

[マシン グループの作成] パネルで、以下の情報を入力し、[OK] をクリックします。
パラメータ
説明
名前
マシン グループの名前は、以下の要件を満たしている必要があります。
小文字、数字、ハイフン (-)、アンダースコア (_) のみを含む。
小文字または数字で始まり、小文字または数字で終わる。
長さが 2 ~ 128 文字である。
重要マシン グループを作成した後、その名前を変更することはできません。注意して進めてください。
マシン グループ識別子
[カスタム識別子] を選択します。
マシン グループ トピック
オプション。 トピック は、異なるサーバーによって生成されたログを識別するために使用されます。
カスタム識別子
ステップ 1 で構成したカスタム識別子 (例:
nginx-log-sidecar) を入力します。
ステップ 3: Logtail 構成を作成する
Simple Log Service コンソール にログインします。
[クイック データ インポート] セクションで、[データのインポート] をクリックします。[データのインポート] ダイアログボックスで、[Kubernetes - ファイル] カードをクリックします。

対象のプロジェクトとログストアを選択し、[次へ] をクリックします。
[マシン グループの構成] ページで、以下の操作を実行します。マシン グループについては、「マシン グループ」をご参照ください。
[シナリオ] を [Kubernetes クラスタ] に設定し、[デプロイ方法] を [サイドカー] に設定します。
対象のマシン グループが [適用済みサーバー グループ] リストに表示されていることを確認し、[次へ] をクリックします。マシン グループは、ステップ 2 で作成したものです。
マシン グループのハートビート ステータスが FAIL であるか、マシン情報が存在しない場合は、[自動再試行] をクリックします。ステータスがまだ FAIL の場合は、YAML の ALIYUN_LOGTAIL_CONFIG のリージョンがプロジェクトのリージョンと同じであるかどうかを確認します。
問題が解決しない場合は、「ホスト環境の Logtail マシン グループに関連するエラーのトラブルシューティング方法」をご参照ください。
Logtail 構成を作成し、[次へ] をクリックします。Simple Log Service はログの収集を開始します。
説明Logtail 構成の作成には約 3 分かかります。
このセクションでは、必要な構成のみを説明します。すべての構成については、「Logtail 構成」をご参照ください。
グローバル構成
構成名: Logtail 構成の名前。名前は、Logtail 構成が属するプロジェクト内で一意である必要があります。作成後は、名前を変更することはできません。

入力構成
Logtail デプロイ モード: [サイドカー] を選択します。
ファイル パス: ディレクトリ名とファイル名は、完全なパスまたはワイルドカード文字を含むパスにすることができます。ワイルドカード文字には、アスタリスク (*) と疑問符 (?) が含まれます。この例では、ディレクトリ値は、YAML の
${dir_containing_your_files}です。/apsara/nuwa/**/*.logは、/apsara/nuwaフォルダ (再帰的なサブディレクトリを含む) 内の .log 拡張子を持つファイルを指します。

プロセッサ構成
ログ サンプル: 複数のログを入力できます。処理パラメータの構成を支援し、複雑さを軽減するために、ログ サンプルを入力することをお勧めします。
複数行モード: この例では、複数行のログが収集されます。この機能を有効にします。
タイプ: [カスタム] を選択します。
分割に失敗した場合の処理方法: [単一行を保持] を選択します。
最初の行に一致する正規表現: 正規表現を指定して [検証] をクリックするか、[生成] と [自動生成] をクリックします。
処理方法: [なし] を選択します。詳細については、「データ処理用 Logtail プラグインの概要」をご参照ください。
インデックスを作成してデータをプレビューし、[次へ] をクリックします。デフォルトでは、Simple Log Service で [フルテキスト インデックス] が有効になっています。収集されたログに基づいてフィールド インデックスを手動で作成することも、[自動インデックス生成] をクリックしてフィールド インデックスを自動的に生成することもできます。詳細については、「インデックスの作成」をご参照ください。
ログ内のすべてのフィールドをクエリするには、フルテキスト インデックスを使用します。特定のフィールドをクエリするには、フィールド インデックスを使用してインデックストラフィックを削減します。フィールド分析 (SELECT 文) の場合は、フィールド インデックスを作成します。
ステップ 4: ログをクエリおよび分析する
Simple Log Service コンソールの [プロジェクト] セクションで、管理するプロジェクトをクリックして詳細ページに移動します。

管理するログストアを見つけ、ポインタをログストアの上に移動し、
アイコンをクリックして、[検索と分析] を選択し、Kubernetes クラスタのログを表示します。
K8s ログフィールド
次の表は、Kubernetes の各コンテナ テキストログに含まれるデフォルト フィールドについて説明しています。
フィールド | 説明 |
__tag__:__hostname__ | コンテナ ホストの名前。 |
__tag__:__path__ | コンテナ内のログファイル パス。 |
__tag__:_container_ip_ | コンテナの IP アドレス。 |
__tag__:_image_name_ | コンテナで使用されるイメージの名前。 説明 同じハッシュで名前またはタグが異なるイメージが複数ある場合、収集構成は収集のためにハッシュに基づいて 1 つの名前を選択します。選択された名前が YAML ファイルで定義された名前と一致することを保証するものではありません。 |
__tag__:_pod_name_ | ポッドの名前。 |
__tag__:_namespace_ | ポッドが属する名前空間。 |
__tag__:_pod_uid_ | ポッドの一意の識別子 (UID)。 |
関連情報
Simple Log Service の可視化機能を使用すると、ログデータを集計して概要を把握できます。詳細については、「ダッシュボードの作成」をご参照ください。
Simple Log Service のアラート機能を使用して、ログの異常に関する自動通知を受信します。詳細については、「Simple Log Service でのアラート ルールの構成」をご参照ください。
Simple Log Service は増分ログのみを収集します。履歴ログファイルを収集するには、「ログファイルから履歴ログをインポートする」をご参照ください。
コンテナ ログ収集のトラブルシューティングについては、以下を検討してください。
コンソールにエラー メッセージがあるかどうかを確認します。詳細については、「Logtail 診断」をご参照ください。
コンソールにエラー メッセージが表示されない場合は、マシン グループのハートビート、Logtail 構成、および関連する問題を調査します。詳細については、「コンテナからログを収集するときにエラーが発生した場合の対処方法」をご参照ください。
> [マシン グループの作成]