AliyunLogConfig は、Simple Log Service (SLS) が定義する CustomResourceDefinition (CRD) です。この CRD から YAML ファイルでカスタムリソース (CR) を作成し、Kubernetes クラスター内で宣言的に Logtail 構成を作成、表示、更新、削除できます。
前提条件
バージョン 0.5.1 以降の Logtail コンポーネントがインストールされていること。詳細については、「Container Service for Kubernetes (ACK) クラスターへの Logtail コンポーネントのインストール」および「自己管理型 Kubernetes クラスターへの Logtail コンポーネントのインストール」をご参照ください。
ターゲットコンテナーが継続的にログを生成していること。
重要Logtail は増分ログのみを収集します。Logtail 構成が配信された後にログファイルが更新されない場合、Logtail はそのファイルからログを収集しません。詳細については、「ログの読み取り」をご参照ください。
制限
AliyunLogConfig を使用して Logtail 構成を管理する場合、次の制限が適用されます。
コンソールでの変更は同期されない — AliyunLogConfig CR によって作成された Logtail 構成の場合、SLS コンソールで行った変更は CR に同期されません。このような構成を変更するには、CR のみを変更してください。これにより、構成の不整合を防ぎます。
既存の Logstore — CR で指定した Logstore が既に存在する場合、それ以降の Logstore 関連のパラメーターはすべて有効になりません。
不変の構成名 — Logtail 構成の作成後、その名前 (
configNameパラメーターの値) を変更することはできません。alibaba-log-controller のバージョン — 一部のパラメーターには、alibaba-log-controller の最小バージョンが必要です。CR を記述する前に、「CR パラメータ」で各パラメーターに記載されている最小バージョンを確認してください。
操作手順
Logtail 構成の作成
AliyunLogConfig から CR を作成します。CR を作成すると、alibaba-log-controller が CR に基づいて Logtail 構成を作成し、その構成を自動的に適用します。
次のコマンドを実行して YAML ファイルを作成します。この例では、ファイル名は
cube.yamlです。必要に応じてファイル名を置き換えてください。vim cube.yamlYAML ファイルに次のスクリプトを入力し、必要に応じてパラメーターを設定します。このスクリプトには必須フィールドのみが含まれています。
inputTypeを設定してログの収集方法を指定し、inputDetailを設定してログ入力の設定を行います。CR のフィールドの詳細については、「CR パラメータ」をご参照ください。apiVersion: log.alibabacloud.com/v1alpha1 # デフォルト値を使用します。このパラメーターを変更する必要はありません。 kind: AliyunLogConfig # デフォルト値を使用します。このパラメーターを変更する必要はありません。 metadata: name: test-config # リソースの名前。現在の Kubernetes クラスター内で一意である必要があります。 spec: logstore: k8s-stdout # Logstore の名前。指定した Logstore が存在しない場合、SLS は自動的に Logstore を作成します。 logtailConfig: # Logtail 構成。 inputType: plugin # ログの収集元となるデータソースのタイプ。 configName: test-config # Logtail 構成の名前。 inputDetail: # Logtail 構成の詳細。 ...次のコマンドを実行して、
AliyunLogConfigから CR を作成します。Logtail 構成が有効になると、Logtail はデータの収集を開始し、そのデータを SLS に送信します。kubectl apply -f cube.yamlCR の
statusCodeフィールドの値が 200 であることを確認します。手順については、「Logtail 構成の表示」をご参照ください。
Logtail 構成の表示
現在の Kubernetes クラスター内で AliyunLogConfig によって作成されたすべての Logtail 構成を表示するには、次のコマンドを実行します。
kubectl get aliyunlogconfigsAliyunLogConfig によって作成された単一の Logtail 構成の詳細とステータスを表示するには、次のコマンドを実行します。<config_name> は AliyunLogConfig の名前です。必要に応じて名前を置き換えてください。
kubectl get aliyunlogconfigs <config_name> -o yaml次のような結果が返されます。この例では、Logtail 構成は inputType: file を使用しています。
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結果内の status フィールドと statusCode フィールドは、Logtail 構成のステータスを示します。
statusCodeフィールドの値が 200 の場合、Logtail 構成が適用されています。statusCodeフィールドの値が 200 でない場合、Logtail 構成の適用に失敗しています。statusフィールドで報告されたステータスを確認してください。
Logtail 構成の更新
AliyunLogConfig によって作成された Logtail 構成を更新するには、CR の既存の YAML ファイルを変更し、そのファイルを再度適用します。
既存の
AliyunLogConfigYAML ファイル (例:cube.yaml) を編集します。vim cube.yaml必要に応じて YAML ファイル内のパラメーターを変更します。CR のフィールドの詳細については、「CR パラメータ」をご参照ください。
次のコマンドを実行してファイルを適用し、Logtail 構成を有効にします。
kubectl apply -f cube.yamlCR の
statusCodeフィールドの値が 200 であることを確認します。手順については、「Logtail 構成の表示」をご参照ください。
Logtail 構成の削除
AliyunLogConfig によって作成された Logtail 構成を削除するには、対応する CR を削除します。次のコマンドの <config_name> は AliyunLogConfig の名前です。必要に応じて名前を置き換えてください。
CR を削除すると、対応する Logtail 構成も自動的に削除されます。
kubectl delete aliyunlogconfigs <config_name>削除を確認するには、kubectl get aliyunlogconfigs を実行し、CR がリストに表示されなくなったことを確認します。
CR パラメータ
次のセクションでは、AliyunLogConfig CR のフィールドについて説明します。
apiVersion
値は log.alibabacloud.com/v1alpha1 に固定されています。
kind
値は AliyunLogConfig に固定されています。
metadata
metadata フィールドは、Kubernetes クラスター内で CR を識別します。
| パラメーター | タイプ | 必須 | 説明 |
name | string | はい | CR の一意の識別子。ベストプラクティスとして、spec.logtailConfig.configName と同じ値を使用することを推奨します。 |
namespace | string | いいえ | CR が属する名前空間。 |
spec
spec フィールドは、送信先プロジェクトと Logstore、送信先 Logstore の属性、および Logtail 構成の詳細を指定します。
| パラメーター | タイプ | 必須 | 説明 |
project | string | いいえ | 送信先プロジェクトの名前。デフォルト値は、クラスター用に設定されているプロジェクト (alibaba-log-controller の ALICLOUD_LOG_PROJECT 環境変数の値) です。指定したプロジェクトが存在しない場合、SLS は自動的にプロジェクトを作成します。 |
logstore | string | はい | 送信先 Logstore の名前。指定した Logstore が存在しない場合、SLS は自動的に Logstore を作成します。 |
logtailConfig | AliyunLogConfigDetail | はい | Logtail 構成の詳細。 |
uid | string | いいえ | 送信先アカウントの UID。アカウント間でログを転送するには、このパラメーターを設定し、alibaba-log-controller の環境変数に ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}} を設定します。このパラメーターは、プロジェクトが属するアカウントを指定します。そのアカウントに Logtail データを転送するには、Logtail のユーザー識別子も設定する必要があります。手順については、「ユーザー識別子の設定」をご参照ください。このパラメーターは alibaba-log-controller 0.3.2 以降でのみサポートされます。 |
endpoint | string | いいえ | 送信先プロジェクトのエンドポイント。デフォルトでは、現在のクラスターが存在するリージョンのエンドポイントが使用されます。送信先プロジェクトとクラスターが異なるリージョンに存在する場合は、このパラメーターを設定します。このパラメーターは、Logtail 構成が使用するエンドポイントを指定します。そのリージョンに Logtail データを転送するには、Logtail の config_server_address および data_server_list パラメーターも設定する必要があります。手順については、「Logtail 構成ファイルとレコードファイルsee Endpoint.」をご参照ください。このパラメーターは alibaba-log-controller 0.4.1 以降でのみサポートされます。詳細については、「」をご参照ください。 |
logstoreMode | string | いいえ | 送信先 Logstore のタイプ。デフォルト値: standard。有効な値: query (Query Logstore) および standard (Standard Logstore)。このパラメーターは alibaba-log-controller 0.3.3 以降でのみサポートされます。詳細については、「Logstore のタイプ」をご参照ください。 |
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 のオブザーバビリティデータのタイプ。デフォルト値: None。有効な値: None (ログデータ) および Metrics (メトリクスデータ)。詳細については、「telemetryType」をご参照ください。 |
logstoreAppendMeta | bool | いいえ | 送信先 Logstore のパブリック IP アドレスを記録する機能を有効にするかどうかを指定します。デフォルト値: true。詳細については、「ログパブリック IP」をご参照ください。 |
logstoreEnableTracking | bool | いいえ | 送信先 Logstore の Web トラッキングを有効にするかどうかを指定します。デフォルト値: false。詳細については、「WebTracking」をご参照ください。 |
logstoreEncryptConf | object | いいえ | 送信先 Logstore の暗号化設定。このパラメーターはデフォルトでは空です。詳細については、「共通データ構造」をご参照ください。 |
logstoreMeteringMode | string | いいえ | 送信先 Logstore の課金モード。このパラメーターはデフォルトでは空です。有効な値: ChargeByFunction (機能別課金モード) および ChargeByDataIngest (取り込みデータ量課金モード)。Logstore の logstoreMode が query の場合、機能別課金モードのみがサポートされます。アカウントで取り込みデータ量課金モードが有効になっていない場合は、このパラメーターを ChargeByFunction のみに設定できます。このパラメーターは alibaba-log-controller 0.4.3 以降でのみサポートされます。詳細については、「Logstore の管理」をご参照ください。 |
machineGroups | array | いいえ | Logtail 構成に関連付けられたマシングループ。logtail-ds コンポーネントをインストールすると、SLS は自動的に k8s-group-${your_k8s_cluster_id} という名前のマシングループを作成します。このマシングループがデフォルト値です。詳細については、「概要」をご参照ください。 |
configTags | map | いいえ | Logtail 構成を識別するために使用されるカスタムタグ。このパラメーターは alibaba-log-controller 0.4.2 以降でのみサポートされます。 |
AliyunLogConfigDetail
パラメーターの詳細については、「Logtail 構成 (レガシー)」をご参照ください。AliyunLogConfigDetail のデータ形式は、「Logtail 構成 (レガシー)」で説明されている形式と同じです。
| パラメーター | タイプ | 必須 | 説明 |
configName | string | はい | Logtail 構成の名前。名前は、Logtail 構成が属するプロジェクト内で一意である必要があります。ベストプラクティスとして、リソース名 (metadata.name) と同じ値を使用することを推奨します。名前には、小文字、数字、ハイフン (-)、およびアンダースコア (_) のみを含めることができます。名前は小文字または数字で始まり、小文字または数字で終わる必要があります。名前は 2~128 文字である必要があります。 |
logSample | string | いいえ | サンプルログ。値は 1,500 バイト未満である必要があります。 |
inputType | string | はい | ログの収集に使用される方法。有効な値: plugin (Logtail プラグインを使用して標準出力ログや MySQL バイナリログなどのログを収集) および file (フル正規表現モードやデリミタモードなどの固定モードでテキストファイルからログを収集)。 |
inputDetail | Object | はい | ログ入力の設定。詳細については、「inputDetail」をご参照ください。 |