Simple Log Service mendefinisikan CustomResourceDefinition (CRD) bernama AliyunPipelineConfig. Anda dapat menggunakan file YAML untuk membuat CustomResource (CR) dari CRD ini dan mengelola konfigurasi Logtail. Topik ini menjelaskan cara menggunakan AliyunPipelineConfig untuk mengelola konfigurasi Logtail.
Prasyarat
Komponen Logtail versi V0.5.1 atau lebih baru telah terpasang. Untuk informasi lebih lanjut, lihat Pasang Komponen Logtail di Kluster ACK dan Pasang Komponen Logtail di Kluster Kubernetes yang Dikelola Sendiri.
Kontainer tempat Anda ingin mengumpulkan log secara terus-menerus menghasilkan log.
PentingLogtail hanya mengumpulkan log tambahan. Jika sebuah file log di server tidak diperbarui setelah konfigurasi Logtail yang diterapkan dikirim ke server, Logtail tidak akan mengumpulkan log dari file tersebut. Untuk informasi lebih lanjut, lihat Baca File Log.
Prosedur
Anda dapat membuat CR dari CRD AliyunPipelineConfig untuk membuat konfigurasi Logtail. Komponen alibaba-log-controller secara berkala menyinkronkan jenis konfigurasi Logtail ini ke Simple Log Service. Jika Anda ingin memodifikasi jenis konfigurasi Logtail ini, Anda harus memodifikasi CR terkait. Konfigurasi Logtail yang dibuat dari konsol Simple Log Service akan ditimpa oleh CR. Kami menyarankan Anda selalu menggunakan CR untuk mengelola konfigurasi Logtail.
Buat konfigurasi Logtail
Anda harus membuat CR dari AliyunPipelineConfig CRD. Kemudian, komponen alibaba-log-controller secara otomatis membuat konfigurasi Logtail berdasarkan CR. Setelah konfigurasi Logtail dibuat, konfigurasi tersebut diterapkan secara otomatis, dan Logtail mulai mengumpulkan log ke Simple Log Service sesuai dengan konfigurasi tersebut.
Dapatkan file kubeconfig dari kluster dan gunakan kubectl untuk terhubung ke kluster.
Jalankan perintah berikut untuk membuat file YAML bernama
cube.yaml. Anda dapat menentukan nama file yang berbeda sesuai dengan kebutuhan bisnis Anda.
vim cube.yamlMasukkan skrip berikut dalam file YAML dan konfigurasikan parameter berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut tentang parameter CR, lihat Parameter CR.
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Nilai default digunakan. Anda tidak perlu memodifikasi parameter ini.
kind: ClusterAliyunPipelineConfig # Nilai default digunakan. Anda tidak perlu memodifikasi parameter ini.
metadata:
name: test-config # Nama sumber daya. Nama tersebut harus unik di kluster Kubernetes saat ini.
spec:
project: # Nama Logstore.
name: k8s-your-project
config: # Konfigurasi Logtail.
inputs: # Plugin input dari konfigurasi Logtail.
...
flushers: # Plugin output dari konfigurasi Logtail.
...Jalankan perintah berikut untuk membuat CR dari
AliyunPipelineConfigCRD. Komponenalibaba-log-controllermembuat konfigurasi Logtail berdasarkan CR. Kemudian, konfigurasi Logtail diterapkan secara otomatis. Setelah konfigurasi Logtail diterapkan, Logtail mulai mengumpulkan log ke Simple Log Service. Dalam perintah berikut,cube.yamladalah nama file contoh. Anda dapat menentukan nama file yang berbeda sesuai dengan kebutuhan bisnis Anda.
kubectl apply -f cube.yamlLihat konfigurasi Logtail
Lihat semua konfigurasi Logtail yang dibuat di kluster Kubernetes saat ini berdasarkan CR dari
AliyunPipelineConfigCRD.Anda dapat menjalankan perintah berikut untuk melihat konfigurasi Logtail:
kubectl get clusteraliyunpipelineconfigsLihat pengaturan detail dan status konfigurasi Logtail yang dibuat berdasarkan CR dari
AliyunPipelineConfigCRD.Anda dapat menjalankan perintah berikut untuk melihat konfigurasi Logtail. Dalam perintah ini,
<config_name>adalah nama CR yang diperlukan. Anda dapat menentukan nama yang berbeda sesuai dengan kebutuhan bisnis Anda.kubectl get clusteraliyunpipelineconfigs <config_name> -o yamlInformasi yang serupa dengan kode berikut dikembalikan. Anda dapat memeriksa apakah konfigurasi Logtail diterapkan berdasarkan parameter status.
apiVersion: telemetry.alibabacloud.com/v1alpha1 kind: ClusterAliyunPipelineConfig metadata: creationTimestamp: null finalizers: - finalizer.pipeline.alibabacloud.com name: example-config # Konfigurasi yang diharapkan. 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 aplikasi. status: # Apakah konfigurasi Logtail diterapkan. success: true # Pesan status. message: success # Waktu pembaruan status saat ini. lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # Konfigurasi Logtail sebelumnya yang diterapkan. Nilai default digunakan dalam konfigurasi Logtail. lastAppliedConfig: # Titik waktu ketika konfigurasi Logtail sebelumnya diterapkan. appliedTime: "2024-06-13T12:02:19.133422+08:00" # Pengaturan detail konfigurasi Logtail sebelumnya yang diterapkan. 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
Perbarui konfigurasi Logtail
Untuk memperbarui konfigurasi Logtail, Anda hanya perlu memodifikasi file YAML yang digunakan untuk membuat CR terkait dan menerapkan file baru.
Dapatkan file kubeconfig dari kluster dan gunakan kubectl untuk terhubung ke kluster.
Modifikasi file YAML yang digunakan untuk membuat CR Anda. Dalam perintah berikut,
cube.yamladalah nama file contoh. Anda dapat menentukan nama file yang berbeda sesuai dengan kebutuhan bisnis Anda.
vim cube.yamlModifikasi parameter dalam file YAML.
Jalankan perintah berikut untuk menerapkan file baru. Dalam perintah berikut,
cube.yamladalah nama file contoh. Anda dapat menentukan nama file yang berbeda sesuai dengan kebutuhan bisnis Anda.
kubectl apply -f cube.yamlHapus konfigurasi Logtail
Untuk menghapus konfigurasi Logtail, Anda hanya perlu menghapus CR berdasarkan konfigurasi Logtail yang dibuat. Dalam perintah berikut, <config_name> adalah nama CR yang diperlukan. Anda dapat menentukan nama yang berbeda sesuai dengan kebutuhan bisnis Anda.
kubectl delete clusteraliyunpipelineconfigs <config_name>Setelah konfigurasi Logtail dihapus, CR terkait dilepaskan.
Parameter CR
apiVersion
Nilainya tetap sebagai
telemetry.alibabacloud.com/v1alpha1.kind
Nilainya tetap sebagai
ClusterAliyunPipelineConfig.metadata
Field
Tipe
Diperlukan
Deskripsi
name
string
Ya
Pengenal unik CR. Nilainya sama dengan nama konfigurasi Logtail.
Catatan:
Nilai field ini digunakan sebagai nama konfigurasi Logtail. Nama tersebut harus unik di proyek tempat konfigurasi Logtail berada. Setelah konfigurasi Logtail dibuat, Anda tidak dapat mengubah nama konfigurasi. Nilai tersebut harus memenuhi persyaratan berikut:
Nilai tersebut hanya dapat berisi huruf kecil, digit, tanda hubung (-), dan garis bawah (_).
Nilai tersebut harus dimulai dan diakhiri dengan huruf kecil atau digit.
Nilai tersebut harus memiliki panjang 2 hingga 128 karakter.
Spec
Field
Tipe
Diperlukan
Deskripsi
project
Ya
Informasi tentang proyek.
CatatanSetelah CR dibuat, Anda tidak dapat mengubah nilai field project. Untuk menggunakan proyek lain, Anda harus membuat CR yang berbeda.
config
Ya
Pengaturan detail konfigurasi Logtail.
logstores
Tidak
Logstores. Anda dapat membuat beberapa Logstores.
CatatanSemua field, kecuali field metadata.name, hanya berlaku saat Anda membuat Logstore.
Nilai field ini tidak menentukan Logstore ke mana log dikumpulkan berdasarkan konfigurasi Logtail. Nilai tersebut menentukan Logstores yang dibuat. Nilai field config.flushers menentukan Logstore ke mana log dikumpulkan berdasarkan konfigurasi Logtail. Jika Logstore yang ditentukan ada, Anda dapat meninggalkan field ini kosong.
Anda hanya dapat mengonfigurasi field ini untuk menambahkan atau menghapus Logstores. Anda tidak dapat memodifikasi Logstores yang ada.
machineGroups
Tidak
Grup mesin yang terkait dengan konfigurasi Logtail. Saat Anda memasang komponen
logtail-ds, Simple Log Service secara otomatis membuat grup mesin bernamak8s-group-${your_k8s_cluster_id}. Secara default, grup mesin k8s-group-${your_k8s_cluster_id} digunakan.CatatanKomponen alibaba-log-controller memastikan bahwa konfigurasi Logtail hanya terkait dengan grup mesin yang ditentukan oleh field machineGroups. Grup mesin lainnya diputuskan dari konfigurasi Logtail.
enableUpgradeOverride
bool
Tidak
Nilai default: false. CR dari AliyunLogConfig CRD dan CR dari AliyunPipelineConfig CRD dapat menunjuk ke konfigurasi Logtail yang sama di kluster yang sama. Field ini dirancang untuk skenario ini. Nilai valid:
true: Komponen alibaba-log-controller menimpa dan memperbarui konfigurasi Logtail yang dibuat berdasarkan CR dari AliyunLogConfig CRD.
false: Terjadi konflik konfigurasi Logtail, dan konfigurasi Logtail yang dibuat berdasarkan CR dari AliyunPipelineConfig CRD gagal diterapkan.
CatatanJika kondisi berikut terpenuhi, sistem menganggap bahwa CR menunjuk ke konfigurasi Logtail yang sama:
Proyek yang sama tempat log dikumpulkan digunakan.
Untuk AliyunLogConfig CRD, proyek dalam CR ditentukan oleh field spec.project. Untuk AliyunPipelineConfig CRD, proyek dalam CR ditentukan oleh field spec.project.name.
Nama konfigurasi Logtail yang sama digunakan.
Untuk AliyunLogConfig CRD, nama dalam CR ditentukan oleh field spec.logtailConfig.configName. Untuk AliyunPipelineConfig CRD, nama dalam CR ditentukan oleh field metadata.name.
Komponen menimpa dan memperbarui konfigurasi Logtail dalam proses berikut:
Komponen mencoba menerapkan konfigurasi Logtail yang dibuat berdasarkan CR dari AliyunPipelineConfig CRD.
Setelah konfigurasi Logtail diterapkan, komponen menghapus CR dari AliyunLogConfig CRD dari kluster.
Proses selesai.
PipelineProject
CatatanSetelah CR dibuat, Anda tidak dapat mengubah nilai field project. Untuk menggunakan proyek lain, Anda harus membuat CR yang berbeda.
Field
Tipe
Diperlukan
Deskripsi
name
string
Ya
Nama proyek.
CatatanJika proyek yang ditentukan tidak ada, Simple Log Service secara otomatis membuat proyek.
description
string
Tidak
Deskripsi proyek.
CatatanField ini hanya berlaku saat Anda membuat proyek.
endpoint
string
Tidak
Endpoint proyek. Untuk informasi lebih lanjut, lihat Endpoints. Secara default, endpoint untuk wilayah tempat kluster saat ini berada digunakan. Jika proyek dan kluster berada di wilayah yang berbeda, Anda harus mengonfigurasi field ini.
CatatanField ini menentukan endpoint untuk wilayah tempat konfigurasi Logtail berada. Untuk mengumpulkan log ke proyek berdasarkan endpoint menggunakan Logtail, Anda juga harus mengonfigurasi field config_server_address dan data_server_list untuk Logtail Anda. Untuk informasi lebih lanjut, lihat File konfigurasi Logtail dan file rekaman.
uid
string
Tidak
ID akun. Secara default, akun tempat kluster saat ini berada digunakan. Jika Anda ingin mengumpulkan log lintas akun, Anda harus mengonfigurasi field ini dan menyertakan
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}dalam pengaturan variabel lingkungan untuk komponen alibaba-log-controller.CatatanField ini menentukan akun tempat proyek berada. Untuk mengumpulkan log ke akun menggunakan Logtail, Anda harus mengonfigurasi pengenal pengguna untuk Logtail Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan pengenal pengguna.
PiplineConfig
Anda harus mengonfigurasi field berikut berdasarkan instruksi yang diberikan di CreateLogtailPipelineConfig. Field configName menggunakan nilai dari field metadata.name. Anda tidak dapat mengonfigurasi field configName secara terpisah.
Field
Tipe
Diperlukan
Deskripsi
sample
string
Tidak
Contoh log. Anda dapat menentukan beberapa contoh log. Pastikan nilainya tidak melebihi 1.500 byte.
global
object
Tidak
Pengaturan global. Untuk informasi lebih lanjut, lihat Parameter permintaan.
inputs
daftar objek
Ya
Plugin input. Untuk informasi lebih lanjut tentang detail dan parameter plugin, lihat Parameter permintaan.
CatatanAnda hanya dapat mengonfigurasi satu plugin input.
processors
daftar objek
Tidak
Plugin pemrosesan. Untuk informasi lebih lanjut tentang detail dan parameter plugin, lihat Parameter permintaan.
aggregators
daftar objek
Tidak
Plugin agregasi. Untuk informasi lebih lanjut tentang detail dan parameter plugin, lihat Parameter permintaan.
flushers
daftar objek
Ya
Plugin output. Untuk informasi lebih lanjut tentang detail dan parameter plugin, lihat Parameter permintaan.
CatatanAnda hanya dapat mengonfigurasi satu plugin output.
configTags
map
Tidak
Tag kustom yang ditambahkan untuk mengidentifikasi konfigurasi Logtail.
PipelineLogstore
CatatanSemua field, kecuali field metadata.name, hanya berlaku saat Anda membuat Logstore.
Field
Tipe
Diperlukan
Deskripsi
name
string
Ya
Nama Logstore.
queryMode
string
Tidak
Tipe Logstore. Untuk informasi lebih lanjut, lihat Tipe Logstore. Nilai default: standard. Nilai valid:
query: Query Logstore
standard: Standard Logstore
ttl
int
Tidak
Masa retensi log di Logstore. Unit: hari. Untuk informasi lebih lanjut, lihat Periode Retensi Data. Nilai default: 30. Nilai valid: 1 hingga 3650. Jika Anda mengatur field ini ke 3650, log disimpan secara permanen.
hotTtl
int
Tidak
Masa retensi log di tingkat penyimpanan panas Logstore. Unit: hari. Untuk informasi lebih lanjut, lihat Penyimpanan Tiered Cerdas. Nilai default: 0. Nilai field ini harus kurang dari nilai field ttl dan lebih besar atau sama dengan 7.
shardCount
int
Tidak
Jumlah shard di Logstore. Untuk informasi lebih lanjut, lihat Kelola logstore. Nilai default: 2. Nilai valid: 1 hingga 100.
maxSplitShard
int
Tidak
Jumlah maksimum shard tempat shard yang ada di Logstore dapat dibagi secara otomatis. Untuk informasi lebih lanjut, lihat Pembagian Shard Otomatis. Nilai default: 64. Nilai valid: 1 hingga 256.
autoSplit
bool
Tidak
Menentukan apakah akan mengaktifkan pembagian shard otomatis untuk Logstore. Untuk informasi lebih lanjut, lihat Pembagian Shard Otomatis. Nilai default: true.
telemetryType
string
Tidak
Tipe data yang dapat diamati di Logstore. Untuk informasi lebih lanjut, lihat telemetryType. Nilai default: None. Nilai valid:
None: data log
Metrics: data metrik
appendMeta
bool
Tidak
Menentukan apakah akan mencatat alamat IP publik untuk Logstore. Untuk informasi lebih lanjut, lihat Log Alamat IP Publik. Nilai default: true.
enableTracking
bool
Tidak
Menentukan apakah akan mengaktifkan fitur pelacakan web untuk Logstore. Untuk informasi lebih lanjut, lihat WebTracking. Nilai default: false.
encryptConf
object
Tidak
Pengaturan enkripsi Logstore. Untuk informasi lebih lanjut, lihat Struktur data umum. Field ini kosong secara default.
meteringMode
string
Tidak
Mode penagihan Logstore. Untuk informasi lebih lanjut, lihat Mode Penagihan. Field ini kosong secara default. Nilai valid:
ChargeByFunction: mode penagihan berbasis fitur
ChargeByDataIngest: mode penagihan berbasis data yang dimasukkan
CatatanJika Anda mengatur field queryMode ke query, Anda harus mengatur field ini ke ChargeByFunction.
Jika mode penagihan berbasis data yang dimasukkan dinonaktifkan untuk akun Anda, Anda hanya dapat mengatur field ini ke ChargeByFunction.
PipelineMachineGroup
Field
Tipe
Diperlukan
Deskripsi
name
string
Ya
Nama grup mesin yang terkait dengan konfigurasi Logtail.
CatatanJika tidak ada grup mesin yang ada, komponen alibaba-log-controller secara otomatis membuat grup mesin berbasis pengenal. Grup mesin tersebut diberi nama berdasarkan pengenal. Untuk informasi lebih lanjut, lihat Buat grup mesin berbasis pengenal kustom. Operasi ini hanya berlaku saat Anda membuat grup mesin.