ログを収集するには、ClusterAliyunPipelineConfig を使用し、構造化された YAML ファイルで収集ルールを定義してから、kubectl を使用してそのファイルを送信します。本トピックでは、YAML ファイルの構造および各フィールドの定義について説明します。
カスタムリソース (CR) は、カスタムリソース定義 (CRD) を使用して作成された収集設定の唯一の情報源です。Simple Log Service コンソールでこれらの設定を変更しないでください。コンソールでの変更は CR によって上書きされ、データ形式エラーまたはデータ損失を引き起こす可能性があります。
仕組み
CR の作成:
ClusterAliyunPipelineConfigYAML ファイルで収集ルールを定義し、kubectl を使用してファイルを送信します。コントローラーによる変更の監視: loongcollector-operator がクラスター内の CR を継続的に監視し、変更を検出します。
構成の同期: CR の変更を検出すると、オペレーターは CR を特定の構成に変換し、指定されたプロジェクトに送信します。
コレクターによる最新構成の取得: loongcollector-ds が定期的に Simple Log Service へハートビートを送信し、最新の収集構成をプルしてホットリロードします。
収集およびレポートの開始: loongcollector-ds が最新の構成に基づいてログを収集し、設定済みのエンドポイントを使用して SLS へ送信します。
基本フィールド
すべての構成は、以下の API バージョンおよびリソースタイプの定義から開始する必要があります:
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig構造の例
apiVersion: telemetry.alibabacloud.com/v1alpha1 # デフォルト値を使用します。変更しないでください。
kind: ClusterAliyunPipelineConfig # デフォルト値を使用します。変更しないでください。
metadata:
name: test-config # リソース名を設定します。現在の Kubernetes クラスター内で一意である必要があります。
spec:
project: # 送信先プロジェクトの名前を設定します。
name: k8s-your-project
config: # Logtail 収集構成を設定します。
inputs: # Logtail 収集構成の入力プラグインを設定します。
...
flushers: # Logtail 収集構成の出力プラグインを設定します。
...主要パラメーター
metadata.name
収集設定の名前です。このパラメーターは必須です。プロジェクト内で一意である必要があり、作成後に変更できません。
命名規則:
| 例: |
spec.project
対象のプロジェクトを指定します。
CR の作成後は、project フィールドを変更できません。別のプロジェクトに切り替えるには、新しい CR を作成する必要があります。
パラメーター | データ型 | 必須 | 説明 |
name | string | はい | 送信先プロジェクトの名前です。プロジェクトが存在しない場合は、自動的に作成されます。 |
description | string | いいえ | プロジェクトの説明です。このパラメーターは、プロジェクトが新規作成される場合にのみ有効です。 |
endpoint | string | いいえ | プロジェクトが配置されているリージョンのエンドポイントです。デフォルト値はクラスターのリージョンです。
|
uid | string | いいえ | 送信先プロジェクトの所有者である Alibaba Cloud アカウントの UID です。デフォルト値は、現在のクラスターが属する Alibaba Cloud アカウントの UID です。
|
spec.config
収集構成の本文を指定します。入力、処理、および出力プラグインを定義します。
サブフィールド | 型 | 必須 | 説明 |
| string | いいえ | ログサンプルです。複数のログを指定できます。合計長は 1,500 バイトを超えてはなりません。 |
| object | いいえ | グローバル構成です。 |
| オブジェクトのリスト | はい | 入力プラグインのリストです。1 つの入力プラグインのみ許可されます。 |
| オブジェクトのリスト | いいえ | 処理プラグインのリストです: |
| オブジェクトのリスト | はい | 出力プラグインのリストです。現在、 |
spec.LogStores
任意です。自動的に作成するログストアを宣言します。以下の点にご注意ください。
作成時のみ有効:
nameを除くすべてのパラメーターは、ログストアの作成時にのみ適用されます。ログストアが既に存在する場合、これらの設定は無視され、既存のログストアのプロパティは変更されません。データ送信先を決定しない: このリストは、ログの送信先ログストアを決定しません。実際の送信先は、
config.flushers内の出力プラグイン(例:flusher_sls)によって決定されます。任意の構成: 送信先ログストアが既に存在する場合は、この構成に含める必要はありません。
追加および削除操作のみサポート: 新しいログストアをリストに追加したり、リストから項目を削除したりできます。ただし、既存のログストアの TTL やシャード数などのプロパティを変更するためにこの構成を修正することはできません。これらのプロパティを変更するには、コンソールまたは API オペレーションを使用してください。
パラメーター | データ型 | 必須 | 説明 |
name | string | はい | 作成するログストアの名前です。 |
queryMode | string | いいえ | Logstore の仕様です。デフォルト値は
|
ttl | int | いいえ | データ保持期間(日単位)です。有効な値は 1~3650 です。デフォルト値は 30 です。3650 を指定すると、永続保存となります。 |
hotTtl | int | いいえ | ホットデータ保存期間(日単位)です。デフォルト値は 0 です。値は ttl より小さく、かつ 7 以上である必要があります。 |
infrequentAccessTTL |
int |
いいえ |
対象 LogStore の低頻度アクセス保存期間(日単位)です。デフォルト値は 0 です。値は 30 以上かつ ttl より小さく、hotTtl パラメーターが指定されている必要があります。hotTtl + infrequentAccessTTL が ttl と等しくない場合、次の条件も満たす必要があります: |
shardCount | int | いいえ | シャード数です。デフォルト値は 2 です。有効な値は 1~100 です。 |
maxSplitShard | int | いいえ | 自動分割可能なシャードの最大数です。デフォルト値は 64 です。有効な値は 1~256 です。 |
autoSplit | bool | いいえ | 自動シャード分割を有効にするかどうかを指定します。デフォルト値は true です。 |
telemetryType | string | いいえ | 観測可能なデータの種類です。デフォルト値は None です。有効な値は以下のとおりです。
|
appendMeta | bool | いいえ | パブリック IP アドレスおよびログ受信時刻を記録するかどうかを指定します。デフォルト値は true です。
|
enableTracking | bool | いいえ | ウェブトラッキング機能を有効にするかどうかを指定します。デフォルト値は false です。 |
encryptConf | object | いいえ | 暗号化構成のデータ構造です。 |
meteringMode | string | いいえ | 課金モードです。詳細については、「ログストアの管理」をご参照ください。このフィールドはデフォルトで空です。有効な値は以下のとおりです。
説明 queryMode が query に設定されたログストアは、機能別課金モードのみをサポートします。 取り込みデータ量課金がお客様のアカウントで有効になっていない場合、このパラメーターを ChargeByDataIngest に設定することはできません。 |
index |
object |
いいえ |
インデックス構成です。このパラメーターは、LogStore の作成時のみ適用されます。フォーマットについては、「index」をご参照ください。この機能を利用するには、 |
spec.machineGroups
この収集構成を使用できるマシングループを指定します。
デフォルト動作: LoongCollector をインストールすると、システムが自動的に
k8s-group-${clusterId}という名前のマシングループを作成します。machineGroupsパラメーターを明示的に指定しない場合、この収集構成はデフォルトでそのマシングループに関連付けられます。同期メカニズム:
loongcollector-operatorは、収集構成に関連付けられたマシングループがmachineGroupsで定義されたリストと厳密に一致することを保証します。リストに含まれていないマシングループは、システムが自動的に関連付けを解除します。自動作成のサポート: 指定されたマシングループが存在しない場合、システムは同じ名前の識別子ベースのマシングループを自動的に作成し、現在の収集構成にアタッチします。
パラメーター | データ型 | 必須 | 説明 |
name | string | いいえ | 関連付けるマシングループの名前です。 |
spec.enableUpgradeOverride
任意です。システムが以前の構成を上書き可能かどうかを指定します。このパラメーターは、異なるバージョンの収集構成間で発生する競合を解決するために使用します。デフォルト値は false です。
true:loongcollector-operatorが、AliyunLogConfig で定義された既存の収集構成を上書き・アップグレードします。false: 収集構成に競合がある場合、AliyunPipelineConfig の適用は失敗します。
競合の発生シナリオ: クラスター内に収集構成を定義する AliyunLogConfig リソースが既に存在し、同じ収集構成を参照する AliyunPipelineConfig を適用しようとした場合に競合が発生します。
同一収集構成の定義:
同一プロジェクト
AliyunLogConfig: クラスターのデフォルトプロジェクト、またはspec.projectを使用AliyunPipelineConfig:spec.project.nameを使用
同一収集構成名
AliyunLogConfig:spec.logtailConfig.configNameAliyunPipelineConfig:metadata.name
アップグレード手順:
-
新規構成の適用: コントローラーが
ClusterAliyunPipelineConfigを適用して、ログ収集構成を更新します。 -
旧構成の削除: 更新が正常に完了した後、コントローラーがクラスターから対応する旧式の
AliyunLogConfigリソースを自動的に削除します。 -
移行完了: 旧式構成から新規構成への移行が完了します。