このトピックでは、ClusterAliyunPipelineConfig を使用してログ収集ルールを定義するための YAML ファイルの構造とフィールドについて説明します。
仕組み
CustomResource (CR) の作成:
ClusterAliyunPipelineConfigYAML ファイルで収集ルールを定義し、kubectlを使用して送信します。コントローラーによる変更の監視: loongcollector-operator は、クラスター内の CR の変更を継続的に監視します。
構成の同期: CR の変更を検出すると、オペレーターはそれを Logtail 構成に変換し、指定されたプロジェクトに同期します。
コレクターによる構成のプル: loongcollector-ds は、Simple Log Service (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 を作成する必要があります。
パラメーター | データの型 | 必須 | 説明 |
name | string | はい | 宛先プロジェクトの名前。プロジェクトが存在しない場合は、自動的に作成されます。 |
description | string | いいえ | プロジェクトの説明。このパラメーターは、プロジェクトが作成されるときにのみ有効になります。 |
endpoint | string | いいえ | プロジェクトが配置されているリージョンの エンドポイント。デフォルト値はクラスターのリージョンです。
|
uid | string | いいえ | 宛先プロジェクトが属する Alibaba Cloud アカウントの UID。デフォルト値は、現在のクラスターが属する Alibaba Cloud アカウントの UID です。
|
spec.config
入力、処理、出力プラグインを含む収集パイプラインを定義します。
サブパラメーター | タイプ | 必須 | 説明 |
| string | いいえ | ログサンプル。複数のログがサポートされています。合計長は 1,500 バイトを超えることはできません。 |
| object | いいえ | |
| オブジェクトのリスト | はい | 入力プラグインのリスト。現在、1 つの入力プラグインのみが許可されています。 |
| オブジェクトのリスト | いいえ | 処理プラグインのリスト: |
| オブジェクトのリスト | はい | 出力プラグインのリスト。現在、1 つの |
spec.logstores
任意。自動的に作成される Logstore を宣言します。次の動作に注意してください。
作成時にのみ有効: これらの設定は、新しい Logstore を作成する場合にのみ適用されます。Logstore が既に存在する場合、これらは無視されます。
データ宛先を決定しない: このリストは、ログの宛先 Logstore を制御しません。実際の宛先は、
config.flushersの出力プラグイン (例:flusher_sls) によって決定されます。任意設定: 宛先 Logstore が既に存在する場合、ここで定義する必要はありません。
追加/削除のみ: このリストから Logstore を追加または削除できますが、既存のものを変更することはできません。Logstore のプロパティ (
ttlやシャード数など) を変更するには、SLS コンソールまたは API を使用します。
パラメーター | データの型 | 必須 | 説明 |
name | string | はい | 作成する Logstore の名前。 |
queryMode | string | いいえ | Logstore タイプ。デフォルト値は
|
ttl | int | いいえ | 日単位の データ保持期間。有効な値: 1~3650。デフォルト値は 30 です。3650 の値は永続的なストレージを示します。 |
hotTtl | int | いいえ | 日単位の ホットデータストレージ期間。デフォルト値は 0 です。値は ttl 未満で、7 以上である必要があります。 |
shardCount | int | いいえ | シャードの数。デフォルト値は 2 です。有効な値: 1~100。 |
maxSplitShard | int | いいえ | 自動的に分割できるシャードの最大数。デフォルト値は 64 です。有効な値: 1~256。 |
autoSplit | bool | いいえ | 自動シャード分割を有効にするかどうかを指定します。デフォルト値は true です。 |
telemetryType | string | いいえ | 観測可能なデータの型。デフォルト値は None です。有効な値:
|
appendMeta | bool | いいえ | パブリック IP アドレスとログ受信時刻を記録するかどうかを指定します。デフォルト値は true です。
|
enableTracking | bool | いいえ | Web トラッキング機能を有効にするかどうかを指定します。デフォルト値は false です。 |
encryptConf | object | いいえ | 暗号化構成のデータ構造。これには、 |
meteringMode | string | いいえ | 課金モード。詳細については、「Logstore の管理」をご参照ください。デフォルト値は空です。有効な値:
説明 Logstore の queryMode が query に設定されている場合、機能課金のみがサポートされます。 アカウントでデータ量課金が有効になっていない場合、このパラメーターを ChargeByDataIngest に設定することはできません。 |
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リソースをクラスターから自動的に削除します。移行の完了
これにより、以前のメソッドから新しいメソッドへの移行が完了します。