Simple Log Serviceは、AliyunPipelineConfigという名前のCustomResourceDefinition (CRD) を定義します。YAMLファイルを構成して、CRDからCustomResource (CR) を作成し、Logtail構成を管理できます。 このトピックでは、AliyunPipelineConfigを使用してLogtail構成を管理する方法について説明します。
前提条件
LogtailコンポーネントV0.5.1以降がインストールされています。 詳細については、「ACKクラスターへのLogtailコンポーネントのインストール」および「セルフマネージドKubernetesクラスターへのLogtailコンポーネントのインストール」をご参照ください。
ログを収集するコンテナーは、継続的にログを生成します。
重要Logtailは増分ログのみを収集します。 適用されたLogtail設定がサーバーに配信された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。
手順
Logtail構成を作成するには、AliyunPipelineConfig CRDからCRを作成します。 alibaba-log-controllerコンポーネントは、このタイプのLogtail設定をSimple Log Serviceに定期的に同期します。 このタイプのLogtail設定を変更する場合は、関連するCRを変更する必要があります。 Simple Log Serviceコンソールから作成されたLogtail設定は、CRによって上書きされます。 Logtail設定の管理には、常にCRを使用することを推奨します。
Logtail設定の作成
AliyunPipelineConfig CRDからCRを作成する必要があります。 次に、alibaba-log-controllerコンポーネントは、CRに基づいてLogtail設定を自動的に作成します。 Logtail設定が作成されると、自動的に適用され、LogtailはLogtail設定に基づいてSimple Log Serviceへのログの収集を開始します。
次のコマンドを実行して、
cube. YAMLという名前のyamlファイルを作成します。 ビジネス要件に基づいて別のファイル名を指定できます。
vim cube.yamlYAMLファイルに次のスクリプトを入力し、ビジネス要件に基づいてパラメーターを設定します。 CRパラメーターの詳細については、「CRパラメーター」をご参照ください。
apiVersion: telemetry.alibabacloud.com/v1alpha1 # The default value is used. You do not need to modify this parameter.
kind: ClusterAliyunPipelineConfig # The default value is used. You do not need to modify this parameter.
metadata:
name: test-config # The name of the resource. The name must be unique in the current Kubernetes cluster.
spec:
project: # The name of the Logstore.
name: k8s-your-project
config: # The Logtail configuration.
inputs: # The input plug-ins of the Logtail configuration.
...
flushers: # The output plug-ins of the Logtail configuration.
...次のコマンドを実行して、
AliyunPipelineConfigCRDからCRを作成します。alibaba-log-controllerコンポーネントは、CRに基づいてLogtail設定を作成します。 次に、Logtail設定が自動的に適用されます。 Logtail設定が適用されると、LogtailはSimple Log Serviceへのログの収集を開始します。 次のコマンドで、cube.yamlはサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
kubectl apply -f cube.yamlLogtail設定の表示
AliyunPipelineConfigCRDのCRに基づいて、現在のKubernetesクラスターで作成されたすべてのLogtail設定を表示します。次のコマンドを実行して、Logtail設定を表示できます。
kubectl get clusteraliyunpipelineconfigsAliyunPipelineConfigCRDのCRに基づいて作成されたLogtail構成の詳細な設定とステータスを表示します。次のコマンドを実行して、Logtail設定を表示できます。 このコマンドでは、
<config_name>は必要なCRの名前です。 ビジネス要件に基づいて別の名前を指定できます。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 # The expected configuration. 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 # The application status. status: # Whether the Logtail configuration is applied. success: true # The status message. message: success # The update time of the current status. lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # The Logtail configuration that was previously applied. Default values are used in the Logtail configuration. lastAppliedConfig: # The point in time at which the Logtail configuration was previously applied. appliedTime: "2024-06-13T12:02:19.133422+08:00" # The detailed settings of the Logtail configuration that was previously applied. 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
Logtail設定の更新
Logtail設定を更新するには、関連するCRの作成に使用されるYAMLファイルを変更し、新しいファイルを適用するだけです。
CRの作成に使用するYAMLファイルを変更します。 次のコマンドで、
cube.yamlはサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
vim cube.yamlYAMLファイルのパラメーターを変更します。
次のコマンドを実行して、新しいファイルを適用します。 次のコマンドで、
cube.yamlはサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
kubectl apply -f cube.yamlLogtail設定の削除
Logtail設定を削除するには、Logtail設定の作成に基づいてCRを削除するだけです。 次のコマンドでは、<config_name> が必要なCRの名前です。 ビジネス要件に基づいて別の名前を指定できます。
kubectl delete clusteraliyunpipelineconfigs <config_name>Logtail設定が削除されると、関連するCRがリリースされます。
CRパラメーター
apiVersion
値は
telemetry.alibabacloud.com/v1alpha1のように固定されます。種類
値は
ClusterAliyunPipelineConfigとして固定されています。metadata
項目
型
必須 / 任意
説明
name
String
対象
CRの一意の識別子。 値はLogtail設定の名前と同じです。
注:
このフィールドの値は、Logtail設定の名前として使用されます。 名前は、Logtail構成が属するプロジェクト内で一意である必要があります。 Logtail設定の作成後、設定の名前を変更することはできません。 値は次の要件を満たす必要があります。
値には、小文字、数字、ハイフン (-) 、およびアンダースコア (_) のみを使用できます。
値の先頭と末尾は小文字または数字である必要があります。
値は2 ~ 128文字である必要があります。
Spec
項目
型
必須 / 任意
説明
project
対象
プロジェクトに関する情報。
説明CRの作成後、プロジェクトフィールドの値を変更することはできません。 別のプロジェクトを使用するには、別のCRを作成する必要があります。
config
対象
Logtail設定の詳細設定。
ログストア
非対象
Logstore。 複数のLogstoreを作成できます。
説明e metadata.nameフィールドを除くすべてのフィールドは、Logstoreを作成した場合にのみ有効になります。
このフィールドの値は、Logtail設定に基づいてログを収集するLogstoreを指定しません。 この値は、作成されるLogstoreを指定します。 config.flushersフィールドの値は、Logtail設定に基づいてログを収集するLogstoreを指定します。 指定されたLogstoreが存在する場合、このフィールドは空のままにできます。
このフィールドは、Logstoreを追加または削除する場合にのみ設定できます。 既存のLogstoreは変更できません。
machineGroups
非対象
Logtail構成に関連付けられているマシングループ。
logtail-dsコンポーネントをインストールすると、Simple Log Serviceは自動的にk8s-group-${your_k8s_cluster_id}という名前のマシングループを作成します。 デフォルトでは、k8s-group-${your_k8s_cluster_id} マシングループが使用されます。説明alibaba-log-controllerコンポーネントは、Logtail設定がmachineGroupsフィールドで指定されたマシングループにのみ関連付けられるようにします。 他のマシングループはLogtail構成から関連付けられていません。
enableUpgradeOverride
bool
非対象
デフォルト値:false AliyunLogConfig CRDのCRとAliyunPipelineConfig CRDのCRは、同じクラスター内の同じLogtail構成を指すことができます。 このフィールドはこのシナリオ用に設計されています。 有効な値:
true: alibaba-log-controllerコンポーネントは、AliyunLogConfig CRDのCRに基づいて作成されたLogtail設定を上書きして更新します。
false: Logtail設定の競合が発生し、AliyunPipelineConfig CRDのCRに基づいて作成されたLogtail設定の適用に失敗します。
説明次の条件が満たされている場合、システムはCRが同じLogtail構成を指していると見なします。
ログが収集されるのと同じプロジェクトが使用されます。
AliyunLogConfig CRDの場合、CRのプロジェクトはspec.projectフィールドで指定されます。 AliyunPipelineConfig CRDの場合、CR内のプロジェクトはe spec.project.nameフィールドで指定されます。
同じLogtail設定名が使用されます。
AliyunLogConfig CRDの場合、CRの名前はspec.logtailConfig.configNameフィールドで指定されます。 AliyunPipelineConfig CRDの場合、CR内の名前はe metadata.nameフィールドによって指定されます。
コンポーネントは、次のプロセスでLogtail設定を上書きして更新します。
このコンポーネントは、AliyunPipelineConfig CRDのCRに基づいて作成されたLogtail設定の適用を試みます。
Logtail設定が適用された後、コンポーネントはクラスタからAliyunLogConfig CRDのCRを削除します。
プロセスは完了です。
PipelineProject
説明CRの作成後、プロジェクトフィールドの値を変更することはできません。 別のプロジェクトを使用するには、別のCRを作成する必要があります。
項目
型
必須 / 任意
説明
name
String
対象
プロジェクトの名前。
説明指定されたプロジェクトが存在しない場合、Simple Log Serviceは自動的にプロジェクトを作成します。
説明
String
非対象
プロジェクトの説明。
説明このフィールドは、プロジェクトを作成するときにのみ有効になります。
endpoint
String
非対象
プロジェクトのエンドポイント。 詳細については、「エンドポイント」をご参照ください。 デフォルトでは、現在のクラスターが存在するリージョンのエンドポイントが使用されます。 プロジェクトとクラスターが異なるリージョンにある場合は、このフィールドを設定する必要があります。
説明このフィールドは、Logtail設定が存在するリージョンのエンドポイントを指定します。 Logtailを使用してエンドポイントに基づいてプロジェクトにログを収集するには、Logtailのconfig_server_addressフィールドとdata_server_listフィールドも設定する必要があります。 詳細については、「Logtail設定ファイルとレコードファイル」をご参照ください。
uid
String
非対象
アカウントの ID です。 デフォルトでは、現在のクラスターが属するアカウントが使用されます。 アカウント間でログを収集する場合は、このフィールドを設定し、
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>" 、"accessKeySecret":"<your_access_key_secret>"}を環境変数のalibaba-logコンポーネントに含めます。説明このフィールドは、プロジェクトが属するアカウントを指定します。 Logtailを使用してアカウントにログを収集するには、Logtailのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。
PiplineConfig
CreateLogtailinePipelineConfigで提供されている手順に基づいて、次のフィールドを設定する必要があります。configNameフィールドは、e metadata.nameフィールドの値を使用します。 configNameフィールドを個別に設定することはできません。
項目
型
必須 / 任意
説明
サンプル
String
非対象
サンプルログ。 複数のサンプルログを指定できます。 値が1,500バイトを超えないようにしてください。
global
object
非対象
グローバル設定。 詳細は、「リクエストパラメーター」をご参照ください。
入力
オブジェクトリスト
対象
入力プラグイン。 プラグインの詳細とパラメーターの詳細については、「リクエストパラメーター」をご参照ください。
説明設定できる入力プラグインは1つだけです。
プロセッサ
オブジェクトリスト
非対象
処理プラグイン。 プラグインの詳細とパラメーターの詳細については、「リクエストパラメーター」をご参照ください。
アグリゲーター
オブジェクトリスト
非対象
集約プラグイン。 プラグインの詳細とパラメーターの詳細については、「リクエストパラメーター」をご参照ください。
flushers
オブジェクトリスト
対象
出力プラグイン。 プラグインの詳細とパラメーターの詳細については、「リクエストパラメーター」をご参照ください。
説明設定できる出力プラグインは1つだけです。
configTags
Map
非対象
Logtail設定を識別するために追加されるカスタムタグ。
PipelineLogstore
説明e metadata.nameフィールドを除くすべてのフィールドは、Logstoreを作成した場合にのみ有効になります。
項目
型
必須 / 任意
説明
name
String
対象
ログストアの名前
queryMode
String
非対象
Logstoreのタイプ。 詳細については、「Logstoreタイプ」をご参照ください。 デフォルト値: standard。 有効な値:
query: Logstoreのクエリ
標準: 標準Logstore
ttl
int
非対象
Logstore内のログの保存期間。 単位:日 詳細については、「データ保持期間」をご参照ください。 デフォルト値:30。 有効な値: 1 ~ 3650 このフィールドを3650に設定すると、ログは永続的に保存されます。
hotTtl
int
非対象
Logstoreのホットストレージ層のログの保持期間。 単位:日 詳細については、「インテリジェント階層ストレージ」をご参照ください。 デフォルト値:0 このフィールドの値は、ttlフィールドの値より小さく、7以上でなければなりません。
shardCount
int
非対象
Logstore内のシャードの数。 詳細については、「logstoreの管理」をご参照ください。 デフォルト値:2 有効な値:1~100
maxSplitShard
int
非対象
Logstore内の既存のシャードを自動的に分割できるシャードの最大数。 詳細については、「自動シャーディング」をご参照ください。 デフォルト値: 64。 有効な値: 1 ~ 256
autoSplit
bool
非対象
Logstoreの自動シャーディングを有効にするかどうかを指定します。 詳細については、「自動シャーディング」をご参照ください。 デフォルト値:true
telemetryType
String
非対象
Logstore内の観測可能なデータのタイプ。 詳細については、「telemetryType」をご参照ください。 デフォルト値 : なし。 有効な値:
なし: ログデータ
Metrics: メトリックデータ
appendMeta
bool
非対象
LogstoreのパブリックIPアドレスを記録するかどうかを指定します。 詳細については、「ログパブリックIP」をご参照ください。 デフォルト値:true
enableTracking
bool
非対象
Logstoreのwebトラッキング機能を有効にするかどうかを指定します。 詳細については、「WebTracking」をご参照ください。 デフォルト値:false
encryptConf
object
非対象
Logstoreの暗号化設定。 詳細については、「エンドポイント」をご参照ください。 このフィールドはデフォルトでは空です。
meteringMode
String
非対象
Logstoreの課金モード。 詳細については、「課金モード」をご参照ください。 このフィールドはデフォルトでは空です。 有効な値:
ChargeByFunction: 機能課金モード
ChargeByDataIngest: 取り込みデータ課金モード
説明queryModeフィールドをクエリに設定する場合、このフィールドをChargeByFunctionに設定する必要があります。
ご利用のアカウントでデータ課金課金モードが無効になっている場合、このフィールドはChargeByFunctionにのみ設定できます。
PipelineMachineGroup
項目
型
必須 / 任意
説明
name
String
対象
Logtail構成に関連付けられているマシングループの名前。
説明マシングループが存在しない場合、alibaba-log-controllerコンポーネントは自動的に識別子ベースのマシングループを作成します。 マシングループの名前は、識別子にちなんで付けられます。 詳細については、「カスタム識別子ベースのマシングループの作成」をご参照ください。 この操作は、マシングループを作成した場合にのみ有効です。