構造化された YAML ファイルでログ収集ルールを定義し、kubectl を使用してファイルを送信することで、ClusterAliyunPipelineConfig を作成します。このトピックでは、YAML ファイルの構造とフィールド定義について説明します。
カスタムリソース (CR) は、カスタムリソース定義 (CRD) を使用して作成された収集設定の信頼できる唯一の情報源です。Simple Log Service (SLS) コンソールでこれらの設定を変更しないでください。コンソールで行われた変更は CR によって上書きされ、データ形式のエラーやデータ損失が発生する可能性があります。
仕組み
-
CR の作成:
ClusterAliyunPipelineConfigYAML ファイルで収集ルールを定義し、kubectl を使用してファイルを送信します。 -
コントローラーによる変更の監視: loongcollector-operator は、クラスター内の CR の変更を継続的に監視します。
-
設定の同期: CR への変更が検出されると、オペレーターは CR を特定の設定に変換し、指定されたプロジェクトに送信します。
-
コレクターによる最新設定の取得: loongcollector-ds は定期的に SLS にハートビートを送信して最新の収集設定を取得し、ホットリロードします。
-
収集とレポートの開始: 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 の作成後に変更できません。別のプロジェクトに切り替えるには、新しい CR を作成する必要があります。
|
パラメーター |
データ型 |
必須 |
説明 |
|
name |
string |
はい |
宛先プロジェクトの名前です。プロジェクトが存在しない場合は、自動的に作成されます。 |
|
description |
string |
いいえ |
プロジェクトの説明です。このパラメーターは、プロジェクトの作成時にのみ有効です。 |
|
endpoint |
string |
いいえ |
プロジェクトが存在するリージョンの エンドポイント です。デフォルト値はクラスターのリージョンです。
|
|
uid |
string |
いいえ |
宛先プロジェクトが属する Alibaba Cloud アカウントの UID です。デフォルト値は、現在のクラスターが属する Alibaba Cloud アカウントの UID です。
|
spec.config
収集設定の本体で、入力、処理、出力プラグインを定義します。
|
サブフィールド |
タイプ |
必須 |
説明 |
|
|
string |
いいえ |
ログサンプルです。複数のログを指定できます。合計長は 1,500 バイトを超えることはできません。 |
|
|
object |
いいえ |
|
|
|
オブジェクトのリスト |
はい |
入力プラグインのリストです。入力プラグインは 1 つのみ指定できます。 |
|
|
オブジェクトのリスト |
いいえ |
処理プラグインのリスト: |
|
|
オブジェクトのリスト |
はい |
出力プラグインのリストです。現在、 |
spec.LogStores
オプションです。自動作成する Logstore を宣言します。次の点に注意してください。
-
作成時にのみ有効:
nameを除くすべてのパラメーターは、Logstore の作成時にのみ適用されます。Logstore が既に存在する場合、システムはこれらの設定を無視し、既存の Logstore プロパティを変更しません。 -
データ宛先を決定しない: このリストはログの宛先 Logstore を決定しません。実際の宛先は
config.flushersの出力プラグイン (flusher_slsなど) によって決定されます。 -
オプション設定: 宛先 Logstore が既に存在する場合、この設定に含める必要はありません。
-
追加および削除操作のみをサポート: リストに新しい Logstore を追加したり、リストから項目を削除したりできます。ただし、TTL やシャード数など、既存の Logstore のプロパティを変更するためにこの設定を修正することはできません。これらのプロパティを変更するには、コンソールまたは API を使用します。
|
パラメーター |
データ型 |
必須 |
説明 |
|
name |
string |
はい |
作成する Logstore の名前です。 |
|
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 |
いいえ |
観測可能なデータのタイプ。デフォルト値は
|
|
appendMeta |
bool |
いいえ |
パブリック IP アドレスとログ受信時刻を記録するかどうかを指定します。デフォルト値は true です。
|
|
enableTracking |
bool |
いいえ |
Web トラッキングを有効にするかどうかを指定します。デフォルト値は false です。 |
|
encryptConf |
object |
いいえ |
暗号化設定データ構造です。 |
|
meteringMode |
string |
いいえ |
課金モードです。詳細については、「Logstoreの管理」をご参照ください。このフィールドはデフォルトで空です。有効な値:
説明
queryMode が query に設定された Logstore は、機能別課金モードのみをサポートします。 アカウントで取り込みデータ量課金が有効になっていない場合、このパラメーターを 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.configName -
AliyunPipelineConfig:metadata.name
-
アップグレードプロセス:
-
新しい設定の適用: コントローラーは
ClusterAliyunPipelineConfigを適用して、ログ収集設定を更新します。 -
レガシー設定の削除: 更新が成功した後、コントローラーは対応するレガシー
AliyunLogConfigリソースをクラスターから自動的に削除します。 -
移行完了: レガシー設定から新しい設定への移行が完了します。