AliyunPipelineConfig adalah CustomResourceDefinition (CRD) yang disediakan oleh Simple Log Service. Anda dapat membuat CustomResource (CR) melalui file YAML untuk mengelola konfigurasi pengumpulan Logtail. Topik ini menjelaskan cara menggunakan AliyunPipelineConfig guna mengelola konfigurasi pengumpulan Logtail.
Prasyarat
Komponen Logtail versi 0.5.1 atau lebih baru telah diinstal. Untuk informasi selengkapnya, lihat Instal komponen Logtail di kluster ACK dan Instal komponen Logtail di kluster Kubernetes yang dikelola sendiri.
Kontainer target terus-menerus menghasilkan log.
PentingLogtail hanya mengumpulkan log inkremental. Jika file log tidak diperbarui setelah konfigurasi Logtail dikirimkan, Logtail tidak akan mengumpulkan log dari file tersebut. Untuk informasi selengkapnya, lihat Baca log.
Prosedur
Komponen alibaba-log-controller secara berkala menyinkronkan konfigurasi pengumpulan Logtail yang didefinisikan oleh AliyunPipelineConfig ke server. Untuk memodifikasi konfigurasi pengumpulan Logtail yang dibuat dari CR, Anda harus memperbarui CR yang sesuai. Konfigurasi pengumpulan Logtail yang dibuat di konsol Simple Log Service akan ditimpa oleh CR. Oleh karena itu, Anda hanya boleh menggunakan satu metode untuk mengelola konfigurasi pengumpulan Logtail.
Buat konfigurasi pengumpulan iLogtail
Anda dapat membuat CR dari AliyunPipelineConfig. Komponen alibaba-log-controller kemudian secara otomatis membuat konfigurasi pengumpulan Logtail berdasarkan CR tersebut. Setelah konfigurasi dibuat, sistem secara otomatis menerapkannya.
Langkah-langkahnya sebagai berikut:
Dapatkan kubeconfig kluster dan hubungkan ke kluster menggunakan kubectl.
Jalankan perintah berikut untuk membuat file
cube.yaml. Anda dapat mengganti nama file sesuai kebutuhan.
vim cube.yamlTambahkan skrip berikut ke file YAML dan konfigurasikan parameter sesuai kebutuhan. Untuk informasi selengkapnya tentang parameter dalam struktur CR, lihat Parameter CR.
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Gunakan nilai default. Jangan ubah.
kind: ClusterAliyunPipelineConfig # Gunakan nilai default. Jangan ubah.
metadata:
name: test-config # Tetapkan nama resource. Nama harus unik dalam kluster Kubernetes saat ini.
spec:
project: # Tetapkan nama proyek tujuan.
name: k8s-your-project
config: # Tetapkan konfigurasi pengumpulan iLogtail.
inputs: # Tetapkan plug-in input untuk konfigurasi pengumpulan iLogtail.
...
flushers: # Tetapkan plug-in output untuk konfigurasi pengumpulan iLogtail.
...Jalankan perintah berikut untuk membuat CR dari
AliyunPipelineConfig. Komponenalibaba-log-controllersecara otomatis membuat konfigurasi pengumpulan Logtail berdasarkan CR tersebut, lalu konfigurasi tersebut langsung berlaku. Setelah konfigurasi pengumpulan Logtail berlaku, Logtail mulai mengumpulkan data dan mengirimkannya ke Simple Log Service. Ganticube.yamldengan nama file aktual Anda.
kubectl apply -f cube.yamlLihat konfigurasi pengumpulan iLogtail
Lihat semua konfigurasi pengumpulan Logtail yang dibuat menggunakan
AliyunPipelineConfigdi kluster Kubernetes saat ini.Jalankan perintah berikut untuk melihat semua konfigurasi pengumpulan Logtail yang dibuat oleh
AliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigsLihat detail dan status konfigurasi pengumpulan Logtail yang dibuat menggunakan
AliyunPipelineConfig.Jalankan perintah berikut untuk melihat konfigurasi tersebut. Ganti
<config_name>dengan namaAliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigs <config_name> -o yamlOutput-nya mirip dengan contoh berikut. Anda dapat memeriksa bidang status untuk memverifikasi apakah konfigurasi pengumpulan Logtail telah diterapkan.
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 penerapan status: # Apakah CR berhasil diterapkan success: true # Pesan status saat ini dari CR message: success # Waktu pembaruan status saat ini lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # Informasi konfigurasi dari penerapan terakhir yang berhasil. Konfigurasi ini mencakup nilai default yang telah diisi dan merupakan konfigurasi yang sedang berlaku. lastAppliedConfig: # Waktu penerapan terakhir yang berhasil appliedTime: "2024-06-13T12:02:19.133422+08:00" # Detail konfigurasi yang berhasil diterapkan terakhir kali 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 pengumpulan iLogtail
Untuk memperbarui konfigurasi pengumpulan Logtail, Anda dapat memodifikasi file YAML AliyunPipelineConfig yang ada dan menerapkannya kembali.
Dapatkan kubeconfig kluster dan hubungkan ke kluster menggunakan kubectl.
Jalankan perintah berikut untuk mengedit file
AliyunPipelineConfigyang ada. Ganticube.yamldengan nama file aktual Anda.
vim cube.yamlModifikasi parameter konfigurasi dalam file YAML.
Jalankan perintah berikut untuk menerapkan konfigurasi pengumpulan Logtail yang telah diperbarui. Ganti
cube.yamldengan nama file aktual Anda.
kubectl apply -f cube.yamlHapus konfigurasi pengumpulan iLogtail
Untuk menghapus konfigurasi pengumpulan Logtail, Anda harus menghapus CR-nya yang sesuai. Ganti <config_name> dengan nama AliyunPipelineConfig.
kubectl delete clusteraliyunpipelineconfigs <config_name>Setelah konfigurasi pengumpulan Logtail dihapus, CR dilepas.
Parameter CR
apiVersion
Nilainya tetap sebagai
telemetry.alibabacloud.com/v1alpha1.kind
Nilainya tetap sebagai
ClusterAliyunPipelineConfig.metadata
Parameter
Tipe data
Diperlukan
Deskripsi
name
string
Ya
Pengenal unik CR. Nilai ini juga merupakan nama konfigurasi pengumpulan iLogtail yang dibuat.
Catatan:
Parameter ini berfungsi sebagai nama konfigurasi pengumpulan iLogtail. Nilainya harus unik dalam proyek dan tidak dapat diubah setelah pembuatan. Nilai harus memenuhi persyaratan berikut:
Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Harus dimulai dan diakhiri dengan huruf kecil atau angka.
Panjangnya harus antara 2 hingga 128 karakter.
spec
Parameter
Tipe data
Diperlukan
Deskripsi
project
Ya
Informasi tentang proyek tujuan.
CatatanBidang project tidak dapat diubah setelah CR dibuat. Untuk mengganti proyek, buat CR baru.
config
Ya
Menentukan detail konfigurasi pengumpulan iLogtail.
logstores
Tidak
Daftar Logstore yang akan dibuat. Anda dapat membuat beberapa Logstore.
CatatanSemua parameter kecuali name hanya berlaku saat membuat Logstore.
Daftar ini tidak menentukan Logstore tujuan untuk konfigurasi pengumpulan iLogtail. Daftar ini hanya membuat Logstore sesuai kebutuhan. Logstore tujuan ditentukan oleh plug-in flusher di bidang config. Jika Logstore tujuan yang ditentukan dalam konfigurasi pengumpulan iLogtail sudah ada, Anda dapat mengosongkan bidang ini.
Anda hanya dapat menambah atau menghapus definisi Logstore dalam daftar ini. Anda tidak dapat memodifikasi Logstore yang sudah ada.
machineGroups
Tidak
Daftar kelompok mesin yang akan dikaitkan dengan konfigurasi pengumpulan iLogtail. Saat Anda menginstal komponen
logtail-ds, Simple Log Service secara otomatis membuat kelompok mesin bernamak8s-group-${your_k8s_cluster_id}. Secara default, daftar ini hanya berisi kelompok mesin tersebut.Catatanalibaba-log-controller memastikan bahwa konfigurasi pengumpulan iLogtail hanya dikaitkan dengan kelompok mesin yang ditentukan dalam machineGroups. Kelompok mesin yang tidak tercantum akan diputuskan kaitannya.
enableUpgradeOverride
bool
Tidak
Nilai default: false. Saat konfigurasi pengumpulan yang didefinisikan oleh AliyunLogConfig sudah ada di kluster dan mengarah ke konfigurasi pengumpulan iLogtail yang sama dengan AliyunPipelineConfig saat ini, Anda dapat:
Mengaktifkan opsi ini: alibaba-log-controller melakukan peningkatan override pada konfigurasi pengumpulan yang didefinisikan oleh AliyunLogConfig yang sudah ada.
Menonaktifkan opsi ini: Terjadi konflik konfigurasi, dan penerapan AliyunPipelineConfig gagal.
CatatanDefinisi yang mengarah ke konfigurasi pengumpulan iLogtail yang sama:
Proyek sumber dan tujuan sama.
Untuk AliyunLogConfig, proyeknya adalah proyek default kluster atau spec.project. Untuk AliyunPipelineConfig, proyeknya adalah spec.project.name.
Nama konfigurasi pengumpulan iLogtail sama.
Pada AliyunLogConfig, parameternya adalah spec.logtailConfig.configName. Pada AliyunPipelineConfig, parameternya adalah metadata.Name.
Definisi peningkatan override:
Pertama, AliyunPipelineConfig berlaku dan memperbarui konfigurasi pengumpulan iLogtail.
Kemudian, jika AliyunPipelineConfig berhasil, sistem menghapus AliyunLogConfig di kluster yang mengarah ke konfigurasi pengumpulan iLogtail yang sama.
Akhirnya, peningkatan override selesai.
PipelineProject
CatatanBidang project tidak dapat diubah setelah CR dibuat. Untuk beralih ke proyek yang berbeda, Anda harus membuat CR baru.
Parameter
Tipe data
Diperlukan
Deskripsi
name
string
Ya
Nama proyek tujuan.
CatatanJika proyek yang ditentukan belum ada, Simple Log Service secara otomatis membuatnya.
description
string
Tidak
Deskripsi proyek tujuan.
CatatanParameter ini hanya berlaku saat membuat proyek.
endpoint
string
Tidak
Titik akhir layanan proyek tujuan. Untuk informasi selengkapnya, lihat Endpoints. Secara default, digunakan titik akhir untuk wilayah tempat kluster saat ini berada. Jika proyek tujuan dan kluster berada di wilayah yang berbeda, konfigurasikan parameter ini.
CatatanParameter ini hanya mengontrol wilayah konfigurasi pengumpulan. Untuk mengirimkan data iLogtail ke wilayah ini, konfigurasikan secara terpisah config_server_address dan data_server_list iLogtail. Untuk informasi selengkapnya, lihat File konfigurasi dan file catatan Logtail.
uid
string
Tidak
UID akun tujuan. Secara default, digunakan akun tempat kluster saat ini berada. Untuk mengirimkan log lintas akun, konfigurasikan parameter ini dan atur variabel lingkungan berikut untuk alibaba-log-controller:
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}.CatatanParameter ini hanya mengontrol akun pemilik proyek. Untuk mengirimkan data iLogtail ke akun ini, konfigurasikan secara terpisah identitas pengguna iLogtail. Untuk informasi selengkapnya, lihat Konfigurasikan identitas pengguna.
PipelineConfig
Konfigurasikan parameter berdasarkan persyaratan API CreateLogtailPipelineConfig. Parameter configName menggunakan `metadata.name` dari CR dan tidak dapat dikonfigurasi secara terpisah.
Parameter
Tipe data
Diperlukan
Deskripsi
sample
string
Tidak
Contoh log. Mendukung beberapa log, dengan panjang total tidak melebihi 1.500 byte.
global
object
Tidak
Konfigurasi global. Untuk informasi selengkapnya, lihat Parameter permintaan.
inputs
daftar objek
Ya
Daftar plug-in input. Untuk detail dan parameter plug-in, lihat Parameter permintaan.
CatatanHanya satu plug-in input yang diizinkan.
processors
daftar objek
Tidak
Daftar plug-in pemrosesan. Untuk detail dan parameter plug-in, lihat Parameter permintaan.
aggregators
daftar objek
Tidak
Daftar plug-in agregasi. Untuk detail dan parameter plug-in, lihat Parameter permintaan.
flushers
daftar objek
Ya
Daftar plug-in output. Untuk detail dan parameter plug-in, lihat Parameter permintaan.
CatatanHanya satu plug-in flusher_sls yang diizinkan.
configTags
map
Tidak
Tag kustom yang digunakan untuk menandai konfigurasi pengumpulan iLogtail.
PipelineLogstore
CatatanSemua parameter kecuali `name` hanya berlaku saat Anda membuat Logstore.
Parameter
Tipe data
Diperlukan
Deskripsi
name
string
Ya
Nama Logstore yang akan dibuat.
queryMode
string
Tidak
Tipe Logstore tujuan. Untuk informasi selengkapnya, lihat Tipe Logstore. Nilai default: standard. Nilai yang valid:
query: Query Logstore
standard: Standard Logstore
ttl
int
Tidak
Periode retensi data Logstore tujuan, dalam hari. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: 30. Nilai yang valid: 1 hingga 3650. Nilai 3650 menunjukkan retensi permanen.
hotTtl
int
Tidak
Periode retensi untuk penyimpanan data hot di Logstore tujuan. Satuan: hari. Nilai default: 0. Nilai bidang ini harus kurang dari nilai bidang ttl dan lebih besar atau sama dengan 7.
infrequentAccessTTL
int
Tidak
Periode penyimpanan IA untuk Logstore tujuan, dalam hari. Nilai default adalah 0. Parameter
hotTtlharus ditentukan. Nilainya harus kurang darittldan lebih besar atau sama dengan 30. JikahotTtl+infrequentAccessTTLtidak sama denganttl, nilaittl-(hotTtl+infrequentAccessTTL)juga harus lebih besar atau sama dengan 60. Parameter ini hanya berlaku ketika versi komponenloongcollector-operatoradalah 1.0.6 atau yang lebih baru.shardCount
int
Tidak
Jumlah shard di Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: 2. Nilai yang valid: 1 hingga 100.
maxSplitShard
int
Tidak
Jumlah maksimum shard untuk sharding otomatis di Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: 64. Nilai yang valid: 1 hingga 256.
autoSplit
bool
Tidak
Menentukan apakah akan mengaktifkan pemisahan shard otomatis untuk Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: true.
telemetryType
string
Tidak
Tipe data observabel Logstore tujuan. Untuk informasi selengkapnya, lihat Buat Logstore. Nilai default: None. Nilai yang valid:
None: tipe log.
Metrics: Tipe metrik.
appendMeta
bool
Tidak
Menentukan apakah akan mengaktifkan pencatatan Alamat IP publik untuk Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: true.
enableTracking
bool
Tidak
Menentukan apakah akan mengaktifkan Web Tracking untuk Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: false.
encryptConf
object
Tidak
Informasi konfigurasi enkripsi untuk Logstore tujuan. Untuk informasi selengkapnya, lihat EncryptConf. Nilai default: kosong.
meteringMode
string
Tidak
Mode penagihan Logstore tujuan. Untuk informasi selengkapnya, lihat Kelola Logstore. Nilai default: kosong. Nilai yang valid:
ChargeByFunction: pay-by-function
ChargeByDataIngest: pay-by-ingested-data
CatatanJika queryMode Logstore adalah query, hanya ChargeByFunction yang didukung.
Jika penagihan pay-by-ingested-data tidak diaktifkan untuk akun Anda, Anda tidak dapat mengatur parameter ini ke ChargeByDataIngest.
index
object
Tidak
Menentukan indeks (hanya berlaku saat pembuatan Logstore). Untuk formatnya, lihat format data umum index. Parameter ini hanya berlaku ketika versi komponen loongcollector-operator adalah 1.0.6 atau yang lebih baru.
PipelineMachineGroup
Parameter
Tipe data
Diperlukan
Deskripsi
name
string
Ya
Nama kelompok mesin yang akan dikaitkan dengan konfigurasi pengumpulan iLogtail.
CatatanJika kelompok mesin belum ada, alibaba-log-controller secara otomatis membuat kelompok mesin berbasis pengenal dengan nama yang sama seperti pengenal tersebut. Untuk informasi selengkapnya, lihat Buat kelompok mesin berbasis pengenal kustom. Perilaku ini hanya berlaku saat pembuatan kelompok mesin.