AliyunPipelineConfig は、Simple Log Service が提供するカスタムリソース定義 (CRD) です。YAML ファイルからカスタムリソース (CR) を作成して、Logtail 収集構成を管理できます。このトピックでは、AliyunPipelineConfig を使用して Logtail 収集構成を管理する方法について説明します。
前提条件
バージョン 0.5.1 以降の Logtail コンポーネントがインストールされていること。詳細については、「Container Service for Kubernetes (ACK) クラスターへの Logtail コンポーネントのインストール」および「自己管理型 Kubernetes クラスターへの Logtail コンポーネントのインストール」をご参照ください。
ターゲットコンテナーが継続的にログを生成していること。
重要Logtail は増分ログのみを収集します。Logtail 構成が配信された後にログファイルが更新されない場合、Logtail はそのファイルからログを収集しません。詳細については、「ログの読み取り」をご参照ください。
操作手順
alibaba-log-controller コンポーネントは、AliyunPipelineConfig によって定義された Logtail 収集構成を定期的にサーバーに同期します。CR から作成された Logtail 収集構成を変更するには、対応する CR を更新する必要があります。Simple Log Service コンソールで作成された Logtail 収集構成は CR によって上書きされます。したがって、Logtail 収集構成の管理には、いずれか 1 つの方法のみを使用する必要があります。
iLogtail 収集構成の作成
AliyunPipelineConfig の CR を作成できます。その後、alibaba-log-controller コンポーネントは CR に基づいて Logtail 収集構成を自動的に作成します。構成が作成されると、システムによって自動的に適用されます。
手順:
次のコマンドを実行して、
cube.yamlファイルを作成します。ファイル名は必要に応じて変更できます。
vim cube.yaml次のスクリプトを YAML ファイルに追加し、必要に応じてパラメーターを構成します。CR 構造のパラメーターの詳細については、「CR パラメーター」をご参照ください。
apiVersion: telemetry.alibabacloud.com/v1alpha1 # デフォルト値を使用します。変更しないでください。
kind: ClusterAliyunPipelineConfig # デフォルト値を使用します。変更しないでください。
metadata:
name: test-config # リソース名を設定します。名前は現在の Kubernetes クラスター内で一意である必要があります。
spec:
project: # 宛先プロジェクト名を設定します。
name: k8s-your-project
config: # iLogtail 収集構成を設定します。
inputs: # iLogtail 収集構成の入力プラグインを設定します。
...
flushers: # iLogtail 収集構成の出力プラグインを設定します。
...次のコマンドを実行して、
AliyunPipelineConfigの CR を作成します。alibaba-log-controllerコンポーネントは CR に基づいて Logtail 収集構成を自動的に作成し、その構成が有効になります。Logtail 収集構成が有効になると、Logtail はデータの収集を開始し、そのデータを Simple Log Service に送信します。cube.yamlを実際のファイル名に置き換えてください。
kubectl apply -f cube.yamliLogtail 収集構成の表示
現在の Kubernetes クラスターで
AliyunPipelineConfigを使用して作成されたすべての Logtail 収集構成を表示します。次のコマンドを実行して、
AliyunPipelineConfigによって作成されたすべての Logtail 収集構成を表示します。kubectl get clusteraliyunpipelineconfigsAliyunPipelineConfigを使用して作成された Logtail 収集構成の詳細とステータスを表示します。次のコマンドを実行して構成を表示します。
<config_name>をAliyunPipelineConfigの名前に置き換えてください。kubectl get clusteraliyunpipelineconfigs <config_name> -o yaml出力は次の例のようになります。status フィールドを確認して、Logtail 収集構成が適用されているかどうかを検証できます。
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: # CR が正常に適用されたかどうか success: true # CR の現在のステータスメッセージ 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 ログプロジェクト、alibaba cloud log controller によって作成 endpoint: cn-hangzhou.log.aliyuncs.com name: k8s-log-clusterid
iLogtail 収集構成の更新
Logtail 収集構成を更新するには、既存の AliyunPipelineConfig の YAML ファイルを変更して再適用します。
次のコマンドを実行して、既存の
AliyunPipelineConfigファイルを編集します。cube.yamlを実際のファイル名に置き換えてください。
vim cube.yamlYAML ファイル内の構成パラメーターを変更します。
次のコマンドを実行して、更新された Logtail 収集構成を適用します。
cube.yamlを実際のファイル名に置き換えてください。
kubectl apply -f cube.yamliLogtail 収集構成の削除
Logtail 収集構成を削除するには、対応する CR を削除する必要があります。<config_name> を AliyunPipelineConfig の名前に置き換えてください。
kubectl delete clusteraliyunpipelineconfigs <config_name>Logtail 収集構成が削除されると、CR はリリースされます。
CR パラメーター
apiVersion
値は
telemetry.alibabacloud.com/v1alpha1に固定されています。kind
値は
ClusterAliyunPipelineConfigに固定されています。metadata
パラメーター
データの型
必須
説明
name
string
はい
CR の一意の識別子。これは、作成された iLogtail 収集構成の名前でもあります。
注:
このパラメーターは iLogtail 収集構成名として機能します。プロジェクト内で一意である必要があり、作成後に変更することはできません。値は次の要件を満たす必要があります:
小文字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。
小文字または数字で開始および終了する必要があります。
長さは 2〜128 文字である必要があります。
spec
パラメーター
データの型
必須
説明
project
はい
宛先プロジェクトに関する情報。
説明CR の作成後に project フィールドは変更できません。プロジェクトを切り替えるには、新しい CR を作成する必要があります。
config
はい
iLogtail 収集構成の詳細を定義します。
logstores
いいえ
作成する Logstore のリスト。複数の Logstore を作成できます。
説明name を除くすべてのパラメーターは、Logstore の作成時にのみ有効です。
このリストは iLogtail 収集構成の宛先 Logstore を指定するものではありません。必要に応じて Logstore を作成するだけです。宛先 Logstore は config フィールドのフラッシャープラグインによって決定されます。iLogtail 収集構成で指定された宛先 Logstore がすでに存在する場合、このフィールドは空のままにできます。
このリストでは Logstore 定義の追加または削除のみが可能です。既存の Logstore を変更することはできません。
machineGroups
いいえ
iLogtail 収集構成に関連付けるマシングループのリスト。
logtail-dsコンポーネントをインストールすると、Simple Log Service はk8s-group-${your_k8s_cluster_id}という名前のマシングループを自動的に作成します。デフォルトでは、リストにはこのマシングループのみが含まれます。説明alibaba-log-controller は、iLogtail 収集構成が machineGroups で指定されたマシングループにのみ関連付けられることを保証します。リストにないマシングループは関連付けが解除されます。
enableUpgradeOverride
bool
いいえ
デフォルト値:false。AliyunLogConfig で定義された収集構成がクラスターに存在し、現在の AliyunPipelineConfig と同じ iLogtail 収集構成を指している場合、次のことができます:
このオプションを有効にする:alibaba-log-controller は、既存の AliyunLogConfig で定義された収集構成に対してオーバーライドアップグレードを実行します。
このオプションを無効にする:構成の競合が発生し、AliyunPipelineConfig の適用が失敗します。
説明同じ iLogtail 収集構成を指す定義:
ソースプロジェクトとターゲットプロジェクトが同じであること。
AliyunLogConfig の場合、プロジェクトはクラスターのデフォルトプロジェクトまたは spec.project です。AliyunPipelineConfig の場合、プロジェクトは spec.project.name です。
iLogtail 収集構成名が同じであること。
AliyunLogConfig では、パラメーターは spec.logtailConfig.configName です。AliyunPipelineConfig では、パラメーターは metadata.Name です。
上書きアップグレードの定義:
まず、AliyunPipelineConfig が有効になり、iLogtail 収集構成を更新します。
次に、AliyunPipelineConfig が成功した場合、システムは同じ iLogtail 収集構成を指すクラスター内の AliyunLogConfig を削除します。
最後に、オーバーライドアップグレードが完了します。
PipelineProject
説明CR の作成後に project フィールドは変更できません。別のプロジェクトに切り替えるには、新しい CR を作成する必要があります。
パラメーター
データの型
必須
説明
name
string
はい
宛先プロジェクトの名前。
説明指定されたプロジェクトが存在しない場合、Simple Log Service は自動的に作成します。
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>"}}。説明このパラメーターはプロジェクトを所有するアカウントのみを制御します。このアカウントに iLogtail データを配信するには、iLogtail ユーザー ID を別途構成する必要があります。詳細については、「ユーザー ID の構成」をご参照ください。
PipelineConfig
CreateLogtailPipelineConfig API の要件に基づいてパラメーターを構成します。configName パラメーターは CR の `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 のタイプ。詳細については、「Logstore タイプ」をご参照ください。デフォルト値:standard。有効な値:
query:クエリ Logstore
standard:標準 Logstore
ttl
int
いいえ
宛先 Logstore のデータ保持期間 (日数)。詳細については、「Logstore の管理」をご参照ください。デフォルト値:30。有効な値:1〜3650。値 3650 は永続的な保持を示します。
hotTtl
int
いいえ
ターゲット Logstore のホットデータストレージの保持期間。単位:日。デフォルト値:0。このフィールドの値は ttl フィールドの値より小さく、7 以上である必要があります。
infrequentAccessTTL
int
いいえ
宛先 Logstore の低頻度アクセスストレージ期間 (日数)。デフォルト値は 0 です。
hotTtlパラメーターを指定する必要があります。その値はttlより小さく、30 以上である必要があります。hotTtl+infrequentAccessTTLがttlと等しくない場合、ttl-(hotTtl+infrequentAccessTTL)の値も 60 以上である必要があります。このパラメーターは、loongcollector-operatorコンポーネントのバージョンが 1.0.6 以降の場合にのみ有効です。shardCount
int
いいえ
宛先 Logstore のシャード数。詳細については、「Logstore の管理」をご参照ください。デフォルト値:2。有効な値:1〜100。
maxSplitShard
int
いいえ
宛先 Logstore の自動シャーディングの最大シャード数。詳細については、「Logstore の管理」をご参照ください。デフォルト値:64。有効な値:1〜256。
autoSplit
bool
いいえ
宛先 Logstore の自動シャード分割を有効にするかどうかを指定します。詳細については、「Logstore の管理」をご参照ください。デフォルト値:true。
telemetryType
string
いいえ
宛先 Logstore の観測可能なデータタイプ。詳細については、「Logstore の作成」をご参照ください。デフォルト値:None。有効な値:
None:ログタイプ。
Metrics:メトリックのタイプ。
appendMeta
bool
いいえ
宛先 Logstore のパブリック IP アドレス記録を有効にするかどうかを指定します。詳細については、「Logstore の管理」をご参照ください。デフォルト値:true。
enableTracking
bool
いいえ
宛先 Logstore の Web Tracking を有効にするかどうかを指定します。詳細については、「Logstore の管理」をご参照ください。デフォルト値:false。
encryptConf
object
いいえ
宛先 Logstore の暗号化構成情報。詳細については、「EncryptConf」をご参照ください。デフォルト値:空。
meteringMode
string
いいえ
宛先 Logstore の課金モード。詳細については、「Logstore の管理」をご参照ください。デフォルト値:空。有効な値:
ChargeByFunction:関数による支払い
ChargeByDataIngest:取り込みデータ量による支払い
説明Logstore の queryMode が query の場合、ChargeByFunction のみがサポートされます。
アカウントで取り込みデータ量による支払いが有効になっていない場合、このパラメーターを ChargeByDataIngest に設定することはできません。
index
object
いいえ
インデックスを指定します (Logstore 作成時にのみ有効)。フォーマットについては、共通データ形式の「index」をご参照ください。このパラメーターは、loongcollector-operator コンポーネントのバージョンが 1.0.6 以降の場合にのみ有効です。
PipelineMachineGroup
パラメーター
データの型
必須
説明
name
string
はい
iLogtail 収集構成に関連付けるマシングループの名前。
説明マシングループが存在しない場合、alibaba-log-controller は ID と同じ名前の ID ベースのマシングループを自動的に作成します。詳細については、「カスタム ID ベースのマシングループの作成」をご参照ください。この動作はマシングループの作成時にのみ有効です。