AliyunPipelineConfig は、Kubernetes の YAML ファイルを通じて Logtail 収集設定を管理できる、Simple Log Service (SLS) のカスタムリソース (CRD) です。
前提条件
Logtail コンポーネント v0.5.1 以降がインストールされていること。詳細については、「ACK クラスターへの Logtail コンポーネントのインストール」および「セルフマネージド Kubernetes クラスターへの Logtail コンポーネントのインストール」をご参照ください。
対象のコンテナーがログを生成していること。
重要Logtail は増分ログのみを収集します。構成の配信後にログファイルが更新されない場合、Logtail はそのファイルをスキップします。詳細については、「ログの読み取り」をご参照ください。
操作手順
alibaba-log-controller は、AliyunPipelineConfig で定義された Logtail 収集設定を定期的にサーバーと同期します。カスタムリソースで作成した設定を変更する場合は、カスタムリソースを直接更新してください。コンソールで作成した設定はカスタムリソースによって上書きされるため、いずれか一方の管理方法のみを使用してください。
iLogtail 収集設定の作成
AliyunPipelineConfig カスタムリソースを作成します。alibaba-log-controller コンポーネントが、対応する Logtail 収集設定を自動的に作成し、適用します。
手順:
cube.yamlファイルを作成します。ファイル名は必要に応じて変更してください。
vim cube.yamlYAML ファイルに以下の内容を追加し、必要に応じてパラメータを設定します。カスタムリソースのパラメータ詳細については、「カスタムリソースのパラメータ」をご参照ください。
apiVersion: telemetry.alibabacloud.com/v1alpha1 # 固定値です。変更しないでください。
kind: ClusterAliyunPipelineConfig # 固定値です。変更しないでください。
metadata:
name: test-config # リソース名を指定します。現在の Kubernetes クラスター内で一意である必要があります。
spec:
project: # 送信先プロジェクト名を設定します。
name: k8s-your-project
config: # iLogtail 収集設定を定義します。
inputs: # 入力プラグインを指定します。
...
flushers: # フラッシャーを指定します。
...AliyunPipelineConfigカスタムリソースを適用します。alibaba-log-controllerが Logtail 収集設定を作成し、データ収集を開始します。cube.yamlは実際のファイル名に置き換えてください。
kubectl apply -f cube.yamliLogtail 収集設定の表示
クラスター内のすべての
AliyunPipelineConfig構成を一覧表示します。次のコマンドを実行して、
AliyunPipelineConfigで作成されたすべての構成を表示します。kubectl get clusteraliyunpipelineconfigs特定の
AliyunPipelineConfig構成の詳細とステータスを表示します。<config_name>を実際のAliyunPipelineConfigの名前に置き換えてください。kubectl get clusteraliyunpipelineconfigs <config_name> -o yaml出力の status フィールドを確認して、構成が適用されていることを確認してください。
apiVersion: telemetry.alibabacloud.com/v1alpha1 kind: ClusterAliyunPipelineConfig metadata: creationTimestamp: null finalizers: - finalizer.pipeline.alibabacloud.com name: example-config # 期待される構成 spec: config: flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls inputs: - FilePaths: - /var/log/*.log Type: input_file processors: - SourceKey: content Type: processor_parse_json_native logstores: - name: example-config-logstore project: name: k8s-log-clusterid # 適用ステータス status: # カスタムリソースが正常に適用されたかどうか success: true # カスタムリソースの現在のステータスメッセージ message: success # 現在のステータスの更新時刻 lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # 最後に正常に適用された構成情報。この構成にはデフォルト値が入力されており、現在有効な構成です。 lastAppliedConfig: # 最後に正常に適用された時刻 appliedTime: "2024-06-13T12:02:19.133422+08:00" # 最後に正常に適用された構成の詳細 config: configTags: sls.crd.cluster: clusterid sls.crd.kind: ClusterAliyunPipelineConfig sls.logtail.channel: CRD flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls global: null inputs: - FilePaths: - /var/log/*.log Type: input_file name: example-config processors: - SourceKey: content Type: processor_parse_json_native logstores: - appendMeta: true autoSplit: true encryptConf: {} maxSplitShard: 64 name: example-config-logstore shardCount: 2 ttl: 30 machineGroups: - name: k8s-group-clusterid project: description: k8s log project, created by alibaba cloud log controller endpoint: cn-hangzhou.log.aliyuncs.com name: k8s-log-clusterid
iLogtail 収集設定の更新
既存の AliyunPipelineConfig YAML ファイルを変更し、再度適用します。
AliyunPipelineConfigファイルを編集します。cube.yamlは実際のファイル名に置き換えてください。
vim cube.yamlYAML ファイル内の構成パラメータを変更します。
更新した構成を適用します。
cube.yamlは実際のファイル名に置き換えてください。
kubectl apply -f cube.yamliLogtail 収集設定の削除
対応するカスタムリソースを削除してください。<config_name> を実際の AliyunPipelineConfig の名前に置き換えてください。
kubectl delete clusteraliyunpipelineconfigs <config_name>削除後、カスタムリソースは削除されます。
カスタムリソースのパラメータ
apiVersion
値は
telemetry.alibabacloud.com/v1alpha1に固定されています。kind
値は
ClusterAliyunPipelineConfigに固定されています。metadata
パラメータ
データ型
必須
説明
name
string
はい
カスタムリソースの識別子であり、iLogtail 収集設定名としても使用されます。
注意:
プロジェクト内で一意である必要があり、作成後は変更できません。要件:
小文字、数字、ハイフン (-)、アンダースコア (_) のみを含むことができます。
小文字または数字で始まり、小文字または数字で終わる必要があります。
長さ: 2 ~ 128 文字。
spec
パラメータ
データ型
必須
説明
project
はい
送信先プロジェクト情報。
説明カスタムリソースの作成後は変更できません。プロジェクトを切り替えるには、新しいカスタムリソースを作成してください。
config
はい
iLogtail 収集設定の詳細。
logstores
いいえ
作成する Logstore。
説明name 以外のすべてのパラメータは、Logstore の作成時にのみ有効です。
このリストは Logstore を作成するのみで、送信先 Logstore を設定するものではありません。送信先は、config 内の flusher プラグインによって決定されます。送信先 Logstore が既に存在する場合は、このリストを空のままにしてください。
Logstore の定義を追加または削除できますが、既存の定義を変更することはできません。
machineGroups
いいえ
構成に関連付けるマシングループ。
k8s-group-${your_k8s_cluster_id}という名前のデフォルトグループが、logtail-dsのインストール時に SLS によって自動作成されます。デフォルトでは、リストにはこのマシングループのみが含まれます。説明alibaba-log-controller は、リストに記載されているマシングループのみが関連付けられていることを保証します。リストに記載されていないグループは関連付けが解除されます。
enableUpgradeOverride
bool
いいえ
デフォルト値: false。クラスター内の AliyunLogConfig がこの AliyunPipelineConfig と同じ iLogtail 構成を指している場合:
true: alibaba-log-controller は既存の AliyunLogConfig で定義された構成を上書きします。
false: 競合が発生し、AliyunPipelineConfig の適用が失敗します。
説明同じ iLogtail 収集設定を指す定義:
送信元プロジェクトと送信先プロジェクトが同じである。
AliyunLogConfig の場合、プロジェクトはクラスターのデフォルトプロジェクトまたは spec.project です。AliyunPipelineConfig の場合、プロジェクトは spec.project.name です。
iLogtail 収集設定名が同じである。
AliyunLogConfig では、パラメータは spec.logtailConfig.configName です。AliyunPipelineConfig では、パラメータは metadata.Name です。
上書きアップグレードの定義:
まず、AliyunPipelineConfig が有効になり、iLogtail 収集設定を更新します。
次に、AliyunPipelineConfig が正常に適用されると、システムは同じ iLogtail 収集設定を指すクラスター内の AliyunLogConfig を削除します。
最後に、上書きアップグレードが完了します。
PipelineProject
説明カスタムリソースの作成後は変更できません。プロジェクトを切り替えるには、新しいカスタムリソースを作成してください。
パラメータ
データ型
必須
説明
name
string
はい
送信先プロジェクト名。
説明プロジェクトが存在しない場合、SLS が自動的に作成します。
description
string
いいえ
プロジェクトの説明。
説明プロジェクトの作成時にのみ有効です。
endpoint
string
いいえ
送信先プロジェクトのサービスエンドポイント。詳細については、「エンドポイント」をご参照ください。デフォルトでは、現在のクラスターが存在するリージョンのエンドポイントが使用されます。送信先プロジェクトとクラスターが異なるリージョンにある場合は、このパラメータを設定してください。
説明このパラメータは収集設定のリージョンのみを制御します。iLogtail データをこのリージョンに配信するには、iLogtail の config_server_address と data_server_list を別途設定してください。詳細については、「Logtail 構成ファイルとレコードファイル」をご参照ください。
uid
string
いいえ
送信先アカウント UID。デフォルトは現在のクラスターのアカウントです。クロスアカウントデータ転送の場合は、このパラメータを設定し、対応する環境変数を構成してください:
alibaba-log-controller を使用する場合は、
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}を設定します。loongcollector-operator を使用する場合は、
GLOBAL_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}を設定します。
説明これはプロジェクト所有者アカウントのみを制御します。iLogtail データをこのアカウントに配信するには、iLogtail のユーザー ID を別途設定する必要があります。詳細については、「ユーザー ID の構成」をご参照ください。
PipelineConfig
パラメータは CreateLogtailPipelineConfig API に従います。configName は
metadata.nameを使用し、個別に設定することはできません。パラメータ
データ型
必須
説明
sample
string
いいえ
ログサンプル。複数のログをサポートし、合計最大 1,500 バイトです。
global
object
いいえ
グローバル構成。詳細については、「リクエストパラメータ」をご参照ください。
inputs
object list
はい
入力プラグインのリスト。「リクエストパラメータ」に従って構成してください。
説明入力プラグインは 1 つのみ許可されます。
processors
object list
いいえ
処理プラグインのリスト。「リクエストパラメータ」に従って構成してください。
aggregators
object list
いいえ
集約プラグインのリスト。「リクエストパラメータ」に従って構成してください。
flushers
object list
はい
フラッシャーのリスト。「リクエストパラメータ」に従って構成してください。
説明flusher_sls プラグインは 1 つのみ許可されます。
configTags
map
いいえ
iLogtail 収集設定のカスタムタグ。
PipelineLogstore
説明name 以外のすべてのパラメータは、Logstore の作成時にのみ有効です。
パラメータ
データ型
必須
説明
name
string
はい
Logstore 名。
queryMode
string
いいえ
送信先 Logstore のタイプ。詳細については、「コアコンセプト」をご参照ください。デフォルト: standard。有効な値:
query: Query Logstore
standard: Standard Logstore
ttl
int
いいえ
データ保持期間 (日数)。詳細については、「Logstore の管理」をご参照ください。デフォルト: 30。有効な値: 1 ~ 3650。3650 は永続保存を示します。
hotTtl
int
いいえ
ホットデータストレージの保持期間 (日数)。デフォルト: 0。ttl より小さく、7 以上である必要があります。
infrequentAccessTTL
int
いいえ
日数単位の IA ストレージ期間です。デフォルトは 0 です。
hotTtlが必要です。値はttl未満、かつ 30 以上である必要があります。hotTtl+infrequentAccessTTLがttlと等しくない場合、ttl-(hotTtl+infrequentAccessTTL)も 60 以上である必要があります。loongcollector-operatorv1.0.6 以降が必要です。shardCount
int
いいえ
シャード数。詳細については、「Logstore の管理」をご参照ください。デフォルト: 2。有効な値: 1 ~ 100。
maxSplitShard
int
いいえ
シャードの自動分割における最大シャード数。詳細については、「Logstore の管理」をご参照ください。デフォルト: 64。有効な値: 1 ~ 256。
autoSplit
bool
いいえ
シャードの自動分割を有効にします。詳細については、「Logstore の管理」をご参照ください。デフォルト: true。
telemetryType
string
いいえ
可観測性データのタイプ。詳細:「Logstore の作成」をご参照ください。デフォルト: None。有効な値:
None: ログタイプ。
Metrics: メトリックタイプ。
appendMeta
bool
いいえ
パブリック IP アドレスの記録を有効にします。詳細については、「Logstore の管理」をご参照ください。デフォルト: true。
enableTracking
bool
いいえ
Web Tracking を有効にします。詳細については、「Logstore の管理」をご参照ください。デフォルト: false。
encryptConf
object
いいえ
暗号化構成。詳細については、「EncryptConf」をご参照ください。デフォルト: 空。
meteringMode
string
いいえ
課金モード。詳細については、「Logstore の管理」をご参照ください。デフォルト: 空。有効な値:
ChargeByFunction: 機能別課金
ChargeByDataIngest: 取り込みデータ量課金
説明Logstore の queryMode が query の場合、ChargeByFunction のみがサポートされます。
アカウントで取り込みデータ量課金が有効になっていない場合、このパラメータを ChargeByDataIngest に設定することはできません。
index
object
いいえ
インデックス構成。Logstore の作成時にのみ有効です。形式:「index」。
loongcollector-operatorv1.0.6 以降が必要です。PipelineMachineGroup
パラメータ
データ型
必須
説明
name
string
はい
構成に関連付けるマシングループ名。
説明マシングループが存在しない場合、alibaba-log-controller は識別子ベースのマシングループを自動作成します。詳細については、「カスタム識別子ベースのマシングループの作成」をご参照ください。作成時にのみ有効です。