すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:AliyunLogConfigを使用したLogtail設定の管理

最終更新日:Aug 21, 2024

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へのログの収集を開始します。

  1. クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続します

  2. 次のコマンドを実行して、YAMLファイルを作成します。 次のコマンドで、cube.yamlはサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。

vim cube.yaml
  1. 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. 
      ...
  1. 次のコマンドを実行して、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ファイルを変更し、新しいファイルを適用するだけです。

  1. クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続します

  2. CRの作成に使用するYAMLファイルを変更します。 次のコマンドでは、cube.yamlはサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。

vim cube.yaml
  1. YAMLファイルのパラメーターを変更します。 パラメーターの詳細については、「CRパラメーター」をご参照ください。

  2. 次のコマンドを実行して、新しいファイルを適用します。 次のコマンドで、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

    AliyunLogConfigDetail

    課金されます

    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」をご参照ください。