Simple Log Serviceは、AliyunLogConfigという名前のCustomResourceDefinition (CRD) を定義します。YAMLファイルを構成して、CRDからCustomResource (CR) を作成し、Logtail構成を管理できます。 このトピックでは、AliyunLogConfigを使用してLogtail設定を管理する方法について説明します。
前提条件
Logtailコンポーネントがインストールされます。 詳細については、「ACKクラスターへのLogtailコンポーネントのインストール」をご参照ください。
ログを収集するコンテナーは、継続的にログを生成します。
重要Logtailは増分ログのみを収集します。 適用されたLogtail設定がサーバーに配信された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。
制限事項
AliyunLogConfig CRDからCRを作成して、Logtail設定を作成できます。 Simple Log ServiceコンソールでLogtail設定を変更した場合、変更はCRと同期されません。 CRでLogtail設定を変更する場合は、CRを変更する必要があります。 Simple Log ServiceコンソールでのみLogtail設定を変更すると、Logtail設定の不整合が発生する可能性があります。
手順
Logtail設定の作成
AliyunLogConfig
CRDからCRを作成する必要があります。 次に、alibaba-log-controller
コンポーネントは、CRに基づいてLogtail設定を自動的に作成します。 Logtail設定が作成されると、自動的に適用され、LogtailはLogtail設定に基づいてSimple Log Serviceへのログの収集を開始します。
次のコマンドを実行して、YAMLファイルを作成します。 次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
vim cube.yaml
YAMLファイルに次のスクリプトを入力し、ビジネス要件に基づいてパラメーターを設定します。 CRパラメーターの詳細については、「CRパラメーター」をご参照ください。
apiVersion: log.alibabacloud.com/v1alpha1 # The default value is used. You do not need to modify this parameter.
kind: AliyunLogConfig # 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:
logstore: k8s-stdout # The name of the Logstore. If the Logstore that you specify does not exist, Simple Log Service automatically creates a Logstore.
logtailConfig: # The Logtail configuration.
inputType: plugin # The type of the data source.
configName: test-config # The name of the Logtail configuration.
inputDetail: # The detailed settings of the Logtail configuration.
...
次のコマンドを実行して、
AliyunLogConfig
CRDからCRを作成します。 alibaba-log-controllerコンポーネントは、CRに基づいてLogtail設定を作成します。 次に、Logtail設定が自動的に適用されます。 Logtail設定が適用されると、LogtailはSimple Log Serviceへのログの収集を開始します。 次のコマンドで、cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
kubectl apply -f cube.yaml
Logtail設定の表示
AliyunLogConfig
CRDのCRに基づいて、現在のKubernetesクラスターで作成されたすべてのLogtail設定を表示します。次のコマンドを実行して、Logtail設定を表示でき。
kubectl get aliyunlogconfigs
AliyunLogConfig CRDのCRに基づいて作成されたLogtail構成の詳細な設定とステータスを表示します。
kubectl get aliyunlogconfigs <config_name> -o yaml
コマンドを実行して、Logtail設定を表示します。 このコマンドでは、<config_name>
は必要なCRの名前です。 ビジネス要件に基づいて別の名前を指定できます。次のコードに似た情報が返されます。
status
およびstatusCode
フィールドは、Logtail設定のステータスを示します。statusCode
フィールドの値が200の場合、Logtail設定が適用されます。statusCode
フィールドの値が200でない場合、Logtail設定は適用されません。
apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: name: example-k8s-file namespace: kube-system spec: project: k8s-log-test logstore: k8s-file logtailConfig: inputType: file configName: example-k8s-file inputDetail: logType: common_reg_log logPath: /data/logs/app_1 filePattern: test.LOG dockerFile: true status: status: OK statusCode: 200
Logtail設定の更新
Logtail設定を更新するには、関連するCRの作成に使用されるYAMLファイルを変更し、新しいファイルを適用するだけです。
CRの作成に使用するYAMLファイルを変更します。 次のコマンドでは、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
vim cube.yaml
YAMLファイルのパラメーターを変更します。 パラメーターの詳細については、「CRパラメーター」をご参照ください。
次のコマンドを実行して、新しいファイルを適用します。 次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。
kubectl apply -f cube.yaml
Logtail設定の削除
Logtail設定を削除するには、Logtail設定の作成に基づいてCRを削除するだけです。 次のコマンドでは、<config_name>
が必要なCRの名前です。 ビジネス要件に基づいて別の名前を指定できます。
kubectl delete aliyunlogconfigs <config_name>
CRが削除されると、CRに基づいて作成されたLogtail設定は自動的に削除されます。
CRパラメータ
apiVersion
値は
log.alibabacloud.com/v1alpha1
のように固定されます。種類
値は
AliyunLogConfig
として固定されています。metadata
項目
データ型
必須
説明
name
String
課金されます
CRの一意の識別子。 このフィールドは、Spec.logtailConfig.configNameフィールドと同じ値に設定することを推奨します。
namespace
String
課金されません
CRが属する名前空間。
Spec
項目
データ型
必須
説明
project
String
課金されません
プロジェクトの名前。 現在のクラスターのデフォルトプロジェクトの名前を入力する必要があります。 名前は、alibaba-log-controllerコンポーネント用に設定されている
ALICLOUD_LOG_PROJECT
環境変数から取得できます。説明指定されたプロジェクトが存在しない場合、Simple Log Serviceは自動的にプロジェクトを作成します。
logstore
String
課金されます
ログストアの名前
説明指定されたLogstoreが存在しない場合、Simple Log Serviceは自動的にLogstoreを作成します。
指定されたLogstoreが存在する場合、このテーブルの後続のLogstore関連フィールドは有効になりません。
logtailConfig
課金されます
Logtail設定の詳細設定。
uid
String
課金されません
アカウントの ID です。 アカウント間でログを収集する場合は、このフィールドを設定し、
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>" "、" accessKeySecret ":"<your_access_key_secret>"}
をalibaba-log-logコントローラーコンポーネントの環境変数設定に含めます。説明このフィールドは、alibaba-log-controller V0.3.2以降を使用する場合にのみ使用できます。
このフィールドは、プロジェクトが属するアカウントを指定します。 Logtailを使用してアカウントにログを収集するには、Logtailのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。
endpoint
String
課金されません
プロジェクトのエンドポイント。 詳細については、「エンドポイント」をご参照ください。 デフォルトでは、現在のクラスターが存在するリージョンのエンドポイントが使用されます。 プロジェクトとクラスターが異なるリージョンにある場合は、このフィールドを設定する必要があります。
説明このフィールドは、alibaba-log-controller V0.4.1以降を使用している場合にのみ使用できます。
このフィールドは、Logtail設定が存在するリージョンのエンドポイントを指定します。 Logtailを使用してエンドポイントに基づいてプロジェクトにログを収集するには、Logtailのconfig_server_addressフィールドとdata_server_listフィールドも設定する必要があります。 詳細については、「Logtail設定ファイルとレコードファイル」をご参照ください。
logstoreMode
String
課金されません
Logstoreのタイプ。 詳細については、「Logstoreタイプ」をご参照ください。 デフォルト値: standard。 有効な値:
query: Logstoreのクエリ
標準: 標準Logstore
説明このフィールドは、alibaba-log-controller V0.3.3以降を使用する場合にのみ使用できます。
shardCount
int
課金されません
Logstore内のシャードの数。 詳細については、「シャード」をご参照ください。 デフォルト値:2 有効な値: 1 ~ 10。
logstoreMaxSplitShard
int
課金されません
Logstore内の既存のシャードを自動的に分割できるシャードの最大数。 詳細については、「自動シャーディング」をご参照ください。 デフォルト値: 32。 有効な値: 1 ~ 256
logstoreAutoSplit
bool
課金されません
Logstoreの自動シャーディングを有効にするかどうかを指定します。 詳細については、「自動シャーディング」をご参照ください。 デフォルト値:true
lifeCycle
int
課金されません
Logstore内のログの保存期間。 単位:日 詳細については、「データ保持期間」をご参照ください。 デフォルト値: 180 有効な値: 1 ~ 3650 このフィールドを3650に設定すると、ログは永続的に保存されます。
logstoreHotTTL
int
課金されません
Logstoreのホットストレージ層のログの保持期間。 単位:日 詳細については、「インテリジェント階層ストレージ」をご参照ください。 デフォルト値:0 このフィールドの値は、lifeCycleフィールドの値より小さく、7以上でなければなりません。
logstoreTelemetryType
String
課金されません
Logstore内の観測可能なデータのタイプ。 詳細については、CreateLogStoreをご参照ください。 デフォルト値 : なし。 有効な値:
なし: ログデータ
Metrics: メトリックデータ
logstoreAppendMeta
bool
課金されません
LogstoreのパブリックIPアドレスを記録するかどうかを指定します。 詳細については、「ログパブリックIP」をご参照ください。 デフォルト値:true
logstoreEnableTracking
bool
課金されません
Logstoreのwebトラッキング機能を有効にするかどうかを指定します。 詳細については、「WebTracking」をご参照ください。 デフォルト値:false
logstoreEncryptConf
object
課金されません
Logstoreの暗号化設定。 詳細については、Common data structuresをご参照ください。 このフィールドはデフォルトでは空です。
logstoreMeteringMode
String
課金されません
Logstoreの課金モード。 詳細については、「課金モード」をご参照ください。 このフィールドはデフォルトでは空です。 有効な値:
ChargeByFunction: 機能課金モード
ChargeByDataIngest: 取り込みデータ課金モード
説明このフィールドは、alibaba-log-controller V0.4.3以降を使用する場合にのみ使用できます。
logstoreModeフィールドをクエリに設定する場合、このフィールドをChargeByFunctionに設定する必要があります。
ご利用のアカウントでデータ課金課金モードが無効になっている場合、このフィールドはChargeByFunctionにのみ設定できます。
machineGroups
array
課金されません
Logtail構成に関連付けられているマシングループ。 詳細については、「概要」をご参照ください。 logtail-dsコンポーネントをインストールすると、Simple Log Serviceは自動的に
k8s-group-${your_k8s_cluster_id}
という名前のマシングループを作成します。 デフォルトでは、マシングループが使用されます。configTags
Map
課金されません
Logtail設定を識別するために追加されるカスタムタグ。
説明このフィールドは、alibaba-log-controller V0.4.2以降を使用する場合にのみ使用できます。
AliyunLogConfigDetail
フィールドの詳細については、「Logtail設定」をご参照ください。 AliyunLogConfigDetailパラメーターのデータ形式は、Logtail設定のデータ形式と同じです。
項目
データ型
必須
説明
configName
String
課金されます
Logtail設定の名前。 名前は、Logtail構成が属するプロジェクト内で一意である必要があります。 Logtail設定の作成後、Logtail設定の名前を変更することはできません。 このフィールドをe metadata.nameフィールドと同じ値に設定することを推奨します。
名前の条件は以下の通りです。
名前には、小文字、数字、ハイフン ( - )、アンダースコア ( _ ) のみ使用できます。
名前の先頭と末尾は、小文字または数字である必要があります。
名前の長さは 2 ~ 128 文字である必要があります。
logSample
String
課金されません
サンプルログ。 値の長さは1,500バイト未満である必要があります。
inputType
String
課金されます
ログの収集方法。 有効な値:
plugin: stdoutやstderrなどのログとMySQLバイナリログは、Logtailプラグインを使用して収集されます。
file: テキストログは、フル正規表現モードや区切り文字モードなどの既存のモードを使用して収集されます。
inputDetail
オブジェクト
課金されます
データソースの詳細設定。 詳細については、「inputDetail」をご参照ください。