Tentukan aturan pengumpulan log dalam file YAML terstruktur, lalu kirimkan file tersebut menggunakan kubectl untuk membuat ClusterAliyunPipelineConfig. Topik ini menjelaskan struktur file YAML dan definisi bidangnya.
Custom Resource (CR) merupakan sumber kebenaran untuk konfigurasi pengumpulan yang dibuat menggunakan CustomResourceDefinition (CRD). Jangan ubah konfigurasi ini di konsol Simple Log Service. Perubahan yang dilakukan di konsol akan ditimpa oleh CR, yang dapat menyebabkan error format data atau kehilangan data.
Cara kerja
-
Buat CR: Tetapkan aturan pengumpulan dalam file YAML
ClusterAliyunPipelineConfig, lalu terapkan file tersebut menggunakan kubectl. -
Controller memantau perubahan: loongcollector-operator terus-menerus memantau CR di kluster untuk mendeteksi perubahan.
-
Sinkronisasi konfigurasi: Saat terdeteksi perubahan pada CR, operator mengonversi CR tersebut menjadi konfigurasi spesifik dan mengirimkannya ke proyek yang ditentukan.
-
Collector menarik konfigurasi terbaru: loongcollector-ds secara berkala mengirim heartbeat ke Simple Log Service untuk menarik konfigurasi pengumpulan terbaru, lalu melakukan hot-reload.
-
Mulai pengumpulan dan pelaporan: loongcollector-ds mengumpulkan log berdasarkan konfigurasi terbaru dan mengirimkan log tersebut ke SLS menggunakan endpoint yang dikonfigurasi.
Bidang dasar
Semua konfigurasi harus dimulai dengan mendefinisikan versi API dan jenis resource sebagai berikut:
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
Contoh struktur
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Gunakan nilai default. Jangan ubah.
kind: ClusterAliyunPipelineConfig # Gunakan nilai default. Jangan ubah.
metadata:
name: test-config # Tetapkan nama resource. Harus unik dalam kluster Kubernetes saat ini.
spec:
project: # Tetapkan nama proyek tujuan.
name: k8s-your-project
config: # Tetapkan konfigurasi pengumpulan Logtail.
inputs: # Tetapkan plugin input untuk konfigurasi pengumpulan Logtail.
...
flushers: # Tetapkan plugin output untuk konfigurasi pengumpulan Logtail.
...Parameter inti
metadata.name
Nama konfigurasi pengumpulan. Wajib diisi. Nama harus unik dalam proyek dan tidak dapat diubah setelah pembuatan.
|
Konvensi penamaan:
|
Contoh:
|
spec.project
Proyek tujuan untuk konfigurasi pengumpulan.
Proyek tidak dapat diubah setelah CR dibuat. Untuk beralih ke proyek berbeda, buat CR baru.
|
Parameter |
Jenis data |
Wajib |
Deskripsi |
|
name |
string |
Ya |
Nama proyek tujuan. Jika proyek belum ada, proyek tersebut akan dibuat secara otomatis. |
|
description |
string |
Tidak |
Deskripsi proyek. Parameter ini hanya berlaku saat proyek dibuat. |
|
endpoint |
string |
Tidak |
Endpoint wilayah tempat proyek berada. Nilai default adalah wilayah kluster.
|
|
uid |
string |
Tidak |
UID Akun Alibaba Cloud yang memiliki proyek tujuan. Nilai default adalah UID Akun Alibaba Cloud tempat kluster saat ini berada.
|
spec.config
Bagian utama konfigurasi pengumpulan, yang mendefinisikan plugin input, pemrosesan, dan output.
|
Sub-bidang |
Jenis |
Wajib |
Deskripsi |
|
|
string |
Tidak |
Contoh log. Anda dapat memberikan beberapa log. Panjang total tidak boleh melebihi 1.500 byte. |
|
|
object |
Tidak |
|
|
|
List of objects |
Ya |
Daftar plugin input. Hanya satu plugin input yang diperbolehkan. |
|
|
List of objects |
Tidak |
Daftar plugin pemrosesan: |
|
|
List of objects |
Ya |
Daftar plugin output. Saat ini, hanya satu plugin |
spec.LogStores
Opsional. Mendeklarasikan Logstore yang akan dibuat secara otomatis. Perhatikan hal berikut:
-
Hanya berlaku saat pembuatan: Semua parameter kecuali
namehanya berlaku saat Logstore dibuat. Jika Logstore sudah ada, sistem mengabaikan pengaturan ini dan tidak mengubah properti Logstore yang sudah ada. -
Tidak menentukan tujuan data: Daftar ini tidak menentukan Logstore tujuan untuk log. Tujuan sebenarnya ditentukan oleh plugin output di
config.flushers, sepertiflusher_sls. -
Konfigurasi opsional: Jika Logstore tujuan sudah ada, Anda tidak perlu memasukkannya dalam konfigurasi ini.
-
Hanya mendukung operasi tambah dan hapus: Anda dapat menambahkan Logstore baru ke daftar atau menghapus item dari daftar tersebut. Namun, Anda tidak dapat mengubah konfigurasi ini untuk mengubah properti Logstore yang sudah ada, seperti TTL atau jumlah shard. Untuk mengubah properti tersebut, gunakan konsol atau operasi API.
|
Parameter |
Jenis data |
Wajib |
Deskripsi |
|
name |
string |
Ya |
Nama Logstore yang akan dibuat. |
|
queryMode |
string |
Tidak |
Spesifikasi Logstore. Nilai default adalah
|
|
ttl |
int |
Tidak |
Periode retensi data dalam hari. Nilai yang valid: 1 hingga 3650. Nilai default adalah 30. Nilai 3650 menunjukkan penyimpanan permanen. |
|
hotTtl |
int |
Tidak |
Periode penyimpanan data hot dalam hari. Nilai default adalah 0. Nilainya harus kurang dari ttl dan lebih besar atau sama dengan 7. |
|
infrequentAccessTTL |
int |
Tidak |
Periode penyimpanan akses jarang untuk LogStore tujuan, dalam hari. Nilai default adalah 0. Nilainya harus lebih besar atau sama dengan 30 dan kurang dari ttl, serta parameter hotTtl harus ditentukan. Jika hotTtl + infrequentAccessTTL tidak sama dengan ttl, kondisi berikut juga harus dipenuhi: |
|
shardCount |
int |
Tidak |
Jumlah shard. Nilai default adalah 2. Nilai yang valid: 1 hingga 100. |
|
maxSplitShard |
int |
Tidak |
Jumlah maksimum shard yang dapat dipisah secara otomatis. Nilai default adalah 64. Nilai yang valid: 1 hingga 256. |
|
autoSplit |
bool |
Tidak |
Menentukan apakah pemisahan shard otomatis diaktifkan. Nilai default: true. |
|
telemetryType |
string |
Tidak |
Jenis data observabel. Nilai default adalah None. Nilai yang valid:
|
|
appendMeta |
bool |
Tidak |
Menentukan apakah alamat IP publik dan waktu penerimaan log dicatat. Nilai default: true.
|
|
enableTracking |
bool |
Tidak |
Menentukan apakah pelacakan web diaktifkan. Nilai default: false. |
|
encryptConf |
object |
Tidak |
Struktur data konfigurasi enkripsi. Berisi parameter |
|
meteringMode |
string |
Tidak |
Mode penagihan. Untuk informasi selengkapnya, lihat Mengelola logstore. Bidang ini kosong secara default. Nilai yang valid:
Catatan
Logstore dengan queryMode bernilai query hanya mendukung mode penagihan pay-by-feature. Jika pay-by-ingested-data belum diaktifkan untuk akun Anda, Anda tidak dapat mengatur parameter ini ke ChargeByDataIngest. |
|
index |
object |
Tidak |
Konfigurasi indeks. Parameter ini hanya berlaku saat LogStore dibuat. Untuk formatnya, lihat index. Fitur ini memerlukan versi |
spec.machineGroups
Kelompok mesin yang dapat menggunakan konfigurasi pengumpulan ini.
-
Perilaku default: Saat LoongCollector diinstal, sistem secara otomatis membuat kelompok mesin bernama
k8s-group-${clusterId}. Jika Anda tidak secara eksplisit menentukan parametermachineGroups, konfigurasi pengumpulan ini secara default dikaitkan dengan kelompok mesin tersebut. -
Mekanisme sinkronisasi:
loongcollector-operatormemastikan bahwa kelompok mesin yang dikaitkan dengan konfigurasi pengumpulan secara ketat sesuai dengan daftar yang ditentukan dimachineGroups. Sistem secara otomatis memutus asosiasi kelompok mesin apa pun yang tidak ada dalam daftar ini. -
Dukungan pembuatan otomatis: Jika kelompok mesin yang ditentukan belum ada, sistem secara otomatis membuat kelompok mesin berbasis identifier dengan nama yang sama dan mengaitkannya ke konfigurasi pengumpulan saat ini.
|
Parameter |
Jenis data |
Wajib |
Deskripsi |
|
name |
string |
Tidak |
Nama kelompok mesin yang akan dikaitkan. |
spec.enableUpgradeOverride
Opsional. Menentukan apakah sistem dapat menimpa konfigurasi sebelumnya untuk menyelesaikan konflik antara versi berbeda dari konfigurasi pengumpulan. Nilai default: false.
-
true:loongcollector-operatormenimpa serta meningkatkan konfigurasi pengumpulan yang telah didefinisikan oleh AliyunLogConfig. -
false: Jika terjadi konflik dalam konfigurasi pengumpulan, penerapan AliyunPipelineConfig akan gagal.
Skenario: Konflik terjadi ketika resource AliyunLogConfig yang mendefinisikan konfigurasi pengumpulan sudah ada di kluster, dan Anda menerapkan AliyunPipelineConfig yang mereferensikan konfigurasi pengumpulan yang sama.
Definisi konfigurasi pengumpulan yang sama:
-
Proyek yang sama
-
AliyunLogConfig: Menggunakan proyek default kluster atauspec.project. -
AliyunPipelineConfig: Menggunakanspec.project.name.
-
-
Nama konfigurasi pengumpulan yang sama
-
AliyunLogConfig:spec.logtailConfig.configName -
AliyunPipelineConfig:metadata.name
-
Proses peningkatan:
-
Terapkan konfigurasi baru: Controller menerapkan
ClusterAliyunPipelineConfiguntuk memperbarui konfigurasi pengumpulan log. -
Hapus konfigurasi lama: Setelah pembaruan berhasil, controller secara otomatis menghapus resource
AliyunLogConfiglama yang sesuai dari kluster. -
Migrasi selesai: Migrasi dari konfigurasi lama ke konfigurasi baru telah selesai.