Untuk mengumpulkan log menggunakan ClusterAliyunPipelineConfig, definisikan aturan pengumpulan dalam file YAML terstruktur dan kirimkan file tersebut menggunakan kubectl. Topik ini mencakup struktur file YAML dan definisi field-nya.
Custom Resource (CR) merupakan sumber kebenaran untuk konfigurasi pengumpulan yang dibuat menggunakan CustomResourceDefinition (CRD). Jangan ubah konfigurasi ini di Konsol Simple Log Service. Setiap perubahan yang dilakukan di konsol akan ditimpa oleh CR, yang dapat menyebabkan error format data atau kehilangan data.
Cara kerja
Buat CR: Definisikan aturan pengumpulan dalam file YAML
ClusterAliyunPipelineConfig, lalu kirimkan file tersebut menggunakan kubectl.Controller memantau perubahan: loongcollector-operator terus-menerus memantau CR di kluster untuk mendeteksi perubahan.
Sinkronisasi konfigurasi: Saat terdeteksi adanya 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.
Field dasar
Semua konfigurasi harus dimulai dengan mendefinisikan versi API dan jenis resource sebagai berikut:
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfigContoh 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. Nama ini 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. Parameter ini wajib diisi. Nama harus unik dalam proyek dan tidak dapat diubah setelah pembuatan.
Konvensi penamaan:
| Contoh: |
spec.project
Menentukan proyek target.
Field proyek tidak dapat diubah setelah CR dibuat. Untuk beralih ke proyek berbeda, Anda harus membuat 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
Menentukan isi utama konfigurasi pengumpulan, yang mendefinisikan plugin input, pemrosesan, dan output.
Sub-field | 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 penyimpanan log yang ingin Anda buat secara otomatis. Perhatikan hal berikut:
Hanya berlaku saat pembuatan: Semua parameter kecuali
namehanya berlaku saat penyimpanan log dibuat. Jika penyimpanan log sudah ada, sistem akan mengabaikan pengaturan ini dan tidak mengubah properti yang sudah ada.Tidak menentukan tujuan data: Daftar ini tidak menentukan penyimpanan log tujuan untuk log. Tujuan aktual ditentukan oleh plugin output di
config.flushers, sepertiflusher_sls.Konfigurasi opsional: Jika penyimpanan log tujuan sudah ada, Anda tidak perlu memasukkannya dalam konfigurasi ini.
Hanya mendukung operasi tambah dan hapus: Anda dapat menambahkan penyimpanan log baru ke daftar atau menghapus item dari daftar tersebut. Namun, Anda tidak dapat mengubah konfigurasi ini untuk mengubah properti penyimpanan log yang sudah ada, seperti TTL atau jumlah shard. Untuk mengubah properti tersebut, Anda harus menggunakan konsol atau operasi API.
Parameter | Jenis data | Wajib | Deskripsi |
name | string | Ya | Nama penyimpanan log yang akan dibuat. |
queryMode | string | Tidak | Spesifikasi penyimpanan log. 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 target, 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 adalah 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 adalah true.
|
enableTracking | bool | Tidak | Menentukan apakah fitur pelacakan web diaktifkan. Nilai default adalah false. |
encryptConf | object | Tidak | Struktur data konfigurasi enkripsi. Berisi parameter |
meteringMode | string | Tidak | Mode penagihan. Untuk informasi selengkapnya, lihat Mengelola penyimpanan log. Field ini kosong secara default. Nilai yang valid:
Catatan Penyimpanan log dengan queryMode bernilai query hanya mendukung mode penagihan pay-by-feature. Jika pay-by-ingested-data tidak 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
Menentukan 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 dengan 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. Gunakan parameter ini untuk menyelesaikan konflik antara versi berbeda dari konfigurasi pengumpulan. Nilai default adalah false.
true:loongcollector-operatormenimpa dan meningkatkan konfigurasi pengumpulan yang ada yang didefinisikan oleh AliyunLogConfig.false: Jika terdapat konflik dalam konfigurasi pengumpulan, penerapan AliyunPipelineConfig akan gagal.
Skenario: Konflik terjadi jika resource AliyunLogConfig yang mendefinisikan konfigurasi pengumpulan sudah ada di kluster, dan Anda mencoba 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.configNameAliyunPipelineConfig: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 yang baru kini telah selesai.