Kubernetes では、散在するコンテナーログの管理が困難な場合があり、トラブルシューティングの非効率化や O&M コストの増大につながります。Simple Log Service (SLS) LoongCollector を DaemonSet モードでデプロイし、SLS コンソールでログ収集を設定することで、統一されたログ収集と構造化処理が可能になります。このアプローチにより、ログ検索、問題診断、および可観測性分析の効率が向上します。
使用上の注意
ランタイム環境:
Container Service for Kubernetes (ACK) (マネージド版および専用版) とセルフマネージド Kubernetes クラスターをサポートします。
Kubernetes バージョン 1.10.0 以降で、
Mount propagation: HostToContainerをサポートしている必要があります。コンテナーランタイム (Docker および Containerd のみ)
Docker:
docker.sock へのアクセス権限が必要です。
標準出力の収集は、JSON ログドライバーのみをサポートします。
overlay および overlay2 ストレージドライバーのみをサポートします。他のストレージドライバータイプの場合は、ログディレクトリを手動でマウントする必要があります。
Containerd: containerd.sock へのアクセス権限が必要です。
リソース要件: LoongCollector (Logtail) は、system-cluster-critical として高い優先度で実行されます。クラスターリソースが不足している場合は、ノード上の既存の Pod を退去させる可能性があるため、デプロイを避けてください。
CPU: 少なくとも 0.1 コアを予約してください。
メモリ: 収集コンポーネント用に少なくとも 150 MB、コントローラーコンポーネント用に少なくとも 100 MB を予約してください。
実際の使用量は、収集レート、監視対象のディレクトリとファイルの数、および送信の混雑レベルによって異なります。実際の使用量が制限の 80% 未満であることを確認してください。
権限要件: デプロイに使用する Alibaba Cloud アカウントまたは RAM ユーザーは、
AliyunLogFullAccess権限を持っている必要があります。カスタムポリシーを作成するには、AliyunCSManagedLogRolePolicy システムポリシーをご参照ください。ポリシーに含まれる権限をコピーし、ターゲットの RAM ユーザーまたはロールに付与して、詳細な権限設定を行います。
収集設定のワークフロー
LoongCollector のインストール: LoongCollector を DaemonSet モードでデプロイします。これにより、クラスター内の各ノードで収集コンテナーが実行され、そのノード上のすべてのコンテナーからログが収集されるようになります。
Sidecar モードについては、「クラスターからテキストログを収集する (Sidecar)」をご参照ください。
Logstore の作成: Logstore はログデータのストレージユニットです。1 つのプロジェクトに複数の Logstore を作成できます。
収集設定の作成:
このトピックでは、一般的なユースケースにおける共通の設定パラメーターとコアオプションのみを説明します。設定パラメーターとその説明の完全なリストについては、「詳細情報」をご参照ください。
最小構成 (必須): クラスターから SLS プロジェクトへのデータ収集トンネルを確立します。
一般的な処理設定 (任意): 一般的なデータ処理プラグインを設定して、生ログを構造化データに解析します。たとえば、正規表現やデリミタを使用して解析したり、データマスキングやフィルタリングを実行したりします。
このトピックでは、一般的なログ処理のユースケースをカバーするネイティブ処理プラグインのみを説明します。その他の機能については、「拡張処理プラグイン」をご参照ください。
その他の詳細設定 (任意): 複数行のテキストログを収集し、ログタグを充実させて、より詳細な収集を行います。
LoongCollector (Logtail) のインストール
LoongCollector は、SLS の新世代ログ収集エージェントであり、Logtail のアップグレード版です。LoongCollector と Logtail は共存できません。Logtail をインストールするには、「Logtail のインストール、実行、アップグレード、アンインストール」をご参照ください。
このトピックでは、LoongCollector をインストールするための基本的な手順のみを説明します。パラメーターの詳細については、「LoongCollector のインストール (Kubernetes)」をご参照ください。LoongCollector または Logtail をインストール済みの場合は、このステップをスキップして、収集したログを保存するためのLogstore を作成してください。
ACK クラスター
Container Service for Kubernetes コンソールから LoongCollector をインストールします。デフォルトでは、ログは現在の Alibaba Cloud アカウント配下の Simple Log Service プロジェクトに送信されます。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、ターゲットクラスターの名前をクリックします。
左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[ログとモニタリング] タブで、loongcollector を見つけて [インストール] をクリックします。
説明新しいクラスターの場合、[詳細オプション] セクションで [Log Service を有効にする] を選択します。次に、[プロジェクトの作成] または [プロジェクトの選択] を行います。
インストールが完了すると、SLS は ACK クラスターが存在するリージョンに関連リソースを自動的に作成します。Simple Log Service コンソールにログインして表示します。
リソースタイプ
リソース名
機能
プロジェクト
k8s-log-${cluster_id}異なるサービスのログを隔離するリソース管理ユニット。
より柔軟なログリソース管理のためにプロジェクトを作成するには、「プロジェクトの作成」をご参照ください。
マシングループ
k8s-group-${cluster_id}ログ収集ノードのコレクション。
Logstore
config-operation-log重要この Logstore は削除しないでください。
loongcollector-operator コンポーネントのログを保存します。その課金方法は通常の Logstore と同じです。詳細については、「データ書き込み量による課金モードの課金項目」をご参照ください。この Logstore には収集設定を作成しないことをお勧めします。
セルフマネージドクラスター
Kubernetes クラスターに接続します。お使いのリージョンに対応するコマンドを選択して、LoongCollector とその依存コンポーネントをダウンロードします:
中国国内のリージョン:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh中国国外のリージョン:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shloongcollector-custom-k8s-packageディレクトリに移動し、./loongcollector/values.yaml設定ファイルを変更します。# ===================== 必須情報 ===================== # このクラスターからログを収集するプロジェクトの名前 (例: k8s-log-custom-sd89ehdq) projectName: "" # プロジェクトのリージョン (例: Shanghai: cn-shanghai) region: "" # プロジェクトを所有する Alibaba Cloud アカウントの UID。引用符で囲みます (例: "123456789") aliUid: "" # 使用するネットワーク。オプションのパラメーター: Internet, Intranet。デフォルトは Internet です。 net: Internet # Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。アカウントには AliyunLogFullAccess システムポリシー権限が必要です。 accessKeyID: "" accessKeySecret: "" # カスタムクラスター ID。名前には大文字、小文字、数字、ハイフン (-) のみを含めることができます。 clusterID: ""loongcollector-custom-k8s-packageディレクトリで、次のコマンドを実行して LoongCollector とその他の依存コンポーネントをインストールします:bash k8s-custom-install.sh installインストールが完了したら、コンポーネントの実行ステータスを確認します。
Pod の起動に失敗した場合は、values.yaml の設定が正しいか、関連するイメージが正常にプルされたかを確認してください。
# Pod のステータスを確認 kubectl get po -n kube-system | grep loongcollector-dsSLS はまた、以下のリソースを自動的に作成します。Simple Log Service コンソールにログインして表示します。
リソースタイプ
リソース名
機能
プロジェクト
values.yaml ファイルで定義された
projectNameの値異なるサービスのログを隔離するリソース管理ユニット。
より柔軟なログリソース管理のためにプロジェクトを作成するには、「プロジェクトの作成」をご参照ください。
マシングループ
k8s-group-${cluster_id}ログ収集ノードのコレクション。
Logstore
config-operation-log重要この Logstore は削除しないでください。
loongcollector-operator コンポーネントのログを保存します。その課金方法は通常の Logstore と同じです。詳細については、「データ書き込み量に応じた課金項目」をご参照ください。この Logstore には収集設定を作成しないことをお勧めします。
Logstore の作成
すでに Logstore を作成している場合は、このステップをスキップして収集設定の作成に進んでください。
SLS は、課金方法として「データ書き込み量による課金」と「機能による課金」の 2 つをサポートしています。Logstore を作成する際に、必要に応じて適切な課金方法を選択してください。
Simple Log Service コンソールにログインし、ターゲットプロジェクトの名前をクリックします。
左側のナビゲーションウィンドウで、
を選択し、[+] をクリックします。[Logstore の作成] ページで、次のコア設定を完了します:
Logstore 名: プロジェクト内で一意の名前を設定します。この名前は作成後に変更できません。
Logstore タイプ: 仕様比較に基づいて、標準またはクエリを選択します。
課金モード:
機能による課金: ストレージ、インデックス、読み書き操作などのリソースに対して個別に課金されます。小規模なユースケースや、機能の使用量が不確かな場合に適しています。
データ書き込み量による課金: 書き込まれた生データの量によってのみ課金されます。30 日間の無料ストレージ期間と、データ変換や配信などの無料機能を提供します。コストモデルはシンプルで、ストレージ期間が 30 日に近い場合や、データ処理パイプラインが複雑なユースケースに適しています。
データ保持期間: ログを保持する日数を設定します。値の範囲は 1 日から 3650 日です。3650 日は永久保存を意味します。デフォルトは 30 日です。
他の設定はデフォルトのままにして、[OK] をクリックします。他の設定の詳細については、「Logstore の管理」をご参照ください。
最小構成
LoongCollector をインストールし、Logstore を作成した後、収集設定を行うことができます。このセクションでは、コンテナーの標準出力とクラスターのテキストログという 2 つの基本的なユースケースについて説明します。これらのユースケースでは、生ログを解析または処理せずに Logstore にアップロードするため、データチャネルを迅速に確立するのに適しています。
Logstore
|
|
コンテナー標準出力 (stdout) の収集
| 生ログ: |
収集された生の標準出力 (stdout): |
クラスターテキストログの収集
| 生ログ: |
生ログ行全体が content フィールドに保存されます: |
一般的な処理設定
最小構成を完了した後、 セクションで処理プラグインを追加して、生ログを構造化データに解析したり、データマスキングやフィルタリングを実行したりします。既存の収集設定に処理プラグインを追加するには、次のようにします:
左側のナビゲーションウィンドウで、
[Logstores] を選択し、ターゲットの Logstore を見つけます。名前の前にある
をクリックして Logstore を展開します。[Logtail 設定] をクリックします。設定リストで、ターゲットの Logtail 設定を見つけ、[操作] 列の [Logtail 設定の管理] をクリックします。
Logtail 設定ページで、[編集] をクリックし、 セクションまでスクロールダウンして、解析プラグインを設定します。
このセクションでは、一般的なログ処理のユースケースをカバーするネイティブプラグインのみを説明します。詳細については、「拡張プラグイン」をご参照ください。
Logtail 2.0 以降のバージョン、および LoongCollector コンポーネントについては、以下のプラグイン組み合わせルールに従ってください:
ネイティブプラグインの使用を優先します。
ネイティブプラグインでニーズを満たせない場合は、ネイティブプラグインの後に拡張プラグインを設定します。
ネイティブプラグインは、拡張プラグインの前にのみ使用できます。
構造化設定
正規表現解析
正規表現を使用してログフィールドを抽出し、ログをキーと値のペアに解析します。
| 生ログ: |
カスタム正規表現解析: 正規表現 |
デリミタベースの解析
デリミタを使用してログコンテンツを構造化し、複数のキーと値のペアに解析します。単一文字と複数文字の両方のデリミタがサポートされています。
[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
指定された文字 |
標準 JSON 解析
オブジェクトタイプの JSON ログを構造化し、キーと値のペアに解析します。
[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
標準 JSON のキーと値のペアが自動的に抽出されます: |
ネストされた JSON 解析
展開深度を指定して、ネストされた JSON ログをキーと値のペアに解析します。
[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
展開深度: 0、展開深度をプレフィックスとして使用。 | |
展開深度: 1、プレフィックスとして使用します。 |
JSON 配列解析
json_extract 関数を使用して、JSON 配列から JSON オブジェクトを抽出します。
[処理方法] を [SPL] に設定します:
| 生ログ: |
抽出された JSON 配列構造: |
NGINX ログ解析
log_format の定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。デフォルトのコンテンツがニーズに合わない場合は、カスタムフォーマットを使用します。
[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
|
Apache ログ解析
Apache ログ設定ファイルの定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。
[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
Apache Common Log Format |
データマスキング
ログ内の機密データをマスキングします。
[プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
マスキング結果: |
コンテンツフィルタリング
正規表現に基づいてログフィールド値を照合し、ホワイトリスト条件を満たすログのみを収集します。
[プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
フィルタリングされたログ: [フィールド名] を |
時間解析
ログの時間フィールドを解析し、解析結果をログの __time__ フィールドとして設定します。
[プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
| 生ログ: |
時間解析:
|
その他の詳細設定
最小構成または一般的な処理設定を完了した後、複数行ログの収集、トピックタイプの構成などを行い、詳細なログ収集を実現します。
既存の収集設定を変更するには、次のようにします:
左側のナビゲーションウィンドウで、
[Logstores] を選択し、ターゲットの Logstore を見つけます。名前の前にある
をクリックして Logstore を展開します。[Logtail 設定] をクリックします。設定リストで、ターゲットの Logtail 設定を見つけ、[操作] 列の [Logtail 設定の管理] をクリックします。
Logtail 設定ページで、[編集] をクリックします。
特徴 | 目的 |
複数行ログ収集 | Java スタックトレースなどの複数行にまたがるログを処理します。 |
ログトピックタイプ | マシングループ、ファイルパス、またはカスタムルールに基づいてトピックを設定し、ログソースを分類します。 |
コンテナーフィルタリングとブラックリスト |
|
ログタグの充実化 | 環境変数とコンテナー情報をメタデータフィールドとして追加します。 |
ログ転送の圧縮 |
|
複数行ログ収集
デフォルトでは、SLS は単一行モードで動作し、テキストの各行を個別のログとして扱います。これにより、スタックトレースや JSON などのコンテンツを含む複数行のログが誤って分割され、コンテキストが失われる可能性があります。
この問題に対処するには、[複数行モード] を有効にし、[最初の行に一致する正規表現] を定義します。これにより、SLS は完全なログの開始行を正確に識別し、複数の行を単一のログエントリにマージできます。
[プロセッサー設定]:
| 生ログ: |
単一行モード: 各行は個別のログであり、スタック情報が分割され、コンテキストが失われます。
| |
複数行モード: 最初の行の正規表現が完全なログを識別し、完全な意味構造を保持します。 |
トピックタイプの設定
: トピックの生成方法を選択します。
マシングループトピック: SLS では、1 つの収集設定を複数のマシングループに適用できます。LoongCollector がデータを報告する際、マシングループのトピックをログトピックとして使用し、Logstore にアップロードします。トピックを使用して、異なるマシングループからのログを区別します。
ファイルパス抽出: 異なるユーザーやアプリケーションが、異なるトップレベルディレクトリに、しかし同じサブディレクトリパスとファイル名でログを書き込む場合、ファイル名からログソースを区別することが困難になります。[ファイルパス抽出] を設定します。正規表現を使用して完全なファイルパスを照合し、照合された結果 (ユーザー名またはアプリケーション名) をログトピックとして Logstore にアップロードします。
説明ファイルパスの正規表現では、フォワードスラッシュ (/) をエスケープする必要があります。
ファイルパス正規表現を使用した抽出
ユースケース: 異なるユーザーが異なるディレクトリにログを記録しますが、ログファイル名は同じです。ディレクトリパスは次のとおりです。
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.log[Logtail 設定] でファイルパスを
/data/logs、ファイル名をservice.logとだけ設定した場合、LoongCollector (Logtail) は 3 つすべてのservice.logファイルのコンテンツを同じ Logstore に収集します。これにより、どのユーザーがどのログを生成したかを区別できなくなります。正規表現を使用してファイルパスから値を抽出し、異なるログトピックを生成します。正規表現
抽出結果
\/data\/logs\/(.*)\/serviceA\/.*__topic__: userA __topic__: userB __topic__: userC複数のキャプチャグループを使用した抽出
ユースケース: 単一のログトピックではログのソースを区別するのに不十分な場合、ログファイルパスに複数の正規表現キャプチャグループを設定してキー情報を抽出します。これらのキャプチャグループには、名前付きキャプチャグループ (?P<name>) と名前なしキャプチャグループが含まれます。
名前付きキャプチャグループ: 生成されるタグフィールドは
__tag__:{name}です。名前なしキャプチャグループ: 生成されるタグフィールドは
__tag__:__topic_{i}__です。ここで、{i}はキャプチャグループのシーケンス番号です。
説明正規表現に複数のキャプチャグループがある場合、
__topic__フィールドは生成されません。たとえば、ファイルパスが
/data/logs/userA/serviceA/service.logの場合、次の方法でファイルパスから複数の値を抽出します:例
正規表現
抽出結果
正規表現抽出に名前なしキャプチャグループを使用します。
\/data\/logs\/(.*?)\/(.*?)\/service.log__tag__:__topic_1__: userA __tag__:__topic_2__: serviceA正規表現抽出に名前付きキャプチャグループを使用します。
\/data\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/service.log__tag__:user: userA __tag__:service: serviceA検証: 設定後、ログトピックに基づいてログをクエリします。
ログクエリおよび分析ページで、対応する生成されたログトピック (例:
__topic__: userAまたは__tag__:__topic_1__: userA) を入力して、そのトピックのログをクエリします。
[カスタム]:
customized:// + カスタムトピック名を入力して、カスタムの静的ログトピックを使用します。
コンテナーフィルタリングとブラックリスト
コンテナーフィルタリング
[入力設定]:
[コンテナーフィルタリング] を有効にし、[追加] をクリックしてフィルタリング方法を選択し、設定します。複数の条件は「AND」関係で結合されます。
環境変数ブラックリスト/ホワイトリスト: 収集対象のコンテナーの環境変数条件を指定します。
K8s Pod ラベルブラックリスト/ホワイトリスト: 収集対象のコンテナーが配置されている Pod のラベル条件を指定します。
K8s Pod 名正規表現一致: Pod 名で収集対象のコンテナーを指定します。
K8s 名前空間正規表現一致: 名前空間名で収集対象のコンテナーを指定します。
K8s コンテナー名正規表現一致: コンテナー名で収集対象のコンテナーを指定します。
コンテナーラベルブラックリスト/ホワイトリスト: ラベルが条件を満たすコンテナーを収集します。Docker のユースケースで使用されます。Kubernetes のユースケースでは推奨されません。
すべての正規表現マッチングは Go 言語の RE2 エンジンを使用しており、PCRE などのエンジンと比較して機能セットが限られています。正規表現を記述するには、「付録: 正規表現の制限 (コンテナーフィルタリング)」を参照して正しい構文を確認してください。
ブラックリスト
: [収集ブラックリスト] を有効にし、[追加] をクリックしてブラックリストを設定します。
ディレクトリとファイル名の完全一致とワイルドカード一致をサポートします。ワイルドカード文字はアスタリスク (*) と疑問符 (?) のみをサポートします。
[ファイルパスブラックリスト]: 無視するファイルパス。例:
/home/admin/private*.log: 収集時に、/home/admin/ディレクトリ内の "private" で始まり ".log" で終わるすべてのファイルを無視します。/home/admin/private*/*_inner.log: 収集時に、/home/admin/ディレクトリ配下の "private" で始まるディレクトリ内の "_inner.log" で終わるファイルを無視します。
[ファイルブラックリスト]: 収集時に無視するファイル名を設定します。例:
app_inner.log: 収集時に、app_inner.logという名前のすべてのファイルを無視します。
[ディレクトリブラックリスト]: ディレクトリパスはフォワードスラッシュ (/) で終わることはできません。例:
/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ディレクトリ内のファイルは収集されます。
ログタグの充実化
:
[ログタグの充実化] を有効にし、[追加] をクリックします:
環境変数: 環境変数名とタグ名を設定します。環境変数の値はタグ名に保存されます。
環境変数名: 抽出する環境変数の名前を指定します。
タグ名: 環境変数タグの名前。
Pod ラベル: Pod ラベル名とタグ名を設定します。Pod ラベルの値はタグ名に保存されます。
Pod ラベル名: 抽出する Kubernetes Pod ラベルの名前。
タグ名: タグの名前。
ログ転送の圧縮
:
Logtail 1.3.4 以降のバージョンのみが zstd 圧縮をサポートします。
lz4: 圧縮速度が速く、圧縮率が低い。
zstd: 圧縮率が高く、速度がやや遅く、メモリ使用量が多い。
次のステップ
ログのクエリと分析: 収集された各コンテナーテキストログには、以下のデフォルトフィールド情報が含まれています:
フィールド
説明
__tag__:__hostname__
コンテナーのホスト名。
__tag__:__path__
コンテナー内のログファイルのパス。
__tag__:_container_ip_
コンテナーの IP アドレス。
__tag__:_image_name_
コンテナーが使用するイメージの名前。
__tag__:_pod_name_
Pod の名前。
__tag__:_namespace_
Pod が属する名前空間。
__tag__:_pod_uid_
Pod の一意の識別子 (UID)。
データの可視化: 可視化ダッシュボードを使用して、主要なメトリックのトレンドを監視します。
データ異常の自動アラート: アラートポリシーを設定して、システムの異常をリアルタイムで検出します。
トラブルシューティング: コンテナーログからデータが収集されない
新しいログの確認: LoongCollector (Logtail) を収集用に設定した後、ターゲットのログファイルに新しいログがない場合、LoongCollector (Logtail) はそのファイルから収集しません。
よくある質問
ACK クラスターのログを別の Alibaba Cloud アカウントのプロジェクトに送信するにはどうすればよいですか?
ACK クラスターに LoongCollector (Logtail) を手動でインストールし、ターゲットの Alibaba Cloud アカウント ID または AccessKey で設定します。これにより、コンテナーログを別の Alibaba Cloud アカウントの SLS プロジェクトに送信できます。
ユースケース: 組織構造、権限の分離、または統一された監視などの理由で、ACK クラスターから別の Alibaba Cloud アカウントの SLS プロジェクトにログデータを収集します。クロスアカウント設定のために LoongCollector (Logtail) を手動でインストールします。
プロシージャ: 以下の手順では、LoongCollector の手動インストールを例として使用します。Logtail のインストール方法については、「Logtail のインストールと設定」をご参照ください。
Kubernetes クラスターに接続します。お使いのリージョンに対応するコマンドを選択して、LoongCollector とその依存コンポーネントをダウンロードします:
中国国内のリージョン:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh中国国外のリージョン:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shloongcollector-custom-k8s-packageディレクトリに移動し、./loongcollector/values.yaml設定ファイルを変更します。# ===================== 必須情報 ===================== # このクラスターからログを収集するプロジェクトの名前 (例: k8s-log-custom-sd89ehdq) projectName: "" # プロジェクトのリージョン (例: Shanghai: cn-shanghai) region: "" # プロジェクトを所有する Alibaba Cloud アカウントの UID。引用符で囲みます (例: "123456789") aliUid: "" # 使用するネットワーク。オプションのパラメーター: Internet, Intranet。デフォルトは Internet です。 net: Internet # Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。アカウントには AliyunLogFullAccess システムポリシー権限が必要です。 accessKeyID: "" accessKeySecret: "" # カスタムクラスター ID。名前には大文字、小文字、数字、ハイフン (-) のみを含めることができます。 clusterID: ""loongcollector-custom-k8s-packageディレクトリで、次のコマンドを実行して LoongCollector とその他の依存コンポーネントをインストールします:bash k8s-custom-install.sh installインストールが完了したら、コンポーネントの実行ステータスを確認します。
Pod の起動に失敗した場合は、values.yaml の設定が正しいか、関連するイメージが正常にプルされたかを確認してください。
# Pod のステータスを確認 kubectl get po -n kube-system | grep loongcollector-dsSLS はまた、以下のリソースを自動的に作成します。Simple Log Service コンソールにログインして表示します。
リソースタイプ
リソース名
機能
プロジェクト
values.yaml ファイルで定義された
projectNameの値異なるサービスのログを隔離するリソース管理ユニット。
より柔軟なログリソース管理のためにプロジェクトを作成するには、「プロジェクトの作成」をご参照ください。
マシングループ
k8s-group-${cluster_id}ログ収集ノードのコレクション。
Logstore
config-operation-log重要この Logstore は削除しないでください。
loongcollector-operator コンポーネントのログを保存します。その課金方法は通常の Logstore と同じです。詳細については、「データ書き込み量に応じた課金項目」をご参照ください。この Logstore には収集設定を作成しないことをお勧めします。
複数の収集設定を使用して同じファイルまたはコンテナーの標準出力からログを収集するにはどうすればよいですか?
デフォルトでは、データの重複を防ぐため、SLS は各ログソースが 1 つの収集設定によってのみ収集されるように制限しています:
テキストログファイルは、1 つの Logtail 収集設定にのみ一致できます。
コンテナーの標準出力 (stdout) も、1 つの標準出力収集設定によってのみ収集できます。
Simple Log Service コンソールにログインし、ターゲットプロジェクトに移動します。
左側のナビゲーションウィンドウで、
[Logstores] を選択し、ターゲットの Logstore を見つけます。名前の前にある
をクリックして Logstore を展開します。[Logtail 設定] をクリックします。設定リストで、ターゲットの Logtail 設定を見つけ、[操作] 列の [Logtail 設定の管理] をクリックします。
Logtail 設定ページで、[編集] をクリックし、[入力設定] セクションまでスクロールダウンします:
テキストファイルログを収集する場合: [ファイルを複数回収集することを許可] を有効にします。
コンテナーの標準出力を収集する場合: [異なる Logtail 設定による収集を許可] を有効にします。
付録: 正規表現の制限 (コンテナーフィルタリング)
コンテナーフィルタリングの正規表現は、Go RE2 エンジンに基づいています。RE2 エンジンは、Perl 互換正規表現 (PCRE) などの他のエンジンと比較していくつかの構文上の制限があります。正規表現を記述する際には、次の点に注意してください:
1. 名前付きグループの構文の違い
Go は (?P<name>...) 構文を使用して名前付きグループを定義し、PCRE の (?<name>...) 構文はサポートしていません。
正しい:
(?P<year>\d{4})誤り:
(?<year>\d{4})
2. サポートされていない正規表現機能
以下の一般的で複雑な正規表現機能は RE2 ではサポートされていません。これらの使用は避けてください:
アサーション:
(?=...),(?!...),(?<=...),(?<!...)条件式:
(?(condition)true|false)再帰的マッチング:
(?R),(?0)サブルーチン参照:
(?&name),(?P>name)アトミックグループ:
(?>...)
3. 推奨事項
Regex101 などのツールを使用して正規表現をデバッグします。互換性を検証するには、Golang (RE2) モードを選択します。プラグインは、サポートされていない構文を含む式を解析またはマッチングできません。






